You are not logged in.

Anzeigen

nslu2-info.de ist ein privates Projekt von mir, welches jeden Monat aus eigener Tasche finanziert wird. Mit einer freiwilligen Spende wird der Erhalt und der weitere Ausbau dieses Forums unterstützt. Um mich beim Erhalt des Forums zu unterstützen, kannst Du entweder via Flattr oder Paypal spenden. Ich bedanke mich schon jetzt bei allen Unterstützern.

  • "Linux-Beginner" started this thread

Posts: 35

wcf.user.option.userOption68: 2 x NSLU2, Lan-Server, ...

wcf.user.option.userOption65: Debian

  • Send private message

1

Sunday, December 13th 2009, 11:47am

Daten von Serieller Schnittstelle in eine Datei schreiben

Hallo,

ich versuche für meine Wetterstation einen Schneehöhenmesser zu bauen. Mittels Ultraschall wird die Höhe ermittelt und über die Serielle Schnittstelle übertragen. Bei jedem Ausführen eines Scriptes soll eine Zeitmarke und der Wert in eine Datei geschrieben werden.
Mein Problem ist jedoch das empfangen unter Unslung.

wird mit

Source code

1
echo "G" >> /dev/ttyUSB0
ein G an den Mikrocontroller übertragen so anwortet dieser nach ca. 500ms mit dem Wert (in ASCII-Zeichen).
Bsp.: 030.6 und einem Linefeed. Also immer sechs Char Werte.

Zu Testzwecken hab ich dieses kleine Script "test.sh" ausprobiert:
(Übertragung ist 9600baud 8N1)

Source code

1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh

stty 9600 cs8 -parenb -crtscts -clocal -cstopb -echo -F /dev/ttyUSB0

echo "G" >> /dev/ttyUSB0

while [ "$LINE" != 10 ]
do
read LINE < /dev/ttyUSB0
	echo $LINE
done


Hier ist allerdings schon mein erstes Problem. Das Script wird nie beendet, ich muss es jedesmal mit STRG-C beenden und bei jeder zweiten Abfrage von test.sh wird die führende 0 nicht angezeigt.

Source code

1
2
3
4
5
6
root@Webserver2:/> ./test.sh
10.1
root@Webserver2:/> ./test.sh
010.1
root@Webserver2:/> ./test.sh
10.1


Ziel soll es später sein, dass beim ausführen des Scriptes ein "Timestamp" und der Wert in eine Datei angehängt wird.

Source code

1
2
3
20091213120000 060.2
20091213121000 060.4
...

Ich hoffe mir kann jemand dabei helfen damit es funktioniert.

Anzeigen
  • "Linux-Beginner" started this thread

Posts: 35

wcf.user.option.userOption68: 2 x NSLU2, Lan-Server, ...

wcf.user.option.userOption65: Debian

  • Send private message

2

Sunday, December 13th 2009, 7:16pm

Hat sich erledigt, eine längere Wartezeit vom µC vor dem Senden hat den gewünschten Erfolg gebracht.
Manchmal hab ich einfach ein Brett vor dem Kopf. :wacko:

Source code

1
2
3
4
5
6
7
8
9
#!/bin/bash

Datum=$(date +%Y%m%d%H%M)
stty 9600 cs8 -parenb -crtscts -clocal -cstopb -echo -F /dev/ttyUSB0

echo "G" >> /dev/ttyUSB0
read LINE < /dev/ttyUSB0
echo $Datum $LINE >> /history/snow.txt
echo $Datum $LINE

This post has been edited 1 times, last edit by "Linux-Beginner" (Dec 13th 2009, 8:14pm)


Anzeigen

Social bookmarks