Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo Johannes, > > das Problem ist eigentlich immer das gleiche. Bei Kommunikationen, gleich welcher Art, sollte > man immer ein Protokoll benutzen, um die beiden Partner zu sychronisieren, denn wie soll der > jeweilige Empfänger wissen, wann ein neues Packet losgeht, bzw. zu Ende ist (auch bei fester > Packetlänge). Vereinbare also einen kleinen Protokollrahmen der wie folgt assehen könnte: > > 1. Byte Startzeichen welches ein Zeichen sein sollte, welches in den "normalen" Daten nicht > vorkommt. (z.B 02 Hex ) > > x. Byte Datenkennung ( das der Empfänger weiß welche daten kommen) > > 1. Byte welches die Länge der Daten in Bytes enthält.(sollten es mehr wie 255 Byte sein dann > einfach 2 Byte) > > x. Byte die eigentlichen Daten > > Endekennung z.B. CR LF ( 0D 0A Hex) > > mitdiesem sehr einfachen Protokollrahmen kannst Du dann Daten in flexibler Länge und mit > felxiblem Inhalt (Datenkennung) recht sicher übertragen. Man kann das Ganze noch um eine > Checksumme oder auch durch Zurücksenden der empfangenen Daten (Echo) erweitern um > 100 % ige Übertragungssicherheit zu erziehlen. > > mfg Tom > > > > Moin, > > ich habe einen ganz einfachen Code. Er empfängt von der seriellen Schnittstelle Packete mit der Länge > > 52 Bytes, die ich von einem VB-Programm sende. Allerdings kommen beim Empfänger nur einzelne > > Stücke an. Kann mir jemand sagen, woran das liegt? > > > > > > thread main { > > lcdext.init(); > > hwcom.init(); > > hwcom.setspeed(8); > > loop { > > byte Buf[52]; > > int a; > > for a=0...51 { > > Buf[a] = 0; } > > int returnval; > > returnval = hwcom.receive(Buf, 52, 50); > > string tst; > > tst = ""; > > for a=0...10 { > > str.putchar(tst, Buf[a]); } > > if returnval > 1 { > > lcdext.clear(); > > lcdext.print(tst); } > > } > > } > > > > Gruß > > Johannes