Unterschied zwischen Test-Exe und echter Exe bei RS232?

Anfängerfragen zum Programmieren mit PureBasic.
hoerbie
Beiträge: 37
Registriert: 06.12.2013 13:53

Unterschied zwischen Test-Exe und echter Exe bei RS232?

Beitrag von hoerbie »

Hallo,

ich schreibe gerade an einem Programm, welches per serieller Schnittstelle mit einem anderen Gerät kommuniziert. Da es ja kaum noch echte OnBoard RS232 gibt, kommt ein USB-Seriell-Wandler (FTDI von Digitus) zum Einsatz, der auch an sich soweit läuft.

Nun hat sich bei Tests aber ergeben, daß das Programm es bisher nicht mit bekam, wenn dieser Wandler während des Betriebs z.B. abgezogen wird. Folglich habe ich als ersten Schritt nun eine Überprüfung der Rückgabe der gesendeten Bytes bei WriteSerialPortData eingebaut, denn wenn der Wandler nicht mehr da ist, kommt da konsequent 0 gesendete Bytes zurück.

Nun aber zum eigentlichen Problem: Zusätzlich wollte ich auch SerialPortError abfragen, und in der mittels "Kompilieren/Starten" erzeugten PureBasic_Compilation0.exe oder so ähnlich wird dann auch der an sich logische Fehler #PB_SerialPort_IOE gemeldet, in der direkt per "Executable erstellen" erzeugten Programm.exe wird dieser Fehler aber merkwürdigerweise nicht gemeldet. Ebenso bekomme ich in der Test-Exe nach dem Abziehen bei AvailableSerialPortInput riesige Werte >60000 zurück, ReadSerialPortData kann dann aber nur 0 Bytes lesen, blockiert aber auch nicht. In der echten Exe liefert AvailableSerialPortInput aber korrekte 0 Bytes zurück.

Gibt es da irgendeine Compiler-Einstellung, die ich vielleicht noch setzen könnte? Oder wieso benimmt sich die Test-Exe anders als die echte Exe?

Verwendet wird die 5.24 LTS unter Windows 8.1 32 Bit, und da das serielle Gerät nur Iso/Latin erwartet, habe ich auch kein Unicode kompiliert. Ich werde Morgen nochmal Tests unter Windows 7 64-Bit (aber auch mit dem 32-Bit Kompilat) machen.

Danke+Gruß,
Hoerbie
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Unterschied zwischen Test-Exe und echter Exe bei RS232?

Beitrag von Kiffi »

prüf mal, ob es in Deinem Code Debug-Anweisungen gibt. Diese werden in der 'echten' Exe nicht mitkompiliert.

Grüße ... Peter
a²+b²=mc²
Antworten