serial port name finden

MAC OSX spezifisches Forum
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
kartmanne
Beiträge: 108
Registriert: 19.03.2015 18:16
Wohnort: Altenstadt
Kontaktdaten:

serial port name finden

Beitrag von kartmanne »

HI,

lt. pb-Hilfe werden serial port Namen mit z.B. "/dev/ttySx" (x=ziffer) angesprochen. Auf meinem Mac gibt's solche Portnamen nicht (10.10. yosemite) was es gibt ist "/dev/tty.irgendwastext.yxz".

Wie kann ich denn nun solche Namen finden? Ziel ist, diese ports in ein spin Gadget einzubauen. Dazu brauche ich dann wohl die Portnamen als String.

Auf win ist das ja einfach. "COM" +str(zahl)
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: serial port name finden

Beitrag von NicTheQuick »

Reicht dir das hier?
Bild
Benutzeravatar
Shardik
Beiträge: 738
Registriert: 25.01.2005 12:19

Re: serial port name finden

Beitrag von Shardik »

Hast Du schon einmal die beiden Beispiele von Dave Houston aus dem englischen Forum ausprobiert?
Benutzeravatar
kartmanne
Beiträge: 108
Registriert: 19.03.2015 18:16
Wohnort: Altenstadt
Kontaktdaten:

Re: serial port name finden

Beitrag von kartmanne »

HI,

@nicthequick: ja, das krieg ich hin, ist ein Auflisten nach Suchkriterien in der Konsole. Ich sehe derzeit nicht, wie ich das so umsetzten kann, dass in pb die ports automatisch gefunden werden. Die Benamungssystematik endet nach meinem bisherigen Amateur-Blick mit dem "." hinter "/dev/tty". Alles was nach dem "." kommt - so meine googelei - entbehrt jeglicher Festlegung.

@shardik: ah, in directories suchen erscheint mir logisch. So müßte ich die Namen als Text kriegen, die da drin liegen. Danke für den Tip. Probier ich mal aus.
Benutzeravatar
kartmanne
Beiträge: 108
Registriert: 19.03.2015 18:16
Wohnort: Altenstadt
Kontaktdaten:

Re: serial port name finden

Beitrag von kartmanne »

Hi,

guter Tip. So funktioniert bei mir:

Code: Alles auswählen

ClearGadgetItems(Combo_hd)
  
  CompilerSelect #PB_Compiler_OS
    CompilerCase #PB_OS_Windows
      For i=1 To 256
        If OpenSerialPort(0,"COM"+Str(I),57600,#PB_SerialPort_NoParity,8,2,#PB_SerialPort_NoHandshake,1024,1024);port erfolgreich geöffnet ?
          AddGadgetItem(Combo_hd, -1, "COM"+Str(i))
          CloseSerialPort(0)
        EndIf
      Next i
      
    CompilerCase #PB_OS_MacOS
      If ExamineDirectory(0,"/dev/","tty.*")
        While NextDirectoryEntry(0)
          If DirectoryEntryType(0) = #PB_DirectoryEntry_File
            If OpenSerialPort(0,"/dev/"+DirectoryEntryName(0),57600,#PB_SerialPort_NoParity,8,2,#PB_SerialPort_NoHandshake,1024,1024);port erfolgreich geöffnet ?
              AddGadgetItem(Combo_hd, -1, "/dev/"+DirectoryEntryName(0))
              CloseSerialPort(0)
            EndIf
          EndIf
        Wend
        FinishDirectory(0)
      EndIf 
      
  CompilerEndSelect
  
  SetGadgetState(Combo_hd,0)
Habe dhouston's code aus dem oben referenzierten Beispiel für den "Mac-Ast" genommen. Findet alle Geräte in /dev/ und filtert nur die in die ComboBox, die auch seriell geöffnet werden können. Für mich eine sehr gute Lösung.

Merci.
Antworten