[vz-dev] S0Meter Daten falsch?
Thomas Gentsch
tg at e-tge.de
Sa Apr 25 21:30:12 CEST 2020
Hallo allerseits,
ich hab seit einer Weile den VZ laufen plus einem separaten vzlogger, der im Moment u.a. 2x Gas (per Reed-Kontakte) und 1x H20 (aehnlich dem hier:
https://wiki.volkszaehler.org/hardware/controllers/ferrariszaehler_lesekopf_rpi_gpio
bloss eben auf die kleine Drehscheibe im Wasserzaehler angewendet) misst.
Die Gas-Zaehler sind recht zuverlaessig, aber Wasser stimmt gar nicht. Ich hab eine Weile gebraucht, glaube aber, das Problem verstanden zu haben.
Es zuwenig gezaehlt, was m.A. daher kommt, weil in MeterS0::HWIF_GPIO::waitForImpulse() bereits Werte gelesen werden:
- MeterS0::counter_thread ruft in der Endlosschleife waitForImpulse()
- waitForImpulse() pollt den FD und (im Moment), wenn etwas da, liest von dort + return true
- counter_thread merkt, es gibt was zu lesen u liest in status() selbst nochmal - jetzt ist aber schon nichts mehr da und der Impuls ist verloren
- wenn man noch etwas logging einbaut, sieht das dann so aus:
[Apr 08 11:31:07][S0] MeterS0:HWIF_GPIO:first poll returned 1 for GPIO 18 (FD 6, PRI: 2)
[Apr 08 11:31:07][S0] MeterS0:HWIF_GPIO:wait: read on FD 6 ok: 1
[Apr 08 11:31:07][S0] MeterS0:counter_thread has value (timed out: 0)
[Apr 08 11:31:07][S0] MeterS0:HWIF_GPIO:status: read on FD 6 ok: 0
Bei den Gaszaehlern faellt das nicht auf, weil die Reed-Kontakte bouncen und in MeterS0:HWIF_GPIO:status() kann nochmal erfolgreich gelesen werden.
Ich hab jetzt mal das pread() in MeterS0::HWIF_GPIO::waitForImpulse() ausgebaut, scheint OK.
*** Jetzt die Frage: Warum ist das so? Verstehe ich das nur nicht richtig? Sieht jemand Probleme mit meiner Aenderung?
1000 Dank!!
Thomas
--
........................................................
Thomas Gentsch
e-mail: tg at e-tge.de
........................................................
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : signature.asc
Dateityp : application/pgp-signature
Dateigröße : 819 bytes
Beschreibung: This is a digitally signed message part
URL : <http://demo.volkszaehler.org/pipermail/volkszaehler-dev/attachments/20200425/94b7b4d0/attachment.sig>
More information about the volkszaehler-dev
mailing list