[vz-users] vzlogger Fehlermeldung: meter_read_d0:267!
Thorben Thuermer
r00t at constancy.org
Thu Jul 19 23:18:45 CEST 2012
On Thu, 19 Jul 2012 20:59:45 +0200 Joerg Krohn <joerch at f-m.fm> wrote:
> weiß jemand etwas mit der folgenden Fehlermeldung im vzlogger anzufangen?
>
> [Jul 19 20:42:18][mtr1] Something unexpected happened: meter_read_d0:267!
> [Jul 19 20:42:18][mtr0] Something unexpected happened: meter_read_d0:267!
vzlogger/src/protocols/d0.c
137 size_t meter_read_d0(meter_t *mtr, reading_t rds[], size_t max_readings) {
...
178 while (read(handle->fd, &byte, 1)) {
179 if (byte == '/') context = START; /* reset to START if "/" reoccurs */
182 case START: /* strip the initial "/" */
184 context = VENDOR; /* set new context: START -> VENDOR */
187 case VENDOR: /* VENDOR has 3 Bytes */
188 if (!isalpha(byte)) goto error; /* Vendor ID needs to be alpha */
...
278 error:
279 print(log_error, "Something unexpected happened: %s:%i!", mtr, __FUNCTION__, __LINE__);
der d0-parser wartet auf einen '/' und liest dann den herstellernamen,
und wenn er da ein nicht-alphanumerisches zeichen liest,
geht er von einem fehler aus und gibt diese meldung aus.
idr. passiert das, wenn er daten vorgesetzt bekommt,
die keine gueltigen d0-daten sind.
> Eigentlich funktioniert alles, aber die Meldung kommt quasi sekündlich.
deshalb ist es etwas komisch, dass du sagst es funktioniert trotzdem.
ggfs ist auch das format des datenstroms anders als der parser es erwartet.
um das weiter zu debuggen, koenntest du vzlogger mal unter strace laufen
lassen und das log posten (nicht unbedingt an die liste wenn's gross ist),
darin kann man dann nachvollziehen, was genau vzlogger list, und welche
eingabe zu der meldung fuehrt.
> Viele Grüße
> Jörg
- Thorben
More information about the volkszaehler-users
mailing list