Hallo frankmannb
Ich habe nun mal den Versuch mit Com0Com (virtuelles COM) gemacht, welchen du vorher installiert und gestartet haben solltest, um es testen zu können.
der erste Source, der zuerst gestartet werden soll, gibt per Zufall bei jedem Aufruf ein Gewicht aus,
wenn er das "R" erhält. Das soll also die Hardware simulieren. Die COM CMCA0 und CMCB0 musst du natürlich
für dich anpassen. Der Zweite Source wird in der PB-IDE danach gestartet und sendet das erste laufende Programm das gewünschte "R" und erhält dann das zufällige Gewicht zurück. Ich hoffe das so der zweite Code für deine Hardware korrekt läuft. Vergiss den die obigen Beispiele.
Also hier der Source, der zuerst in der IDE ausgeführt werden muss und so lange läuft, bis du in PB das rote X
anklickst.
Code: Alles auswählen
;Simuliert die Hardware
If OpenSerialPort(0, "CNCB0", 9600, #PB_SerialPort_EvenParity , 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)
MessageRequester("Information", "SerialPort opened with success")
While AvailableSerialPortInput(0)=0
If ReadSerialPortData(0,@Byte,1)
Puffer.s = Chr(Byte)
If Puffer = "R"
WriteSerialPortString(0, Str( Random(12000))+" Kg")
EndIf
EndIf
Wend
Else
MessageRequester("Error", "Can't open the serial port: COM1")
EndIf
Und sofort danach folgenden Source ausführen. Am du öffnest in der IDE gleich beide Sources, sodass du oben nur auf den Tabs wechseln und mit F5 compilieren kannst.
Code: Alles auswählen
;hiermit wird die simulierte Hardware angesprochen.
If OpenSerialPort(0, "CNCA0", 9600, #PB_SerialPort_EvenParity , 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)
MessageRequester("Information", "SerialPort opened with success")
If WriteSerialPortString(0,"R")
Delay(100)
While AvailableSerialPortInput(0)>0
If ReadSerialPortData(0,@Byte,1)
text.s=text.s+Chr(Byte)
EndIf
Wend
EndIf
Debug text
Else
MessageRequester("Error", "Can't open the serial port: COM1")
EndIf
Bei mir klappt das wunderbar. Bitte nicht den ersten Source als EXE compilieren und ausführen, da
das Programm nicht beendet wird und im Taskmanager zwangsbeendet werden muss.
Wichtig für dich ist nur der zweite Code, den du natürlich als Exe kompilieren kannst, wobei die Ausgabe
von Debug dann besser über ein MessageRequester ausgegeben werden sollte.
Gruß Falko