Seite 2 von 2

Re: RS232 lesen

Verfasst: 16.03.2013 13:34
von Falko
Ich bin mir nicht sicher, aber es könnte sein, das du bei der Whileschleife das >0 weglassen musst.

Code: Alles auswählen

While AvailableSerialPortInput(0)
...
Ansonsten Tippe ich eher auf einen Bug in der Serialport-Lib.

Hast du auch die aktuellste Version, z.B. die 5.11 Beta 3 mal ausprobiert?

[Edit]
Versuch mal anstatt byte.b mal byte.l
oder ändere mal in Hex(byte,#PB_Byte) um.

Als Beispiel für die Unterschiede:

Code: Alles auswählen

b.b=255
Debug Hex(b)

Debug Hex(b,#PB_Byte);hiermit wird in PB die 255 richtig dargestellt.

l.l=255
Debug Hex(l)
[/Edit]

Gruß, Falko

Re: RS232 lesen

Verfasst: 18.03.2013 11:04
von gbalzarek
@Falko:

Danke für die Tipps. Leider lösen sie das Problem nicht.
Jetzt bleibt nur noch der mögliche Bug in der Serialport.lib. Ich mache mal ein Update auf V5.10 und berichte dann. Hoffentlich muss ich dann nicht das halbe Programm ändern...

Re: RS232 lesen

Verfasst: 18.03.2013 16:09
von gbalzarek
So, leider auch mit PB5.1 kein Erfolg.
Positiv ist aber, dass mein Programm ohne jede Änderung akzeptiert wurde.

Allerdings werden jetzt 20 Bytes, statt 6 Bytes empfangen.

Re: RS232 lesen

Verfasst: 19.03.2013 15:52
von gbalzarek
So, jetzt habe ich mir mit dem Speicheroszilloskop angesehen, was seriell am externen Gerät ankommt. Das sind mehr Bytes, als mit dem alten DOS-Programm. Ich habe also auf der falschen Seite gesucht.
Es liegt am Sendeteil. Hier mußte ich das Programm stark ändern, weil PB keine Null-Bytes in Strings duldet. Statt Writeserialportstring() benutze ich jetzt Writeserialportdata(), weil damit Null-Bytes übertragen werden können. Hier lag der Fehler, ich hatte den Befehl nicht richtig umgeschrieben. Mist!
Aber ich danke Euch für Eure Unterstützung und Geduld.

Re: RS232 lesen

Verfasst: 19.03.2013 15:59
von Rings
gbalzarek hat geschrieben:So, jetzt habe ich mir mit dem Speicheroszilloskop angesehen, was seriell am externen Gerät ankommt. Das sind mehr Bytes, als mit dem alten DOS-Programm. Ich habe also auf der falschen Seite gesucht.
Es liegt am Sendeteil. Hier mußte ich das Programm stark ändern, weil PB keine Null-Bytes in Strings duldet. Statt Writeserialportstring() benutze ich jetzt Writeserialportdata(), weil damit Null-Bytes übertragen werden können. Hier lag der Fehler, ich hatte den Befehl nicht richtig umgeschrieben. Mist!
Aber ich danke Euch für Eure Unterstützung und Geduld.
Noch so als Tip, ich nutze immer das kostenlose Tool "Portmon" von
Sysinternals, damit kann man schön den Seriellen Port auf dem
eigenen Rechner überwachen.