5#ifndef UTILS_ELK_DECODER
6#define UTILS_ELK_DECODER
37 std::array<uint8_t, 5> data;
52 if (msg[0] != 0x7E || msg[8] != 0xEF)
63 package.data[0] = msg[3];
73 package.data[0] = msg[3];
82 const uint8_t patternId = (msg[3] >= 128) ? (msg[3] - 128) : msg[3];
87 package.data[0] = patternId;
92 else if (msg[4] == 0x04)
94 const uint8_t micMode = (msg[3] >= 128) ? (msg[3] - 128) : msg[3];
99 package.data[0] = micMode;
100 package.dataSize = 1;
111 package.data[0] = msg[3];
112 package.dataSize = 1;
120 package.data[0] = msg[4];
121 package.data[1] = msg[5];
122 package.data[2] = msg[6];
123 package.dataSize = 3;
134 package.data[0] = msg[3];
135 package.dataSize = 1;
144 package.data[0] = msg[3];
145 package.dataSize = 1;
151 if (msg[3] <= 0 or msg[3] > 3)
153 if (msg[4] <= 0 or msg[4] > 3)
155 if (msg[5] <= 0 or msg[5] > 3)
158 if (msg[3] + msg[4] + msg[5] != 1 + 2 + 3)
163 package.data[0] = msg[3];
164 package.data[1] = msg[4];
165 package.data[2] = msg[5];
166 package.dataSize = 3;
172 package.data[0] = msg[3];
173 package.data[1] = msg[4];
174 package.data[2] = msg[5];
175 package.data[3] = msg[6];
176 package.data[4] = msg[7];
177 package.dataSize = 5;
183 package.data[0] = msg[3];
184 package.data[1] = msg[4];
185 package.data[2] = msg[5];
186 package.data[3] = msg[6];
187 package.dataSize = 4;
bool decode_ELK_message(const uint8_t *msg, uint16_t len, Package &package)
Decode a given message, assuming it it a ELK control message.
Definition: elk_decoder.h:43
Type
Definition: elk_decoder.h:17
@ PATTERN_SPEED
set the current pattern speed
@ PATTERN_SELECT
select a display pattern in a list
@ BRIGHTNESS
set a brightness
@ COLOR_SELECT
set output as a target color
@ ONOFF
turn output onand off
@ MIC_SENSITIVITY
set microphone sensitivity
@ LED_ORDER
set the new RGB led ordering
@ SET_TIME
set the system time to a set time
@ MIC_ONOFF
turn on/off the microphone
@ TIMING
set a desired on/off time
@ MIC_MODE
set the pattern changes type with the microphone
Program scope.
Definition: control_fixed_modes.hpp:12
Definition: elk_decoder.h:33