Hi Murdoc_mm

Ich schreibe mal kurz wie ich eine Serie von Daten aus bytes, word und string übermittle

Code:
Dim Volt As Word 
Dim Kurs As Byte, Mr As Byte , Ml As Byte , C1 As Byte , C2 As Byte 
Dim Servo As Byte 
Dim Entf As Word 
Dim Message As String * 5

$baud = 19200  

Do

 Print "x"; 
 Print Hex(Kurs); 
 Print Hex(volt);
 Print Hex(c1);
 Print Hex(c2);
 Print Hex(servo);
 Print Hex(mr);
 Print Hex(ml);
 Print Hex(entf);
 Print Message;
 Print Chr(13);

anderer Code

loop
; bewirkt dass der Printbefehl ohne Carriage return ausgeführt wird. (Läßt man ; wird automtisch carriage return angefügt)
"x" gibt bei mir immer den Anfang des Strings an

der übermittelte String ist 1+2+4+2+2+2+2+2+4+5+1 = 27 Byte lang. Das letzte Byte ist Chr(13) und kennzeichnet das Ende und ist wie das "x" in dem übermittelten String einzigartig.


Empfang:

Code:
Dim Volt As Word 
Dim Kurs As Byte, Mr As Byte , Ml As Byte , C1 As Byte , C2 As Byte
Dim Servo As Byte 
Dim Entf As Word 
Dim Message As String * 5
Dim Empf As String * 27  
Dim Empf1 As String * 2
Dim Empf2 As String * 4
Dim I as Byte

$baud = 19200  

do
   Input Empf : I = Instr(1 , Empf , "x")       'Input wartet bis Chr(13)
   If I = 1 Then
    Empf1 = Mid(empf , 2 , 2) : kurs = Hexval(empf1)
    Empf2 = Mid(empf , 4 , 4) : volt = Hexval(empf2) 
    Empf1 = Mid(empf , 8 , 2) : c1 = Hexval(empf1) 
    Empf1 = Mid(empf , 10 , 2) : c2 = Hexval(emp1) 
    Empf1 = Mid(empf , 12 , 2) : servo = Hexval(empf1) 
    Empf1 = Mid(empf , 14 , 2) : mr = Hexval(empf1) 
    Empf1 = Mid(empf , 16 , 2) : ml = Hexval(empf1) 
    Empf2 = Mid(empf , 18 , 4) : entf = Hexval(empf2) 
    message = Mid(empf , 22 , 5) 
    I = 0
   End If

anderer Code

loop
Vielleicht hilft Dir dieses Beispiel weiter. Die Werte sollten möglichst oft übermittelt werden, da auf Empfängerseite die Schleife durch Input solange stoppt bis CHR(13) kommt.

Grüsse

Christian