RS232 lesen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Re: RS232 lesen

Beitrag 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
Bild
Win11 Pro 64-Bit, PB_6.11b1
gbalzarek
Beiträge: 38
Registriert: 06.07.2006 22:18
Wohnort: D-Südwest

Re: RS232 lesen

Beitrag 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...
gbalzarek
Beiträge: 38
Registriert: 06.07.2006 22:18
Wohnort: D-Südwest

Re: RS232 lesen

Beitrag 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.
gbalzarek
Beiträge: 38
Registriert: 06.07.2006 22:18
Wohnort: D-Südwest

Re: RS232 lesen

Beitrag 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.
Benutzeravatar
Rings
Beiträge: 977
Registriert: 29.08.2004 08:48

Re: RS232 lesen

Beitrag 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.
Rings hat geschrieben:ziert sich nich beim zitieren
Antworten