[vz-users] c-kermit

re bi rb_volkszaehler at gmx.de
Sat Sep 8 21:18:44 CEST 2012


Hallo Rainer,

also a) kann ich ausschliessen, da ich es derzeit noch manuell ausfuehre und zuerst nachsehe, ob das Device da ist und ich ja auch schon einen cat Command aufgerufen habe, welches mir zwar Daten liefert, aber leider nicht richtig.

Bei b) bin ich mir schon nicht mehr so sicher. Ich habe eine auf meinem Netbook Ubuntu laufen, welches ich verwende fuer meine Tests (Spaeter soll es ein Raspberry Board sein, vielleicht klappt es ja dort besser).
Aber dennoch sollte es erst mal verstaendlich auf dem Netbook laufen.
Habe keine neuen Daemons installiert. Keinen Faxempfaenger.

Laeuft das ganze bei dir als root?
Muss das Device bereits geoeffnet sein, um es mit stty zu aendern?

Siehst du vielleicht einen Fehler in dem von mir geschriebenen Script
=====================================================================
#!/bin/bash
# ließt genau einen Satz des Protokolls des EMH EHz
# muß mit 1B1B1B1B... beginnen, sonst einfach nochmal starten
#set -x

DEV_DEVICE=ttyUSB1
LOG="./cat_$DEV_DEVICE.hex.log"

STARTSEQUENZ="1B1B1B1B0101010176"
STRING_STARTSEQUENZ=""

while [ "$STRING_STARTSEQUENZ" != "$STARTSEQUENZ" ]
do
        DATE=$(date '+%Y.%m.%d_%H:%M')
        TIMESTAMP=$(date +%s)

        #exec </dev/$DEV_DEVICE
        stty raw cs7 parenb -parodd -cstopb </dev/$DEV_DEVICE
        cat /dev/$DEV_DEVICE | xxd -p -u -l 360 | tee $LOG
        STRING=$(cat $LOG)
        #echo STRING=$STRING

        STRING_STARTSEQUENZ=$(echo "${STRING:0:18}")
        #echo STRING_STARTSEQUENZ=$STRING_STARTSEQUENZ
        if [ $STRING_STARTSEQUENZ != $STARTSEQUENZ ];
        then
                echo "falsche Startsequenz. Wiederholen !"
                #exit 1 
        fi
done

# Bezogener Strom 1.8.0 (gekauft)
WERT1_HEX=$(echo "${STRING:390:10}")
echo WERT1_HEX=$WERT1_HEX
WERT1_DEC=$(echo $((0x$WERT1_HEX)))
echo WERT1_DEC=$WERT1_DEC


# Eingespeister Strom 2.8.0 (verkauft)
WERT2_HEX=$(echo "${STRING:347:10}")
echo WERT2_HEX=$WERT2_HEX
WERT2_DEC=$(echo $((0x$WERT2_HEX)))
echo WERT2_DEC=$WERT2_DEC

echo "$DATE $TIMESTAMP $WERT1_DEC $WERT2_DEC" >> ttyUSB1.log
==================================================

Gruss
Reiner


More information about the volkszaehler-users mailing list