Neue Version der ARM-Lib mit vielen Verbesserungen verfügbar

Kommunikation über Änderungen an den zentralen Medien, über die Selfbus organisiert wird.
Klärung organisatorischer Fragen.
Antworten
dallmair
Beiträge: 22
Registriert: 14. Jul 2017, 18:41

Neue Version der ARM-Lib mit vielen Verbesserungen verfügbar

Beitrag von dallmair »

Zu Ostern hats nicht ganz geklappt, aber pünktlich zum anstehenden langen Wochenende mit dem Tag der (Open Source) Arbeit haben wir nun eine neue Version 2.01 unserer Library nebst Bootloader veröffentlicht, auf die alle Selfbus-ARM-Geräte aufbauen.

Highlights:
  • Höhere KNX-Spec-Compliance bei Verhalten und Timing. Wo vorher keine Wiederholungen geschickt oder damit zu lange gewartet wurde, wiederholte Telegramme nicht geACKt und fälschlicherweise bis zur App durchgereicht wurden oder sogar Telegramme mit BUSY quittiert wurden, wiederholen wir nun zuverlässig nach exakt der vorgeschriebenen Zeit, senden ACK oder gar nix und filtern wie es sein soll.
  • Kollisionen werden korrekt behandelt. Vorher wurden nur manche Kollisionen überhaupt erkannt und dann zwar das Senden eingestellt aber das empfangene Telegramm verworfen, nun empfangen und verarbeiten wir Telegramme trotz Kollision korrekt. Auf belebtem Bus ohne Einkopplungen haben wir nun 100% Empfangsquote.
  • Einkopplungen (Spikes) werden besser gefiltert und toleranter behandelt. Hier wurden vorher z.T. Telegramme wiederholt ohne das Repeat-Flag zu setzen, was nun u.a. behoben ist.
  • Verbindungslose Punkt-zu-Punkt-Kommunikation implementiert, die gab es vorher gar nicht.
  • Transport Layer State Machine Style 3 statt Style 1 Rationalized sorgt für wesentlich höhere Stabilität der Punkt-zu-Punkt-Verbindungen. Wir haben 100% Spec-Test-Case-Conformance für Style 3.
  • Neuer `--timeout` Switch beim PC Updater Tool ermöglicht erfolgreiche Updates, selbst wenn man in eine (ganz selten auftretende!) Disconnect-/Connect-Loop läuft.
Dies alles bedeutet
  • das manchmal zu beobachtende Fluten des Busses mit Nachrichten ist Geschichte
  • die ETS erkennt nur noch ein Gerät im Programmiermodus wenn da nur eins ist
  • Geschwindigkeit von Flashen mittels Bootloader über knxd nun vergleichbar mit Hardware-IP-Interface
  • insgesamt höhere Geschwindigkeit und Stabilität bei Download von der ETS und beim Flashen mittels Bootloader, insbesondere wenn Spikes auftreten
Auch wenn ich die Ankündigung hier poste, so gebührt ein Großteil des Danks unserem Community-Mitglied Darthyson, der all diese Verbesserungen entwickelt und/oder getestet und mich regelmäßig mit neuen Logs zur Analyse versorgt hat.

Einen kleinen Wermutstropfen gibt's: die Verbesserungen kommen erst so richtig zum Tragen, wenn man alle Selfbus-ARM-Geräte am Bus aktualisiert.

Viele Grüße
Thomas
Tontechniker
Beiträge: 277
Registriert: 25. Mai 2013, 09:49
Wohnort: Melsungen/Hessen

Re: Neue Version der ARM-Lib mit vielen Verbesserungen verfügbar

Beitrag von Tontechniker »

Hallo Thomas,
sehr beeindruckend, was ihr da geschaffen habt!
Vielen Dank für eure Arbeit!
Gruß
Hans
Darthyson
Beiträge: 102
Registriert: 3. Sep 2020, 14:03

Re: Neue Version der ARM-Lib mit vielen Verbesserungen verfügbar

Beitrag von Darthyson »

Hallo zusammen,

Da es im Rocketchat zu etwas Verwirrung kam, will ich es auch hier genauer erklären.
dallmair hat geschrieben: 24. Apr 2023, 22:30
  • die ETS erkennt nur noch ein Gerät im Programmiermodus wenn da nur eins ist
Geräte mit einer Firmware basierend auf dem alten DEV-OPP Branch haben den "mehrere Geräte im Programmiermodus" Bug. Kurzzeitig betroffen (21.02.-24.3.2023) waren auch Geräte basierend auf dem neuen main Branch.
Mit sbLib Version 2.02 wurde u.a. dieser Bug wieder gefixt.
dallmair hat geschrieben: 24. Apr 2023, 22:30 die Verbesserungen kommen erst so richtig zum Tragen, wenn man alle Selfbus-ARM-Geräte am Bus aktualisiert.
Das gilt nach wie vor, da einige der von Thomas erwähnten Highlights nur auf dem neuen main zu finden sind.

Viele Grüße
Denis
5x in16-bim112 ARM | 1x rol-jal-bim112 ARM | 2x MSA | 1x raincenter-bim112 ARM | 8x Kombisensor LPC | 1x out8 LPC | 2x 2in2out LPC
Antworten