Hi Leute
also erst mal hab ich das Protokoll jetzt kapiert :o)
Befehl 0x01: Reset, keine Daten 0x02: Set Color, 3 Byte Daten: je kanal 1 Byte 0x03: Fade to color: 5 Byte Daten: 2Byte für den 16-bit Zeitwert (größer = schneller) 1. Byte HByte 2. Byte. LByte des 16 bit Wertes, dann je Kanal 1 Byte
Leider habe ich keine Zeitinfo gefunden, also welcher Zeitwert welche Geschwindikgeit bedeutet, laut Messung habe ich bei Helligkeitswechels 200-->0 mit Zeitwert hbyte 0 lbyte 100: 4 Sekunden.
Ein Problem: Dann noch ein kleines Aufpassen aufgrund der RS485 Adressabfrage, das mir gestern aufgefallen ist, als ich schon mal 2 Lichter an den Bus gehängt habe und nicht im Broadcast gearbeitet habe:
Erst mal der relevante Programmabschnitt (fnordlicht.c) ---snip--- if (UCSR0A & _BV(MPCM0) || address) { /* if MPCM mode is still active, or ninth bit set, this is an address packet */
/* check if we are ment */ if (data == 0 || data == RS485_ADDRESS) {
/* remove MPCM flag and reset buffer fill counter */ UCSR0A &= ~_BV(MPCM0); fill = 0;
continue;
} else {/* turn on MPCM */
UCSR0A |= _BV(MPCM0); continue;
} } ---snap---
Also MCPM aktiv oder 9tes bit gesetzt * Ja: Überprüfen, ob ich gemeint bin. ** Ja: MCPM aus und weiter --> Alles in ordnung, Befehlsausführung ** Nein MCP an und weiter --> hier hakt es, wenn das nächste Paket kommt, dass die Daten ja für eine andere Adresse enthält
Die Schleife von neuem (war ja vorhin nicht meine Adresse)
MCPM aktiv oder 9tes bit: 9tes Bit nein, aber MCPM aktiv: also Adresse prüfen: haben die Daten meine Adresse, geh ich in die Befehlsausführung rein, obwohl das Daten-Paket nicht für mich gedacht ist. (das vorherige Adress-Paket war ja nicht für mich), naja interessante Lichteffekte.
*Grumel* mal was überlegen... Muss man eigentlich auf MCPM-Mode _prüfen_, denn Adressen sind ja gerade über das 9te bit definiert...?
Eine dirty Lösung wäre dafür zu sorgen, dass keine Adresse in einem Datenpaket vorkommt. Also Adresse != 0x01 0x02 0x03 (Das sind ja die Befehle) und entsprechend Datenwerte != der gewählten Adressen. Naja *Würg* :o(
Viele Grüße,
Chris