From 9b80ab0e0d0d924681a8619463a010f446dfe4a9 Mon Sep 17 00:00:00 2001 From: Michael Sauer Date: Sun, 20 Sep 2026 01:16:42 +0200 Subject: [PATCH] docs(light,e131): zwei Stellen benennen, die sonst wie Versehen aussehen nl_engine_override_active() hat keinen Aufrufer im src/-Baum - die Firmware fragt nl_dmx_active(). Die Funktion bleibt, weil die Engine-Tests sonst keinen Blick auf den Override-Zustand haben; der Header sagt das jetzt, damit niemand nach dem Aufrufer sucht. Der E1.31-Parser ueberliest Synchronisationsadresse und das Bit "force synchronization". Fuer eine einzelne Lampe ist sofortige Ausgabe richtig - auf ein Sync-Paket zu warten hiesse, bei einem Sender mit gesetzter Adresse dunkel zu bleiben. Der Kommentar nennt es als bewusste Abweichung von E1.31-2018 Abschnitt 6.2.4.1. --- src/light/nl_engine.h | 3 +++ src/net/nl_e131.c | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/src/light/nl_engine.h b/src/light/nl_engine.h index 331acf4..3ee8079 100644 --- a/src/light/nl_engine.h +++ b/src/light/nl_engine.h @@ -36,6 +36,9 @@ void nl_engine_override(const uint8_t ch[NL_CH_COUNT]); /* Beendet den Override. fade_ms > 0 blendet im Kanalraum auf das zurueck, was die * Fade-Engine gerade ausgeben wuerde; 0 schaltet sofort um. */ void nl_engine_override_clear(uint32_t fade_ms); +/* Nur fuer die Tests: sie haben sonst keinen Blick auf den Override-Zustand der Engine. + * Die Firmware fragt stattdessen nl_dmx_active() - wer hier nach einem Aufrufer im + * src/-Baum sucht, findet zu Recht keinen. */ bool nl_engine_override_active(void); #endif diff --git a/src/net/nl_e131.c b/src/net/nl_e131.c index 46b0183..bae8ed9 100644 --- a/src/net/nl_e131.c +++ b/src/net/nl_e131.c @@ -20,6 +20,12 @@ static bool pdu_len_ok(const uint8_t *p, size_t len, size_t from) return (size_t)(fl & 0x0fffu) == len - from; } +/* Bewusste Abweichung von E1.31-2018 Abschnitt 6.2.4.1: die Synchronisationsadresse + * (Offset 109-110) und das Options-Bit "force synchronization" werden ueberlesen, das Paket + * wird sofort ausgegeben. Eine einzelne Lampe hat nichts zu synchronisieren, und auf ein + * Sync-Paket zu warten hiesse, bei einem Sender mit gesetzter Adresse dunkel zu bleiben. + * Das ist kein Versehen - fuer mehrere gemeinsam getaktete Empfaenger muesste es nachgeruestet + * werden. */ bool nl_e131_parse(const uint8_t *buf, size_t len, nl_e131_packet_t *out) { static const uint8_t acn_pid[12] = { 'A', 'S', 'C', '-', 'E', '1', '.', '1', '7', 0, 0, 0 };