docs(sacn): Multicast-Ursache gefunden - nicht geklammertes htonl-Makro
This commit is contained in:
@@ -145,3 +145,45 @@ Lampen tragen noch die alte Firmware und damit nur die Dimmer-Belegung.
|
||||
|
||||
Nicht auf Hardware geprueft: das `rgb`-Layout auf einem Board OHNE Farbkanaele (groesster
|
||||
der drei Werte auf beide Weisskanaele). Abgedeckt durch `test_dmx.c`.
|
||||
|
||||
## Nachtrag 2026-09-21 - Multicast GEFUNDEN und behoben
|
||||
|
||||
Die Ursache lag die ganze Zeit bei uns, nicht im Netz: Die Lampe trat der **falschen Gruppe**
|
||||
bei. Aus Universe 1 wurde `239.255.239.255` statt `239.255.0.1`.
|
||||
|
||||
Schuld ist ein nicht geklammertes Makro im SDK
|
||||
(`sdk/Include/Net/wm_sockets2.0.3.h`):
|
||||
|
||||
```c
|
||||
#define htonl(n) (((n & 0xff) << 24) | ((n & 0xff00) << 8) | ...)
|
||||
```
|
||||
|
||||
Stand die Adressrechnung direkt im Aufruf, traf die Maske nach der Textersetzung nur den
|
||||
letzten Term, weil `&` staerker bindet als `|`. Fuer Universe 1 ergibt das exakt `0xefffefff` -
|
||||
genau der Wert, der am EVK auf der seriellen Konsole stand.
|
||||
|
||||
Damit erklaert sich alles, was vorher widerspruechlich aussah: Der Beitritt gelang (deshalb
|
||||
`multicast: true`), die Lampe meldete ihn auch brav per IGMP - nur eben fuer eine Gruppe, auf
|
||||
die niemand sendete. Unicast war davon nicht betroffen, mDNS auch nicht (das joint das SDK
|
||||
selbst mit einer festen Adresse).
|
||||
|
||||
**Gefunden am EVK ueber die serielle Konsole**, nachdem vier Netz-Konfigurationen und fuenf
|
||||
andere Theorien nichts ergeben hatten. LwIPs `igmp.c` liegt als Quelltext im Baum und laesst
|
||||
sich instrumentieren - das war der Hebel, der zwei Naechte lang fehlte.
|
||||
|
||||
### Abnahme des Fixes
|
||||
|
||||
| Pruefpunkt | Ergebnis |
|
||||
|---|---|
|
||||
| EVK, Gruppe laut Konsole | `join efff0001`, MAC-Filter `01:00:5e:7f:00:01`, Report `type=0x16` |
|
||||
| EVK, Multicast-Uebernahme | bestanden |
|
||||
| EVK, Universe-Wechsel ueber Multicast | bestanden: Sender auf 1 wirkungslos, Sender auf 12 uebernimmt |
|
||||
| E27 RGB (Produktivlampe), Multicast im `rgb`-Layout | bestanden |
|
||||
| Farbzuordnung: `255,0,255` | lila (Sichtpruefung) - R und B an, G aus |
|
||||
| Farbzuordnung: `0,255,0` | gruen (Sichtpruefung) - nur der mittlere Kanal |
|
||||
|
||||
### Fuer die Netzseite
|
||||
|
||||
Die vier UniFi-Umstellungen vom Vortag (Multicast-zu-Unicast, IGMP-Snooping, Querier) waren
|
||||
fuer dieses Problem nicht noetig. Der Querier auf "Primaer/Failover" gehoert trotzdem so -
|
||||
Snooping ohne Querier ist unabhaengig davon eine schlechte Kombination.
|
||||
|
||||
Reference in New Issue
Block a user