36 std::array<uint8_t, 5> data;
51 if (msg[0] != 0x7E || msg[8] != 0xEF)
62 package.data[0] = msg[3];
72 package.data[0] = msg[3];
81 const uint8_t patternId = (msg[3] >= 128) ? (msg[3] - 128) : msg[3];
86 package.data[0] = patternId;
91 else if (msg[4] == 0x04)
93 const uint8_t micMode = (msg[3] >= 128) ? (msg[3] - 128) : msg[3];
98 package.data[0] = micMode;
110 package.data[0] = msg[3];
111 package.dataSize = 1;
119 package.data[0] = msg[4];
120 package.data[1] = msg[5];
121 package.data[2] = msg[6];
122 package.dataSize = 3;
133 package.data[0] = msg[3];
134 package.dataSize = 1;
143 package.data[0] = msg[3];
144 package.dataSize = 1;
150 if (msg[3] <= 0 or msg[3] > 3)
152 if (msg[4] <= 0 or msg[4] > 3)
154 if (msg[5] <= 0 or msg[5] > 3)
157 if (msg[3] + msg[4] + msg[5] != 1 + 2 + 3)
162 package.data[0] = msg[3];
163 package.data[1] = msg[4];
164 package.data[2] = msg[5];
165 package.dataSize = 3;
171 package.data[0] = msg[3];
172 package.data[1] = msg[4];
173 package.data[2] = msg[5];
174 package.data[3] = msg[6];
175 package.data[4] = msg[7];
176 package.dataSize = 5;
182 package.data[0] = msg[3];
183 package.data[1] = msg[4];
184 package.data[2] = msg[5];
185 package.data[3] = msg[6];
186 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:42
Type
Definition: elk_decoder.h:16
@ 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:32