Kennung Serielle Schnittstelle unter Linux

Kennung Serielle Schnittstelle unter Linux

Beitragvon Timm Thaler » 3. Jan 2017, 17:14 Kennung Serielle Schnittstelle unter Linux

Für ein COM-Programm möchte ich die vorhandenen und verfügbaren seriellen Schnittstellen erkennen. Unter Windows ist das einfach, COMx durchgehen und schauen, ob sie sich öffnen läßt.

Unter Linux geht das prinzipiell auch, aber da gibt es anscheinend eine Vielzahl von Kennungen für die Serielle. Auf dem Raspi ist mir jetzt untergekommen: ttyS0 ist die vergeigte Standardschnittstelle auf dem Pi3, ttyAMA0 ist umgelenkte Schnittstelle vom Bluetooth, bei USB seriell Wandlern sind es ttyUSB0 und ttyUSB1.

Es scheint aber auch noch ttyACMx zu geben, und möglicherweise noch andere Formen. Welche sind euch bisher untergekommen?

Und nein, das scheint nicht trivial zu sein. Cutecom z.B. zeigt nur ttyS0 bis S3 an, ohne sie zu prüfen, die ttyAMA0 muss man von Hand eintragen. Gtkterm zeigt nur vorhandene ttySx und ttyUSBx an, aber nicht die ttyAMA0, und die kann man auch nicht eintragen, somit unbenutzbar.
Timm Thaler
 
Beiträge: 577
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.64 FPC3.0.4, Raspbian Stretch Laz1.62 FPC3.0.2 | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon Mathias » 3. Jan 2017, 18:11 Re: Kennung Serielle Schnittstelle unter Linux

Hier steht eine Lösung: viewtopic.php?f=16&t=8230&p=72839&hilit=Ports#p72839

. Unter Windows ist das einfach, COMx durchgehen und schauen, ob sie sich öffnen läßt.

Dies ist auch nicht unbedingt sauber, besser ist es die Registry danach zu fragen.

Bei der Komponente Lazserial, ist solche ein Abfrage dabei.
Unter Windows funktioniert sie.

Für Linux gibt es sie dort auch, nur ist sie leider fehlerhaft.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3976
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon Timm Thaler » 3. Jan 2017, 23:11 Re: Kennung Serielle Schnittstelle unter Linux

Für Windows habe ich die seit Jahren bewährte Methode, einfach die COMs durchzugehen.

Unter Linux ist das halt schwierig, weil anscheinend die Bezeichnung beliebig sein darf, sofern sie nur mit tty beginnt. Es gibt aber einen Haufen tty, die keine COM sind.

Achso, ich arbeite gerade mit der serial.pp und würde die auch gern beibehalten.

Mathias hat geschrieben:Hier steht eine Lösung: viewtopic.php?f=16&t=8230&p=72839&hilit=Ports#p72839


Das hatte ich schon gefunden, und beim drittenmal Lesen - ja, das scheint so zu gehen. Klingt umständlich, werd ich aber mal testen.
Timm Thaler
 
Beiträge: 577
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.64 FPC3.0.4, Raspbian Stretch Laz1.62 FPC3.0.2 | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon pluto » 4. Jan 2017, 00:07 Re: Kennung Serielle Schnittstelle unter Linux

Unter Linux gibt es zwei Haupt Namen für USB Device's
1. ttyUSB+Zahl
2. ttyACM+Zahl
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
 
Beiträge: 6534
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.1 | 
CPU-Target: AMD
Nach oben

Beitragvon Timm Thaler » 4. Jan 2017, 00:51 Re: Kennung Serielle Schnittstelle unter Linux

Also reicht es, wenn ich - falls ich nicht die aufwendige Variante will - folgende Kennungen durchgehe:

ttyS : standard RS232
ttyUSB : USB-seriell-Wandler
ttyACM : Modems bzw. neuerdings Mikrocontroller oder andere Devices
ttyAMA : der interne Uart im Raspi (beim 3er für Bluetooth benutzt) bzw. ARM-Controller

Außerdem werde ich die ComboBox für den Portselect editierbar machen, so dass der Benutzer eigene Kennungen reinschreiben kann, falls er was Exotisches hat. Genügt für meine Zwecke.
Timm Thaler
 
Beiträge: 577
Registriert: 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.64 FPC3.0.4, Raspbian Stretch Laz1.62 FPC3.0.2 | 
CPU-Target: Raspberry Pi 3
Nach oben

Beitragvon Mathias » 4. Jan 2017, 16:55 Re: Kennung Serielle Schnittstelle unter Linux

Außerdem werde ich die ComboBox für den Portselect editierbar machen, so dass der Benutzer eigene Kennungen reinschreiben kann, falls er was Exotisches hat.

So habe ich das bei einem von meinen Programmen auch gemacht.

Stellt mal vor, ihr habt vor ein paar Jahren ein Programm geschrieben, welches den 9-Pol-Com-Port benutzt.
Dazu habe ihr alle ttyS* in eine Read-Only Combo-Box geschrieben.
Später will ein Anwender seine COM-Device, zB. an eine USB-Docking-Station anschliessen, und dort ist der Com-Port ttyUSB*, was passiert, der Anwender ist machtlos und klettert die Wände hoch. :roll:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3976
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

• Themenende •

Zurück zu Linux



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried