[vz-dev] vzlogger d0-parser
Peter Evertz
leo2 at pec.homeip.net
Wed Oct 16 19:56:10 CEST 2013
Am 16.10.2013 17:41, schrieb Thorben Thuermer:
>> Am 16.10.2013 12:35, schrieb Thorben Thuermer:
>>> Peter Evertz, Tue Oct 15 23:34:41 CEST 2013:
>>>> Ich fliege zwar "blind" mangels zähler, aber ich würde sagen der
>>>> vzlogger code kann nicht funktionieren. Ist also etwas schwieriger als
>>>> "send pullseq2"
>>> ja, der code funktioniert.
>>> (zumindest frueher ohne pullseq mit zaehlern die von sich aus senden)
>>> wie kommst du darauf, das er ganz kaputt sein sollte?
>>>
>>> der parser ist halt nicht toll und sollte mal neu geschrieben werden.
>> danke für die Infos. Ich würde gern den Parser neu schreiben damit er
>> etwas "robuster" ist. Gegen den E350 kann der Code IMHO nicht gehen,
>> daher die Frage ob ihn überhaupt jemand benutzt.
>>
>> Könnt Ihr mir die Zähler nennen die funktionieren, und am besten eine
>> Link zur Doku. Damit ich, wenn ich versuche die anderen Zähler
>> einzubinden, nicht die alten kaputt mache.
>> Sowas wie dieses wäre super:
>> Zusätzlich wäre wichtig zu wissen:
>> - Schickt Ihr ( z.B. per Script) eine Pullsequenz ?
>> - Antwortet der Zähler dann kontinuierlich, oder nur einmal?
> mutig mutig, dass du die aufgabe uebernehmen willst!
>
> ich hatte auch die ueberlegung, erstmal ein test-set von zaehlerausgaben
> zu sammeln, um dann den parser dagegen testen zu koennen.
> (wichtig ist, dass die korrekt geloggt werden, da sie auch nicht-druckbare
> zeichen enthalten koennen!)
> einige sollten sich schon im wiki finden, ansonsten sollte man nochmal
> einen aufruf auf der liste machen.
>
> das wird aber bei den pull-sequenzen wenig helfen,
> weil dort zT. auch das timing kritisch ist, etc.,
> und man das ohne die hardware eh nicht testen kann.
>
> ich denke wichtig ist:
> ein parser, der robust ist, und alles was einigermassen d0 ist verarbeiten kann.
> zB. damit klarkommt, wenn die anforderungssequenz aufgrund von reflektionen
> mit zurueckgelesen wird, vorhandensein von <STX> bytes oder nicht,
> endmarkeriung am ende des telegramms oder nicht, etc...
> vlt. einfach eher per brute-force nach gueltigen zeilen suchen.
Hallo Thorben,
genau an diese "Brutale Gewalt" hatte ich gedacht bei "robust". Jetzt
muss alles genau passen damit es funktioniert.
Ich dachte an folgende Logik:
wenn PULL1 definiert dann schicke PULL1
loop {
lese Zeile ( bis CR/LF)
wenn ( beginnt mit "/" und PULL2 definiert )
schicke PULL2
wenn ( beginnt mit "!" )
verlasse loop
wenn Muster "xxx(yyy*zzz) CR/LF
schaue ob es OBIS ist dann add to ret[]
}
return ret[]
Ich denke das sollte mit den Zählern die ich bis jetzt angeschaut habe
funktionieren.
Das Timing ist glaube ich unkritisch. Es gibt ja immer Frage / Antwort
abwechslung. Die timing Probleme sind IMHO nur bei den Skript lösungen
vorhanden, weil man dort "raten" muss wann der Zähler geantwortet hat.
Es gibt (bei den PULL Zählern) ein Limit wie oft er befragt werden darf,
und das ist es schon mit "interval" steuerbar.
Grüße
Peter
>
> sowie eine engine zum erzeugen von anforderungssequenzen die flexibel genug ist
> um beliebige zaehler bedienen zu koennen.
> man muesste halt zu sendende zeichen konfigurieren koennen,
> pausen, abzuwartende antworten, baudraten-wechsel...
>
> macht halt alles nicht unbedingt spass...
>
>> Grüße
>> Peter
> - Thorben
More information about the volkszaehler-dev
mailing list