closeserialport() schließt port nicht

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Benutzeravatar
kartmanne
Beiträge: 108
Registriert: 19.03.2015 18:16
Wohnort: Altenstadt
Kontaktdaten:

closeserialport() schließt port nicht

Beitrag von kartmanne »

HI,

ich glaube, dass closeserialport() nicht korrekt funktioniert (oder der Unterbau...).

Folgender reduzierter code gibt beim ersten DEBUG 0 aus. Korrekt. Beim 2. DEBUG sollte auch 0 ausgegeben werden, aber es kommt eine Ausgabe in der Größenordnung von 4300253224. Der port ist anschließend auch nicht per erneutem Openserialport() öffnbar. Es ist kein Unterschied, ob aus der IDE gestartet oder das executable.

Code: Alles auswählen

Debug Str(IsSerialPort(0))
OpenSerialPort(0,"/dev/tty.usbserial-FTCEM405",57600,#PB_SerialPort_NoParity,8,1,#PB_SerialPort_NoHandshake,1024,1024)
CloseSerialPort(0)
Debug Str(IsSerialPort(0))
PB-Version: PureBasic 5.72 (MacOS X - x64)
Compilereinstellungen:
[x] Thread-sicheres Executable erstellen
[x] OnError-Unterstützung einschalten
Executable: MacOS, alle CPU
Ich nutze PB, wie es ist, keine zusätzlichen libs o.ä.

MacBookPro Mitte 2015, MacOSX 10.13.6 aktuell

Ich verwende einen USB-Serial-Adapter von FTDI, Treiber (FTDIUSBSerialDriver_v2_4_2) aktuell von FTDI installiert. Mit Coolterm 1.4.7 ist der Adapter einwandfrei nutzbar.

Obiger code-schnipsel ist reduziert aus einer Routine, die die verfügbaren seriellen ports finden soll. Ich habe aus dem thread hier die Routine übernommen.
viewtopic.php?f=28&t=30148&hilit=serial+port
Die Routine findet auf meinem aktuellen MacOSX alle verfügbaren ports und trägt sie in die Liste ein. Ein anschließendes öffnen irgendeines Ports aus der Liste schlägt fehl. So kam ich letztlich auf den reduzierten code-schnipsel, den ich oben zitiert hab.

Interessant ist, dass ich ein anderes Projekt (ZES) mit gleicher o.g. Routine Anfang diesen Jahres kompiliert habe (vermutlich... mit 5.71 LTS, sorry, kann's nicht mehr nachvollziehen, oder finde ich das irgendwo im executable?). Und das funktioniert. Letztens mit 5.71 und auch mit 5.72 kompiliert, gleiches Fehlverhalten bei closeserialport(). Es gab zwischenzeitlich ein paar security updates von Apple, die ich zeitnah zur update-Meldung von Apple durchgeführt habe. Ich kann leider nicht sagen, welchen Systemstand es gab, als das Fehlverhalten noch nicht da war. (Sorry für's mangelhafte tracking, bin eben kein Profi...)

Wenn euch noch Infos fehlen, gebt bescheid.