Daten über serielle Schnittstelle ausgeben

O

oefinet

Grünschnabel
Hallo,

ich versuche in einer Endlosschleife Daten aus der RS 232 Schnittstelle ttyS0 zu senden. Hat jemand eine Idee, wie ich das mit einem C-Programm unter Linux realisieren kann. Bin bei Hardwareprogrammierung mit Linux absoluter Neuling.

Geforderte Einstellungen

Baudrate 115200
Datenbits 8
even parity
keine Flusssteuerung
1 Stopbit

Wäre echt super, wenn mir jemand helfen würde.

Gruß Öfi
 
Hi Baggio,
vielen Dank für die Nachricht!!! Werde ich morgen gleich mal durchlesen und ausprobieren.

Gruß Öfi
 
Hier ist der Quellcode eines Steuerservers für einen Barcodedrucker bei uns, der über die serielle Schnittstelle unter Linux angesteuert wird. Der Daemon macht u. a. das, was Du suchst:

Für Dich wichtig ist die Funktion void write_serial( int fd, char* buffer, size_t length ): Die öffnet die serielle Schnittstelle, gibt den Puffer buffer der Länge length dorthin und schliesst sie wieder. Das mag ungelenk erscheinen, war aber notwendig, weil der Drucker noch über weitere Tools angesteuert wird.

- Der Code implementiert "8N1": 8 Datenbit, keine Parity, 1 Stopp-Bit. Brauchten wir nicht anders->ggfs. Änderungen ab Zeile 757

- Für Baudrate 115k in Zeile 68: #define DEFAULT_BAUDRATE B1152000

- Der Code kompiliert out-of-the-box: gcc -o eth eth2rs232_.c reicht.

- Der Kommandoswitch -h zeigt die Verwendung.

Nützliches Feature: Du kannst ein telnet localhost <port> aufmachen und beliebige Zeichen hineinschreiben, die dann so auf die Schnittstelle gegeben werden.

Für die Puristen: Ja, das Tool ist hyperanfällig für Buffer-Overflow Attacken... Aber dafür läuft es seit Jahr und Tag stabil durch... ;)

Ach ja... es gibt den undokumentierten Switch -B, der unterbindet das Setzen der Konfigurationsattribute auf die Schnittstelle. Damit funktioniert das Tool auch mit Bluetooth. Du hast eine Bluetooth-TCP/IP-Brücke. :D
 

Anhänge

  • eth2rs232_.c.gz
    6 KB · Aufrufe: 15
Zuletzt bearbeitet:

Habe vor längerer Zeit mal ein seriellen Schnittstellenmonitor mit C++Builder gebastelt.
Hierfür habe ich von einem Dejan Crnila ein Quelloffenes Tool herunter geladen.
Damals war es die Version 2.61 so glaube ich. Habe eben gesehen, dass er es noch weier entwickelt hat .....Version 3.1
Download zB. hier....
http://sourceforge.net/projects/comport/

Original programmierte er es in Pascal. Man konnte es aber auch im C++Builder einbauen.

Ich habe es nicht probiert und weiss auch nicht ob man diese Bibliotheken so einfach in andere Programme implementieren kann. Aber vielleicht funktioniert es ev. mit Lazarus (Delphi ähnlich und free ) oder mit Kdevelop ( C++ und free )

http://de.wikipedia.org/wiki/Lazarus_(Software)
http://de.wikipedia.org/wiki/Kdevelop

Würd mich interessieren ob es funktioniert hat.

( Anmerkung: Bin kein Programmierguru !!!)

Alux
 
Zuletzt bearbeitet:

Ähnliche Themen

Perl serielle Schnittstelle

read(2) unter Suse Linux verwandelt 13 (CR) zu 10 (LF)?!

Linuxpartition zerschossen

Zurück
Oben