[vz-users] mbrtu - update: bug fixes for unsigned ints and support for [u]int(32|64) added

Lars Täuber lars.taeuber at web.de
Wed Dec 28 01:43:43 CET 2016


Ich hab' zu danken. Bei einer so genauen Fehleranalyse, hatte ich es nicht allzu schwer.

Ab jetzt bin ich wirklich weg.

Gute Nacht
Lars

On Wed, 28 Dec 2016 01:22:46 +0100 Frank Richter <frank.richter83 at gmail.com> wrote:
> Hallo Lars,
> 
> sieht gut aus:
> 
> pi at raspberrypi:~/mbrtu $ mbrtu -D -d/dev/ttyUSB0 -b9600 -pE -O1000 -a57 -f3
> -tuint32 -n2 -r0x0400
> Timeout set to 1s and 0ms.
> ADDR=57 FUNC=3 REG=1024 CNT=2
> Opening /dev/ttyUSB0 at 9600 bauds (E, 8, 1)
> [39][03][04][00][00][02][C1][83]
> Waiting for a confirmation...
> <39><03><04><00><16><56><53><DD><A9>
> ADDR=57 REG=1024 DATA=1463891
> 
> Gute Nacht und danke für den späten Einsatz!
> Frank
> 
> 
> 
> Am 28. Dezember 2016 um 01:15 schrieb Lars Täuber <lars.taeuber at web.de>:
> 
> > Hallo Frank,
> >
> > ok, ich sehe.
> > Zieh mal den Fix von github und teste noch mal.
> >
> > Gute Nacht!
> > Lars
> >
> > On Wed, 28 Dec 2016 00:31:40 +0100 Frank Richter <
> > frank.richter83 at gmail.com> wrote:
> > > Hallo Lars,
> > >
> > > ich habe eben einen Test mit uint32 gemacht. Leider wirkt sich der andere
> > > Typ nicht auf die Ausgabe aus, es werden immer noch 2 mit Doppelpunkt
> > > getrennte 16-Bit-Integer ausgegeben:
> > >
> > > pi at raspberrypi:~ $ mbrtu -D -d/dev/ttyUSB0 -b9600 -pE -O1000 -a57 -f3
> > -tint
> > > -n2 -r0x4000
> > > Timeout set to 1s and 0ms.
> > > ADDR=57 FUNC=3 REG=16384 CNT=2
> > > Opening /dev/ttyUSB0 at 9600 bauds (E, 8, 1)
> > > [39][03][40][00][00][02][D5][73]
> > > Waiting for a confirmation...
> > > <39><03><04><00><00><0D><A4><46><DB>
> > > ADDR=57 REG=16384 DATA=0:3492
> > >
> > > pi at raspberrypi:~ $ mbrtu -D -d/dev/ttyUSB0 -b9600 -pE -O1000 -a57 -f3
> > > -tuint32 -n2 -r0x4000
> > > Timeout set to 1s and 0ms.
> > > ADDR=57 FUNC=3 REG=16384 CNT=2
> > > Opening /dev/ttyUSB0 at 9600 bauds (E, 8, 1)
> > > [39][03][40][00][00][02][D5][73]
> > > Waiting for a confirmation...
> > > <39><03><04><00><00><0D><A4><46><DB>
> > > ADDR=57 REG=16384 DATA=0:3492
> > >
> > >
> > > Für einen Wert der zu groß ist für uint16 musste ich etwas suchen, dann
> > > habe ich die interne Uhr des Zählers gefunden:
> > >
> > > pi at raspberrypi:~ $ mbrtu -D -d/dev/ttyUSB0 -b9600 -pE -O1000 -a57 -f3
> > > -tuint32 -n2 -r0x0400
> > > Timeout set to 1s and 0ms.
> > > ADDR=57 FUNC=3 REG=1024 CNT=2
> > > Opening /dev/ttyUSB0 at 9600 bauds (E, 8, 1)
> > > [39][03][04][00][00][02][C1][83]
> > > Waiting for a confirmation...
> > > <39><03><04><00><16><48><1C><95><FD>
> > > ADDR=57 REG=1024 DATA=22:18460
> > >
> > >
> > > Zum Vergleich die Ausgabe eines Python-Skripts (MinimalModbus):
> > >
> > > pi at raspberrypi:~ $ cat dvh4013.py
> > > #!/usr/bin/env python
> > > import minimalmodbus
> > > minimalmodbus.TIMEOUT = 1
> > > dvh4013 = minimalmodbus.Instrument('/dev/ttyUSB0', 57, mode='rtu')
> > > dvh4013.serial.baudrate = 9600
> > > dvh4013.serial.parity = minimalmodbus.serial.PARITY_EVEN
> > > print dvh4013.read_long(0x0400)
> > >
> > > pi at raspberrypi:~ $ ./dvh4013.py
> > > 1460270
> > >
> > > Die Ausgabe von mbrtu kann man händisch in einen 32-Bit-Int umrechnen:
> > 22 *
> > > 2^16 + 18460 = 1460252
> > > Die kleine Abweichung liegt nur daran, dass ich das Python-Skript ein
> > paar
> > > Sekunden später aufgerufen habe und die Uhr inzwischen weiter gelaufen
> > ist.
> > >
> > > Gruß
> > > Frank
> > >
> > > Am 27. Dezember 2016 um 22:18 schrieb Lars Täuber <lars.taeuber at web.de>:
> > >
> > > > Hallo zusammen,
> > > >
> > > > die Quellen bei github enthalten nun einige Bugfixes und unterstützen
> > auch
> > > > [u]int(32|64) Werte.
> > > > Bitte auch das mal testen.
> > > >
> > > > Wenn ich keine Beschwerden höre, gebe ich dieser Version die Nummer
> > 0.3.3.
> > > >
> > > > Dank und Grüße
> > > > Lars
> > > >
> >
> >
> > --
> > Schöne Grüße
> > Lars Täuber
> >


-- 
Schöne Grüße
Lars Täuber


More information about the volkszaehler-users mailing list