Hallo,
habe folgendes Problem. Ich möchte mit einem externem Gerät über die serielle Schnittstelle
kommunizieren. Dies funktioniert bis zu einem bestimmten Punkt ganz gut. Die Kommunikation
läuft wie folgt ab.
Nach einer Initialisationssequenz sendet das Gerät das Startwort "138". Um eine sicher
Übertragung zu gewährleisten muß der PC mit dem umgekehrten Wort antworten.
Also mit 255 - 138 = 117 antworten. Nachfolgend sendet das Gerät weiter Zeichen, die
nach dem selben Verfahren beantwortet werden müssen.
Hier liegt nun mein Problem. Im Beispiel wartet der PC zwar auf das Wort "138" und antwortet
wie beschrieben, leider habe ich keine Idee wie er alle nachfolgenden Zeichen ebenfalls wandeln
soll.
<font face="courier new" size="2pt">
<font color="#000000"></font><font color="#0000AA">Private</font><font color="#000000"> </font><font color="#0000AA">Sub</font><font color="#000000"> Timer1_timer()</font>
<font color="#000000"> </font><font color="#0000AA">Do</font><font color="#000000"></font>
<font color="#000000"> dat = READBYTE</font>
<font color="#000000"> </font><font color="#0000AA">If</font><font color="#000000"> dat > - 1 Then </font><font color="#00AA00">'Dateneingang prüfen</font>
<font color="#000000"></font>
<font color="#000000"> antwort = 255 - dat </font><font color="#00AA00">'Wert umkehren</font>
<font color="#000000"> </font><font color="#0000AA">If</font><font color="#000000"> dat = 138 </font><font color="#0000AA">Then</font><font color="#000000"> SENDBYTE antwort </font><font color="#00AA00">'Prüft Eingang von 138 und antwortet mit umgekehrtem Wert</font>
<font color="#000000"></font>
<font color="#000000"> wert = Hex(Str$(dat)) + " " </font><font color="#00AA00">'Formatiert Ausgabefenster</font>
<font color="#000000"> </font><font color="#0000AA">If</font><font color="#000000"> Len(wert) = 2 </font><font color="#0000AA">Then</font><font color="#000000"> wert = "0" & wert</font>
<font color="#000000"> Text1.Text = Text1.Text + wert</font>
<font color="#000000"></font>
<font color="#000000"> </font><font color="#0000AA">End</font><font color="#000000"> </font><font color="#0000AA">If</font><font color="#000000"></font>
<font color="#000000"> </font><font color="#0000AA">Loop</font><font color="#000000"> </font><font color="#0000AA">Until</font><font color="#000000"> dat = - 1</font>
<font color="#000000"></font><font color="#0000AA">End</font><font color="#000000"> </font><font color="#0000AA">Sub</font><font color="#000000"></font>
</font>
Ich verwende eine DLL um leichter mit der Schnittstelle kommunizieren zu können, deshalb die
Befehle "READ -und SENDBYTE".
Für einen Tipp wäre ich sehr dankbar.
Gruß
GONZO
habe folgendes Problem. Ich möchte mit einem externem Gerät über die serielle Schnittstelle
kommunizieren. Dies funktioniert bis zu einem bestimmten Punkt ganz gut. Die Kommunikation
läuft wie folgt ab.
Nach einer Initialisationssequenz sendet das Gerät das Startwort "138". Um eine sicher
Übertragung zu gewährleisten muß der PC mit dem umgekehrten Wort antworten.
Also mit 255 - 138 = 117 antworten. Nachfolgend sendet das Gerät weiter Zeichen, die
nach dem selben Verfahren beantwortet werden müssen.
Hier liegt nun mein Problem. Im Beispiel wartet der PC zwar auf das Wort "138" und antwortet
wie beschrieben, leider habe ich keine Idee wie er alle nachfolgenden Zeichen ebenfalls wandeln
soll.
<font face="courier new" size="2pt">
<font color="#000000"></font><font color="#0000AA">Private</font><font color="#000000"> </font><font color="#0000AA">Sub</font><font color="#000000"> Timer1_timer()</font>
<font color="#000000"> </font><font color="#0000AA">Do</font><font color="#000000"></font>
<font color="#000000"> dat = READBYTE</font>
<font color="#000000"> </font><font color="#0000AA">If</font><font color="#000000"> dat > - 1 Then </font><font color="#00AA00">'Dateneingang prüfen</font>
<font color="#000000"></font>
<font color="#000000"> antwort = 255 - dat </font><font color="#00AA00">'Wert umkehren</font>
<font color="#000000"> </font><font color="#0000AA">If</font><font color="#000000"> dat = 138 </font><font color="#0000AA">Then</font><font color="#000000"> SENDBYTE antwort </font><font color="#00AA00">'Prüft Eingang von 138 und antwortet mit umgekehrtem Wert</font>
<font color="#000000"></font>
<font color="#000000"> wert = Hex(Str$(dat)) + " " </font><font color="#00AA00">'Formatiert Ausgabefenster</font>
<font color="#000000"> </font><font color="#0000AA">If</font><font color="#000000"> Len(wert) = 2 </font><font color="#0000AA">Then</font><font color="#000000"> wert = "0" & wert</font>
<font color="#000000"> Text1.Text = Text1.Text + wert</font>
<font color="#000000"></font>
<font color="#000000"> </font><font color="#0000AA">End</font><font color="#000000"> </font><font color="#0000AA">If</font><font color="#000000"></font>
<font color="#000000"> </font><font color="#0000AA">Loop</font><font color="#000000"> </font><font color="#0000AA">Until</font><font color="#000000"> dat = - 1</font>
<font color="#000000"></font><font color="#0000AA">End</font><font color="#000000"> </font><font color="#0000AA">Sub</font><font color="#000000"></font>
</font>
Ich verwende eine DLL um leichter mit der Schnittstelle kommunizieren zu können, deshalb die
Befehle "READ -und SENDBYTE".
Für einen Tipp wäre ich sehr dankbar.
Gruß
GONZO
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gonzo“ ()