[vz-dev] Zeitstampfer - was: Re: Fwd: watchcat.c und Hardwareansteuerung

Justin Otherguy justin at justinotherguy.org
Wed May 5 07:46:59 CEST 2010


Moin Jens,

Am 02.05.2010 um 02:40 schrieb Jens Wilmer:

> Hallo zusammen,
> 
> Am 01.05.2010 21:14, schrieb Justin Otherguy:
>> Lasst uns das doch mal wie folgt ausprobieren:
>> - der Controller sammelt die eingehenden Impulse für ein konfiguriertes Intervall, z.B. 1s, 1 min, 15 min, 1 Tag...
>> 
> So etwas ähnliches sollte ja die "HighVolume" Version des "Watchasync", 
> allerdings ist dies erst einmal nur mir 2^n Sekunden Intervallen möglich.
als Zwischenschritt würde das sicher mal ausreichen.

> Bei mir würde sich allerdings das format der Anfragen ändern, da alle 
> Impulse eines Intervalles von allen Eingängen gesendet würden. Es sollte 
> aber kein Problem sein, dies auf dem Server zu sortieren.
stimmt, wir hätten dann ja pro Request mehrere Kanäle.

Ich hab gerade ne Mail an nen befreundeten PHP-Guru geschrieben - ich halte das aber auch für lösbar.

>> - bei der Auswertung können gibt es ja derzeit bereits 2 Modi:
>>  - den "Direktmodus":
>>    hier wird aus allen Zeitstempeln Zeitstempel-/Leistungs-Tupel berechnet und an den Browser übermittelt
>>    Das ist wunderbar für eine Darstellung, bei der die Anzahl Impulse/Pixel in der Darstellung sehr gering würde (derzeit ist dieser Schwellwert (Variable "$schwelle") auf 10 eingestellt: weniger als $schwelle Impulse im Intervall ->  "Direktmodus"; sonst: "Zählmodus"
>> 
> Da dieser Modus nur leider immer falsche Werte Anzeigt, außer bei 
> konstantem Verbrauch ab dem zweiten Intervall, würde ich ja gern bei der 
> Darstellung schon auf diesen Modus verzichten.
:-)
Vorschlag: lassen wir die Diskussion, ob die Werte richtig oder falsch sind mal aussen vor - wenn wir uns einig sind, dass dieser Modus verschwinden soll ist es für mich ok, wenn wir dafür unterschiedliche Gründe haben, einverstanden?

>>  - den "Zählmodus":
>>    hier werden bereits nicht mehr alle einzelnen Impuls-Intervalle ausgewertet und übermittelt, sondern hier wird pro Intervall nur noch die Anzahl Impulse bestimmt; daraus wird dann die Leistung berechnet (Impulse/Zeit)
>> ->  der Direktmodus würde nun also entfallen; das bedeutet:
>> - wir müssen uns mal anschauen, wie sich das auf Darstellungen mit "hohem Zoom" auswirkt (also: wenig Impulse für das darzustellende Zeitfenster)
>> 
> Die Darstellung wird dann auch in diesem Bereich richtig. Ob "richtig" 
> jetzt auch "schön" ist, darüber ließe sich noch streiten. Ich würde es 
> bekanntlich sehr willkommen heißen.
schön - dann los :-)

>> Das wär's schon ;-)
>> 
>> Das bedeutet, dass man mit der Wahl des Intervalls eben die Auflösung festlegt. Eine "bulk"-Übertragung ("1 impuls kam zu $zeitpunkt1; 1 impuls kam zu $zeitpunkt2; ...) halte ich für zu aufwändig. Wer eine höhere Auflösung haben möchte, sollte das Intervall entsprechend wählen.
>> 
> Genau meine Meinung, Du scheinst in unserer Diskussion die Seiten 
> gewechselt zu haben.
ja :-)
Ich kann ja auch noch dazu lernen...

>> Ich finde es sehr schick, eine möglichst fein aufgelöste Darstellung zu haben - vielleicht sollte man das aber auch nicht überbewerten. Im Anhang zu Folien zum DFN-Workshop sind Graphen mit unterschiedlicher zeitlicher Auflösung zum Vergleich abgebildet. Wenn man sich das anschaut wird klar, dass 15 Minuten fast schon ausreichen; die reale Aussagekraft steigt m.E. damit nicht mehr besonders durch eine höhere Auflösung. Wenn man also 1 oder 5 Minuten wählt, sollte das wunderbar sein.
>> 
> Für nicht Zweierpotenz Sekunden Intervalle würden auch im Interrupt Code 
> einige extrem schnell ausgeführte binäre Verundungen durch sehr langsame 
> Divisionen ersetzt.
können wir hier nicht einen Timer laufen lassen und dann jeweils die Zählerstände auslesen?

> Ein Nachteil ist der höhere Speicherverbrauch. Bei der 
> Einzelimpulsvariante kann sich ein 644 64 Pufferspeicherplätze leisten. 
damit wir vom gleichen reden:
wie groß würdest Du den Puffer machen?

Kann es sein, dass wir nicht vom gleichen sprechen?

Meine Vorstellung ist die, dass wir für das gewählte Intervall die _Anzahl_ der Impulse _zählen_
Die Details (zu welchem Zeitpunkt kamen die einzelnen Impulse) würde ich dabei runter fallen lassen - diese halte ich auch für verzichtbar.

Lass uns zuerst mal klären, ob wir hier vom Gleichen reden.

Ich verstehe Dich so, dass Du pro Impuls auch den Zeitpunkt speichern würdest, zu dem er eingetroffen ist.

>> Hat jemand Lust, das im Controllercode zu implementieren?
>> 
> Für Watchasync ist es fast schon fertig...
super :-)


Gruss, J.



More information about the volkszaehler-dev mailing list