Здравствуйте. Начал интересоваться программированием МК, но в язык еще не могу войти.
Есть библиотека WS2812FX, в которой реализовано получение некоторых текущих данных, в частности получение текущего цвета:
uint32_t WS2812FX::getColor(void) {
return _segments[0].colors[0];
}
И так же установка цвета:
void WS2812FX::setColor(uint32_t c) {
RESET_RUNTIME;
_segments[0].colors[0] = c;
setBrightness(_brightness);
}
В скетче цвет устанавливается так:
uint32_t tmp = (uint32_t) strtol(&server.arg(i)[0], NULL, 16);
if(tmp >= 0x000000 && tmp <= 0xFFFFFF) {
ws2812fx.setColor(tmp);
}
То есть в server.arg(i)[0] приходит HTML цвет в виде FF0000
В чем моя загвоздка:
Получаю текущий цвет ws2812fx.getColor() и отдаю его http, но приходит уже значение совершенно иное: для установленного белого цвета (FFFFFF) приходит число 16777215 - это получается максимальное число unsigned int, а, например, для зеленого (00FF00) - это число 65280
В общем вопрос: Как мне из этого числа получить обрано HTML код цвета?