Aktuelle Zeit: 28.01.2021 06:51

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: IsSerialPort() - nicht logisches Ergebnis
BeitragVerfasst: 05.05.2020 13:20 
Offline
Benutzeravatar

Registriert: 19.03.2015 18:16
Wohnort: Altenstadt
HI,

nachdem ich mit den Hinweisen aus

https://www.purebasic.fr/german/viewtopic.php?f=28&t=30148&hilit=serial+port

gut bisher klar kam, funktioniert dieser code-Schnipsel neuerdings nicht mehr (MBP mit OSX 10.13.) so, wie ich das kenne.
IsSerialPort() sollte 0 melden, wenn Port 0 nicht geöffnet ist. Tatsächlich wird eine große Zahl gemeldet; heißt: port offen.
Schließe ich den port vorher mit closeserialport(0), wird genau dieser Befehl als nicht durchführbar gemeldet, weil der port bereits geschlossen ist. Unlogisch...
openserialport(0) gibt Fehler, da der port wohl doch offen ist. (also müßte closeserialport(0) ja funktionieren - tut's aber nicht()

Die Windows-Version zu IsSerialPort(0) funktioniert wie bisher einwandfrei (auf einem Windows-PC).

Ich habe (nach meinem Verständnis) keine weitere app laufen, die auf den port zugreifen und ihn geöffnet haben könnte.

Könnt ihr mir einen Tip zur Lösung geben?

_________________
Gruß
Manne
http://zes.kart-mal-anders.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: IsSerialPort() - nicht logisches Ergebnis
BeitragVerfasst: 05.05.2020 18:19 
Offline
Benutzeravatar

Registriert: 19.03.2015 18:16
Wohnort: Altenstadt
HI,
Nachtrag. Ich glaube inzwischen, dass closeserial(0) nicht funktioniert.
In einer Routine (siehe link vorheriger post) werden zu beginn des Programms alle verfügbaren serial ports gesucht und in einer Liste eingetragen.
Setze ich hier Isserialport(0) vor Openserialport(0), dann meldet Isserialport(0) -> Null. Korrekt.
Ich hab's jetzt so ausprobiert:

Code:
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))


Die Ausgabe im debug-Fenster ist:
0
4300253224

Hmmmmm....

// Edit: Code-Tags hinzugefügt (Kiffi)

_________________
Gruß
Manne
http://zes.kart-mal-anders.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: IsSerialPort() - nicht logisches Ergebnis
BeitragVerfasst: 06.05.2020 12:34 
Offline
Benutzeravatar

Registriert: 19.03.2015 18:16
Wohnort: Altenstadt
HI,

noch'n Nachtrag:

CoolTerm kann mit dem FTDI-USB-Serial-Adapter einwandfrei arbeiten.

Je nachdem, ob ich mit coolterm den Port öffne oder schließe, zeigt anschließend IsSerialPort(0) den passenden Status korrekt an.

_________________
Gruß
Manne
http://zes.kart-mal-anders.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: IsSerialPort() - nicht logisches Ergebnis
BeitragVerfasst: 05.06.2020 22:47 
Offline

Registriert: 23.08.2013 14:38
Das scheint ein Bug zusein,
Mit #PB_Any funktioniert es aber.

Code:
Debug Str(IsSerialPort(myPort))
myPort = OpenSerialPort(#PB_Any,"/dev/tty.usbserial-FTCEM405",57600,#PB_SerialPort_NoParity,8,1,#PB_SerialPort_NoHandshake,1024,1024)
CloseSerialPort(myPort)
Debug Str(IsSerialPort(myPort))

_________________
OSX 10.13 | PB 5.46


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: IsSerialPort() - nicht logisches Ergebnis
BeitragVerfasst: 13.06.2020 20:08 
Offline
Benutzeravatar

Registriert: 19.03.2015 18:16
Wohnort: Altenstadt
HI,

hab ich probiert.

Dein code läuft fehlerfrei. Aber:
Code:
Debug Str(IsSerialPort(myPort))
myPort = OpenSerialPort(#PB_Any,"/dev/tty.usbserial-FTCEM405",57600,#PB_SerialPort_NoParity,8,1,#PB_SerialPort_NoHandshake,1024,1024)
CloseSerialPort(myPort)
Debug Str(IsSerialPort(myPort))
Debug myPort
Delay(5000)
OpenSerialPort(myPort,"/dev/tty.usbserial-FTCEM405",57600,#PB_SerialPort_NoParity,8,1,#PB_SerialPort_NoHandshake,1024,1024)
Delay(5000)
End


...müßte ja den port öffnen können - IDE bricht (EDIT: beim 2. OpenSerialPort) ab mit: "#SerialPort Objektnummer ist sehr hoch (über1000), sind Sie dazu sicher?"

myPort wird davor ausgegeben mit "4299336776"

_________________
Gruß
Manne
http://zes.kart-mal-anders.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: IsSerialPort() - nicht logisches Ergebnis
BeitragVerfasst: 13.06.2020 20:49 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Wieder mit #PB_Any öffnen.
Bei einer festen ID werden die ID's von 0 bis den Wert myPort als Array und der Speicher reserviert.
Daher die Warnung.
PB verwendet statische Arrays (Feste ID) oder dynamischen Speicher (#PB_Any) für die Objekt-ID's

_________________
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.7x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf My Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: IsSerialPort() - nicht logisches Ergebnis
BeitragVerfasst: 14.06.2020 09:23 
Offline
Benutzeravatar

Registriert: 19.03.2015 18:16
Wohnort: Altenstadt
HI,

ja, wenn ich von fester auf dynamischer ID umstricke, dann funktioniert die com-Handhabung.

Danke für den Tip.

_________________
Gruß
Manne
http://zes.kart-mal-anders.de


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye