Fensterbogenbeleuchtung: Unterschied zwischen den Versionen
Florz (Diskussion | Beiträge) →Protokoll: Beispiel hinzugefüg |
Florz (Diskussion | Beiträge) |
||
Zeile 46: | Zeile 46: | ||
S: "a" + LEN (0x0000) || "e" + LEN + ERROR | S: "a" + LEN (0x0000) || "e" + LEN + ERROR | ||
=== FARBVERLAUF === | |||
C: "n" + LEN (0x0002) + "0x0100" | |||
oder | |||
C: "n" + LEN (0x0002) + "0x01FF" | |||
=== Beispiel === | === Beispiel === |
Version vom 11. Januar 2017, 21:06 Uhr
Die LEDs sind oben auf den Fensterrahmen geklebt. Damit wird der Fensterbogen beleuchtet.
Sourcecode
Funktionsweise
Gesteuert werden die LEDs (WS2812) durch einen Microcontroller (ATMega328P) welcher mittels Netzwerk (ENC28J60) angebunden ist.
Dieser ist im Choasnetz unter der IP 172.23.92.15 erreichbar.
Ansprechbar ist die Belechtung mittels ein Protokoll basierend auf TCP mit den Port 49152.
Protokoll
C ≙ Client
S ≙ Server (Fensterbogenbeleuchtung)
LEN ≙ Länge von nachfolgenden Bytes (2 Bytes)
ERROR ≙ spezifischer Fehler(code)
INFORMATION
C: "i" + 0x00
S: "i" + LEN + JSON-Beschreibung || "e" + LEN + ERROR
JSON-Beschreibung := {
"leds": # leds, "max_protolen": #
}
SET
C: "s" + LEN + [ledid (2 Byte) + GRB (3 Byte)] ...
S: "s" + LEN (0x0000) || "e" + LEN + ERROR
RANGESET
C: "r" + LEN + offset (2 Byte) + GRB (3 Byte) ...
S: "r" + LEN (0x0000) || "e" + LEN + ERROR
ALLSET
C: "a" + LEN + GRB (3 Bytes)
S: "a" + LEN (0x0000) || "e" + LEN + ERROR
FARBVERLAUF
C: "n" + LEN (0x0002) + "0x0100"
oder
C: "n" + LEN (0x0002) + "0x01FF"
Beispiel
alles an: echo -en "a\x00\x03\xff\xff\xff" | nc 172.23.92.15 49152