Bei mir läuft seit ewig die 12. Die funktioniert einfach...
Ankündigung
Einklappen
Keine Ankündigung bisher.
Schaltverzögerung Weinzierl 730
Einklappen
X
-
Hallo,
Smurf / Matthias:
Das hier diskutierte Problem
Zitat von Theseus Beitrag anzeigen
Good case:
Layer 2 [12:C.pace/B.ipt 30.488] in 2/2 0.030000/0.001000/0.750000: delay more, for 0.046 sec
Bad case:
Layer 2 [12:C.pace/B.ipt 558.147] in 99/4 0.030000/0.001000/0.750000: delay more, for 2.230 sec
Ein Blick in den Code zeigt, dass das Problem die Variable nr_in ist, die durch empfangene Nachrichten (recv_L_Data (LDataPtr l)) immer weiter inkremtiert wird und erst von timer_cb zurückgesetzt wird, nachdem eine Nachricht gesendet wurde (wodurch sich die zweite zu sendende Nachricht um Sekunden verzögern kann).
Gruß,
Hendrik
Kommentar
-
Also. Das "Pace"-Modul macht Folgendes.- wenn ein Paket gesendet wird, dann geht der Status auf BUSY und der Timer startet. Der endet, wenn das Paket (voraussichtlich) auf den Bus gesendet wurde.
- Vor Ablauf des Timers empfangene Pakete werden gezählt.
- wenn der Timer abläuft, und zwischendrin Pakete gekommen sind, wird der Zähler wieder auf Null gesetzt und weiter gewartet.
- Ansonsten (d.h. der Zähler ist immer noch Null) geht der Status auf IDLE und das nächste Paket wird abgerufen (das ist das "Filter::send_Next();" am Ende von "timer_cb").
- Wenn der Timer nicht läuft, dann werden ankommende Pakete auch nicht gezählt und führen folglich auch nicht zu irgendeiner Verzögerung.
- Dass das Problem nur bei einer einzigen Adresse auftritt, ist in dieser Form unmöglich. Wie soll das gehen? der Verzögerungscode greift nicht auf irgendwelche Adressen zu.
Alternativ könnte man zumindest ein Log ins Netz stellen in dem das auftritt, nicht nur die Zeile die das Problem meldet. Insbesondere muss da auch die "out:"-Zeile drin vorkommen, mit der PaceFilter::send_Next() den Timer startet.
NB: Bitte mit der aktuellen Version testen!DistKV, Home Assistant, 1wire, KNX, Python, Asterisk, SMD-Lötkolben
Kommentar
Kommentar