[vz-users] Sonderzeichen beim Auslesen vom Itron ACE3000
Oliver Regehr
oliver at regehr.net
Tue Jul 29 19:34:28 CEST 2014
Hallo,
nachdem ich mal „ein wenig“ gedebugged habe (Oszillographen in den Keller schlüren, testen, andere Schaltung mit TTL-Ausgang an das Erweiterungsboard anschliessen, ratlos aus der Wäsche gucken, …) habe ich schonmal einen Fehler gefunden:
Der serielle Port vom Raspi ist kaputt! Mit einem anderen Raspi werden die Daten problemlos gelesen. Gnargh.
Trotzdem habe ich noch ein paar Schwierigkeiten:
Wenn ich mit echo die Initialisierungssequenz schicke und parallel mit minicom „lausche“ kommen alle Daten vollkommen richtig und heile an.
Mit dem vzlogger wird nichts gelesen - auch nicht mit der passenden Initialisierungssequenz.
Bei meinem Script werden die Daten abgehackt, und zwar bei folgender Schleife:
until [[ $EOL -eq 1 ]]; do
read -t8 LINE < /dev/ttyAMA0
EOL=$?
echo $LINE
[[ "$LINE" =~ ^1.*8.*0.*([0-9]{6}\.[0-9])\*kWh\) ]] && BEZUG="${BASH_REMATCH[1]}"
[[ "$LINE" =~ ^2.*8.*0.*([0-9]{6}\.[0-9])\*kWh\) ]] && EINSPEISUNG="${BASH_REMATCH[1]}"
done
Während ich bei folgendem Programmteil alles ohne Probleme auslesen kann:
while read -t8 LINE
do
echo $LINE
[[ "$LINE" =~ ^1.*8.*0.*([0-9]{6}\.[0-9])\*kWh\) ]] && BEZUG="${BASH_REMATCH[1]}"
[[ "$LINE" =~ ^2.*8.*0.*([0-9]{6}\.[0-9])\*kWh\) ]] && EINSPEISUNG="${BASH_REMATCH[1]}"
done < /dev/ttyAMA0
Kann mir jemand vielleicht erklären, warum das eine funktioniert und das andere nicht?!
(Ich hatte das bei meinen Script mit $EOL implementiert, dass das Lesen abgebrochen wird, sobald alle notwendigen Daten vorhanden sind, damit das Script ein bisschen schneller läuft)
Gruss,
Olli
More information about the volkszaehler-users
mailing list