Größere Änderungen:
Struktur und Inhalt der Konfigdatei ist in "doc/inifile.rst" beschrieben.
Als nächstes werde ich – abgesehen von den üblichen und wohl unvermeidbaren Bugs – ein paar Filter schreiben, die tatsächlich filtern. Dann kann man Nachrichten, die das Licht im Keller ausschalten, endlich vom Bus im Dachgeschoss fernhalten.
Außerdem mag ich darauf hinweisen, dass ich die Arbeit zwar gratis, aber nicht umsonst mache, und mich über finanzielle Anerkennung derselben grundsätzlich freue …das Geld fließt eh in neue Test-Hardware …
- Es gibt jetzt eine Konfigurationsdatei. Wenn man statt "knxd" das Programm "knxd_args" aufruft, werden die alten Optionen als INI-Datei ausgegeben. Den knxd kann man dann mit der so produzierten Datei (als einziges Argument) aufrufen.
Mit den bisherigen Optionen kann man den knxd weiterhin aufrufen. - Das Mitloggen von KNX-Paketen (üblicherweise mit -t 4 [Bit 2] aktiviert) habe ich aus den einzelnen Treibern entfernt. Stattdessen gibt es jetzt einen "log"-Filter. Der wird nicht automatisch eingefügt, wenn man -t 4 oder -t 1020 oder … verwendet.
- Man kann jetzt globale Paketfilter verwenden (insbesondere den "log"-Filter), indem man "-B log" (oder sonst einen Filter) vor dem -e angibt.
- Der USB/[c]EMI[12]/FT12-Code wurde umstrukturiert. Jetzt kann man sogar verstehen, wie das Ganze funktioniert … und es ist leichter, Unterstützung für "spezielle" Geräte einzubauen.
- Beim Start werden erst dann Pakete geroutet / dem systemd Bereitschaft signalisiert, wenn alle Schnittstellen aktiv sind. Das vermeidet Datenverlust beim Start, insbesondere via systemd-Socketaktivierung.
- Wenn eine Schnittstelle nicht startet, kann knxd ihre Aktivierung wiederholen.
- knxd meckert jetzt aktiv(er), wenn die -E-Option fehlt.
- Die Sende-Warteschlangen wurden aus den einzelnen Treibern entfernt. Stattdessen taktet sich das Senden nach der langsamsten Schnittstelle, so dass alles überall gleichzeitig passiert (wenn auch möglicherweise verzögert). Wer das nicht will: es gibt einen "queue"-Filter.
- Für Schnittstellen, die sich trotz Taktung überrannt fühlen, gibt es einen "pace"-Filter. Der ist insbesondere vor der Multicast-Schnittstelle empfehlenswert, wenn das eigentliche Bus-Interface ein KNX-Router mit wenig Speicherkapazität ist, weil die per Definition keine Empfangsbestätigung kennt.
Der Code zur Verzögerung in diversen Schnittstellen wurden entfernt, aber die Optionen in der Befehlszeile funktionieren weiterhin.
Struktur und Inhalt der Konfigdatei ist in "doc/inifile.rst" beschrieben.
Als nächstes werde ich – abgesehen von den üblichen und wohl unvermeidbaren Bugs – ein paar Filter schreiben, die tatsächlich filtern. Dann kann man Nachrichten, die das Licht im Keller ausschalten, endlich vom Bus im Dachgeschoss fernhalten.
Außerdem mag ich darauf hinweisen, dass ich die Arbeit zwar gratis, aber nicht umsonst mache, und mich über finanzielle Anerkennung derselben grundsätzlich freue …das Geld fließt eh in neue Test-Hardware …
Kommentar