Daten über Com1

  • VB6

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Mad Andy.

    Daten über Com1

    Hallo,

    empfange über Com1 folgenden Datenblock:

    @;I010101D76A1177CF6CBE;V010C6F13;I020201D6694B44CEDDA6;V021EA8C3;$;

    Habe hierzu 2 Fragen.

    1. wie kann ich die Quadrate (hier als ; dargestellt) aus diesem Datenblock entfernen(sind Zeilenumbrüche)

    2. das Programm arbeitet wohl etwas zu schnell. Wenn der Datenblock über MSComm empfangen wird, kann es passieren das er nicht den kompletten Block empfängt. Dann sind die Daten aber unbrauchbar. Besteht die Möglichkeit, das Prog erst dann weiterlaufen zu lassen wenn der Datenblock kompett ist? Beginnt immer mit @ und endet mit $

    Gruß
    Paddy
    Hallo,

    danke erst mal für die schnelle Hilfe.

    lösung zu Frage 1 funktioniert.
    zu Frage 2 funktioniert nur beim Debuggen-Einzelschritt. Bei normaler Ausführung stürzt es dann ab. Gibt es keine Möglichkeit die Ausführungsgeschwindigkeit zu verringern?

    Hier mal der Code:

    Visual Basic-Quellcode

    1. Private Sub Form_Load()
    2. MSComm1.Settings = "4800,N,8,1"
    3. MSComm1.CommPort = 1
    4. MSComm1.PortOpen = True
    5. End Sub
    6. Private Sub MSComm1_OnComm()
    7. On Error Resume Next
    8. If MSComm1.CommEvent = 2 Then
    9. Do
    10. Data = MSComm1.Input
    11. dataneu = Replace(Data, Chr$(13), vbNullString)
    12. If Right(dataneu, 1) = "$" And Left(dataneu, 1) = "@" Then Exit Do
    13. Loop
    14. End If
    15. 'daten in textbox eintragen
    16. Form1.Text3.Text = dataneu
    17. 'auslesen des 1. kanals und umwandeln (temp)
    18. Form1.Label3.Caption = CLng("&H" & Mid$(dataneu, 26, 4)) / 100
    19. 'auslesen des 2. kanala und umwandeln (feuchte)
    20. Form1.Label4.Caption = CLng("&H" & Mid$(dataneu, 56, 4)) / 200
    21. MSComm1.PortOpen = False
    22. End Sub


    Edit by Agent: VB-tag korrigiert

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Agent“ ()

    Hallo,

    Danke erst mal für die Antworten. Funktioniert jetzt fast so wie es soll. Bekomme aber bei folgendem Code beim 2. Lauf (Prog läuft in Schleife) folgenden Fehler:
    Laufzeitfehler 13. Typen unverträglich

    Visual Basic-Quellcode

    1. frmHaupt.Label6.Caption = Format(CLng("&H" & Mid$(dataneu, 26, 4)) / 100, "####.#")


    Hat jemand eine Idee warum beim 2. Lauf und nicht schon beim 1. ?