[vz-dev] vzlogger - Segmentation fault

Hartmut Hoffmann hartmut.hoffmann at teleware.de
Sun Nov 11 23:46:15 CET 2012


Hallo Gemeinde,
ich hatte vor kurzem auch mal gepostet, das ich die gleichen Abbrüche bekommen...

Segmentation Fault

Ich habe mir dann erfolgreich ca. 10 kleine sml-telegramme via curl abgeholt und in hex angesehen.
Sahen gut aus, jedoch scheint mein ed300l die Summenleistung von aktuell ca 4 KWh (Teststellungsgerät)
als 41234.56 Watt auszugeben ???

In der Mysql-Tabelle sind anschl. gigantische Werte von Mega und Gigawatt drin (Wauh)
Ich gehe davon aus, das es hier ggf. abweichende Telegramme gibt und diese Daten falsch interpretiert werden.

Wenn einer der Entwickler mal ne Handvoll Files braucht, bitte Ping an mich, kann ich sofort versenden.

Auch wartend auf einen nicht abstürzenden vzlogger

Beste Grüße
Hardy


-----Ursprüngliche Nachricht-----
Von: volkszaehler-dev-bounces at lists.volkszaehler.org [mailto:volkszaehler-dev-bounces at lists.volkszaehler.org] Im Auftrag von Thorben Thuermer
Gesendet: Sonntag, 11. November 2012 00:24
An: volkszaehler.org
Betreff: Re: [vz-dev] vzlogger - Segmentation fault


doppelte arbeit...
hatte das vor ein paar wochen schon analysiert:
http://www.mail-archive.com/volkszaehler-dev@lists.volkszaehler.org/msg00928.html

ich wuerde aber erstmal bei meiner theorie bleiben, dass das problem durch serielle uebertragungsfehler verursacht wird, und der sml-parser nur bei _ungueltigen_ daten abstuerzt.
man muesste sich die empfangenen bytes im detail anhand der spezifikation anschauen...

- Thorben

On Sat, 10 Nov 2012 23:09:05 +0100 xdiwi <xdiwi at gmx.net> wrote:
> Hallo,
> 
> ich bin derzeit dabei den vzlogger auf meinem System zum Laufen zu 
> bringen. Prinzipiell funktioniert dieser auch schon und liefert 
> sinnvolle Werte, läuft aber leider nach einigen Minuten auf einen 
> Segmentation Fault!
> 
> vzlogger von https://github.com/stv0g/vzlogger.git
> 
> Zur Fehlersuche habe ich vzlogger mit  --enable-debug compiliert und 
> unter dbg laufen lassen. Ich habe die problematische Stelle zwar auch 
> finden können, aber für eine vernünftige/sinnvolle Änderung des 
> Source-Codes fehlt mir der Überblick über die Programmstruktur. Ich 
> hoffe einer der Spezialisten kann hier mal helfen und den Source-Code 
> sinnvoll korrigieren!
> 
> 
> Hier die Details:
> 
> In der Funktion *meter_read_sml()* (Datei
> ./vzlogger/src/protocols/sml.c) wird die Funktion 
> *sml_transport_read()* aus ./libsml/sml/src/sml_transport.c 
> aufgerufen. Diese liefert im Fehlerfall als Return-Wert eine *0*!! Da 
> dies nicht abgefangen wird, wird anschließend die Funktion 
> *sml_file_parse(**)* mit ungültigen Parametern (bytes -16 = -16) 
> aufgerufen und läuft dann auf einen Segmentation Fault!
> 
> 
> Zeile 159:
> ...
>      /* wait until a we receive a new datagram from the meter 
> (blocking
> read) */
>      bytes = *sml_transport_read*(handle->fd, buffer, SML_BUFFER_LEN);
> 
> 
>      /* parse SML file & stripping escape sequences */
>      file = *sml_file_parse*(buffer + 8, *bytes - 16*);
> 
> ...
> 
> 
> 
> Grüße
> 
>      Dieter
> 
> 
> 


More information about the volkszaehler-dev mailing list