vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Serialport-PinChange 
Autor: MeSa
Datum: 06.10.10 10:31

Hallo.
Ich versuche einen Messprogramm (Drehmomentmessung: Bewegeung Links, Rechts) zu schreiben, der mit 2 Serial Port arbeitet :
SignalPort: sagt mir, daß ich die Daten von Datenport(hängt Messverstärker daran) lesen soll also Linke Wert und Rechte Wert, dazu steht mir 2 COM-Leitungen zuverfügung : CD(Daten),Cts(Links).
wenn CD und Cts gleichzeitig dann soll ich Linkewert lesen sonst Rechts(Siehe Programm).

Public Class FMessung
  Dim Counter As Integer = 0
  Dim row As DataGridViewRow
 
  Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As _
    System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    SignalPort.Close()
    DatenPort.Close()
  End Sub
 
  Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Load
    SignalPort.Open()
    DatenPort.Open()
  End Sub
 
  Private Sub SignalPort_PinChanged(ByVal sender As Object, ByVal e As _
    System.IO.Ports.SerialPinChangedEventArgs) Handles SignalPort.PinChanged
    Select Case e.EventType
      Case IO.Ports.SerialPinChange.DsrChanged
        If SignalPort.DsrHolding Then
          '***Reset
        End If
      Case IO.Ports.SerialPinChange.CDChanged
        If SignalPort.CDHolding Then
          If SignalPort.CtsHolding Then
            Invoke(New ReadDglLinks(AddressOf ReadLinks))
          Else
            Invoke(New ReadDglRechts(AddressOf ReadRechts))
          End If
        End If
    End Select
  End Sub
 
  Private Delegate Sub ReadDglLinks()
  Private Sub ReadLinks()
    row = New DataGridViewRow
    row.CreateCells(Grd)
    row.Cells(0).Value = Counter
    DatenPort.WriteLine("MSV?3;") 'Speicher S3 des Messverstärker Aktivieren
    row.Cells(1).Value = DatenPort.ReadLine 'Linke Messwert
  End Sub
  Private Delegate Sub ReadDglRechts()
  Private Sub ReadRechts()
    DatenPort.WriteLine("MSV?4;") 'Speicher S4 des Messverstärker 
    ' Aktivieren
    row.Cells(2).Value = DatenPort.ReadLine ' Rechte Messwert
    Grd.Rows.Add(row)
    DatenPort.WriteLine("CPV;") ' **Speicherwert des Messverstärker löschen
  End Sub
End Class
das Problem ist daß, der PinChange bei jeder Bewegungszyclus(ein Mal Links und Rechts) nicht nur ein Mal auslöst, sondern mehr Mal und die Anzahl des Auslösen ist nicht konstant.
Hat jemand eine Idee um die Pinchange- Ereigniss zu filtern, daß es nur ein Malpro Zyclus auslöst?

Ich wäre sehr dankbar, wen jamand mir helfen kann.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Serialport-PinChange1.889MeSa06.10.10 10:31

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel