Hallo an VB6 Profis,
ich stehe im Moment voll auf dem Schlauch und komme nicht weiter.
Hab schon hier im Forum diverses gelesen, auch den Artikel mit "binäre
Daten senden" usw. - bin arg am verzweifeln und sehe den Wald vor lauter
Bäumen nicht mehr.
Hier mein Problem:
Ich muss serielle binäre Daten empfangen.
Das ganze hat funktioniert mit ASCII, muss es aber umstellen, der der µP
halt Werte von 0x00 bis 0xFF sendet.
Also Übertragungsrate, Anschluss, Hardware usw. stimmt alles - da es ja
schon mit ASCII funktioniert hatte.
Dann hab ich bei der Initialisierung ".InputMode = comInputModeBinary"
eigefügt.
Es kommt ein Zeichen an, das ich in ein Zahl (int) umwandeln möchte.
Bisher habe ich viele Unterschiedliche Dinge versucht, aber es will
einfach nicht klappen:
Hier der Ausschnitt:
Private Sub MSComm1_OnComm()
Dim g As Byte
Dim xa As String
Dim y As Integer
Dim feld(1) As Byte
Select Case MSComm1.CommEvent
Case comEvReceive
g = MSComm1.Input
Text2.Text = g
Kann mir bitte jemand sagen wie das unter VB6 funktioniert?
DANKE IM VOARAUS!!!
Moin, das sollte problemlos funktionieren. Was hindert dich den Debugger zu nutzen und dann dein Problem zu benennen?
Hallo Einhart, Danke dass Du Dich meldest. es kommt die Fehlermeldung "Runtime Error 13: Type mismatch" Ich habe es mit unterschiedlichen Datentypen versucht. Wenn ich die Variable "xa" nehme (String) erhalte ich keine Fehlermeldung. Es wird aber kein (Druckbarer Wert) angezeigt. Wie kann ich den "String" in eine Dezimalzahl umwandeln? Vielen Dank im voraus! Bernd
Moin Bernd,
.Input liefert kein byte sondern ein Byte-Array. So sieht das bei einer
meiner Anwendungen in einem Klassenmodul aus:
objComm.InputMode = 1
.
.
.
Dim baRcv() As Byte
If objComm.InBufferCount > 0 Then
baRcv = objComm.Input
.
.
.
Inputmode ist binary.
Msgbox baRcv(0)
sollte den Wert des ersten Zeichens zeigen.
Gruß
Einhart
Hallo Einhart,
vieled Dank für den Tip, funktioniert jetzt so:
Private Sub MSComm1_OnComm()
Dim g As Byte
Dim xa As String
Dim y As Integer
Dim RcvField() As Byte
Select Case MSComm1.CommEvent
Case comEvReceive
RcvField = MSComm1.Input
Text2.Text = Val(RcvField(0))
.
.
.
Tausend Dank!
LG
Bernd
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.