ubuntuusers.de

/dv/ttyS0 sendet/empfängt nicht mit C-Programm, nur mit gtkterm!

Status: Gelöst | Ubuntu-Version: Kubuntu 12.04 (Precise Pangolin)
Antworten |

Dippel

Avatar von Dippel

Anmeldungsdatum:
29. September 2013

Beiträge: 24

Wohnort: Schleswig-Holstein

Hallo Leute,

Ich habe eine Wetterstation vom Tp WS2500 von ELV an meinen Rechner Ubuntu (12.04 LTS) an der seriellen Schnittstelle /dev/ttyS0 angeschlossen. Zum Abholen der Wetterdaten gibt es zwei verschiedene, voneinander unabhängige C-Programme:

Beide Programme habe ich installiert und ausprobiert. Beide können die Vierbindung zur WS2500 nicht etablieren. pcwsr bleibt einfach stumm. ws2500 meldet nach einer längeren Zeit einen Fehler und beendet sich dann.

Ich habe mir also eine LEd-Adapter für die ser. Schnittstell gebaut (Schaltung siehe unten). Wenn ich nun als root ein Terminalprogramm starte, z.B. gtkterm und Daten sende kann ich das am Aufblitzen der LED an Pin 3 sehen. Verbinde ich die beiden Kontakt -/- meiner Schaltung miteinander, blitzt zeitgleich auch die Empfangs-LED an Pin 2 - und ich sehe meine eingetippten Daten im Terminal. Also funktioniert meine Schaltung, und auch die serielle Schnittstelle im Rechner - immerhin. ☺

Wenn ich aber eines der beiden Programm starte, die mit der Wetterstation in Kontakt treten sollen, tut sich auf der Schnittstelle nichts. Die LEDs bleiben dunkel. Woran könnte das liegen?
Beiden Programmen (als root gestartet) gebe ich die Übertragungsparameter mit: 19200Baud, 8Bit, 2Stoppbit, EvenParity, wie auch die Schnittstelle; /dev/ttyS0.

  1. Muss ich noch irgendwo weitere Einstellungen vornehmen, bzw.

2. Wie kann ich prüfen das das Programm die Schnittstelle ordnungsgemäß anspricht?
(Das zwei ganz unterschiedliche Programme, von unterschiedlichen Autoren ausgerechnet bei mir nicht funktionieren, und das nichts mit mir oder meinem Rechner zu tun hat ist ja bischen unwahrscheinlich.)

Grüße Siegfried

Schaltung an der seriellen Schnitsttelle:

TxD Pin (3)-------|>|--(/)----[R=470Ohm]-----(5) GND
RxD Pin (2)-------|>|--(/)----[R=470Ohm]-----(5) GND 

Naubaddi

Avatar von Naubaddi

Anmeldungsdatum:
28. Oktober 2009

Beiträge: 806

Hi,

Dippel schrieb:

Ich habe eine Wetterstation vom Tp WS2500 von ELV an meinen Rechner Ubuntu (12.04 LTS) an der seriellen Schnittstelle /dev/ttyS0 angeschlossen...

kann eventuell an den Rechten liegen:

USB/RS232 Berechtigung für den Benutzer aktivieren (Terminal)

sudo usermod -aG dialout USER

abmelden/anmelden nicht vergessen, ohne diesen Eintrag funktioniert die RS232 bei mir nicht.

Grüßle

Dippel

(Themenstarter)
Avatar von Dippel

Anmeldungsdatum:
29. September 2013

Beiträge: 24

Wohnort: Schleswig-Holstein

Hallo Naubaddi,

zusammen mit Deinem Tipp zu den Berechtiungen und einem Hinweis aus einem anderen Forum zu dem Steuerzeichenleitungen DTR, , DSR, DCD, RTS, CTS bin ich auf die Lösung gekommen. Ich hatte immer nach einem Softwareproblem gesucht, da die WS2500 ja keine Steuerleitungen verwendet. Die C-Programmierung greift aber auf Routinen zurück die eine echte RS232 behandeln und die erwarten ebend schon auf das Aussenden eines DTR ein DSR, usw. - und zwar auf dem rictigen Port. Als ich die Berechtigungen der user, die das programm aufrufen überprüft habe, stellte ich fest das nicht der rictige port /dev/ttyS0, sondern ein nicht vorhandener /dev/ttyS1 angesprochen wird, ganz nebenbei stimmten auch die rechte nicht.

Also habe ich mir noch mal meinen RS232-Stecker genommen und RTS mit CTS verbunden, sowie DTR mit DSR und DCD - und die Rechte der USER angepasst. Und jetzt funktioniert zumindest die Kommunikation zwischen dem Programm ws2500 und der Station.

Jetzt kann ich die nächsten Schritte gehen.

Vielen Dank für den heißen Tipp 👍 Siegfried

Dippel

(Themenstarter)
Avatar von Dippel

Anmeldungsdatum:
29. September 2013

Beiträge: 24

Wohnort: Schleswig-Holstein

Nachtrag: Jetzt funktioniert tatsächlich alles. Wer die Wetterstation sehen will gibt in seine Adresszeile im Browser "http://windwetter.dlinkddns.com/" oder "31.16.57.5" ein.

Grüße

Siegfried

Antworten |