mirror of
https://github.com/HASwitchPlate/openHASP.git
synced 2025-07-27 13:16:45 +00:00
Add RGB565 color scheme
This commit is contained in:
parent
41b508bd75
commit
946c372ce9
@ -33,23 +33,23 @@ lv_color_t haspPayloadToColor(const char * payload)
|
|||||||
if(!strcmp_P(payload, PSTR("blue"))) return haspLogColor(LV_COLOR_BLUE);
|
if(!strcmp_P(payload, PSTR("blue"))) return haspLogColor(LV_COLOR_BLUE);
|
||||||
if(!strcmp_P(payload, PSTR("cyan"))) return haspLogColor(LV_COLOR_CYAN);
|
if(!strcmp_P(payload, PSTR("cyan"))) return haspLogColor(LV_COLOR_CYAN);
|
||||||
if(!strcmp_P(payload, PSTR("gray"))) return haspLogColor(LV_COLOR_GRAY);
|
if(!strcmp_P(payload, PSTR("gray"))) return haspLogColor(LV_COLOR_GRAY);
|
||||||
if(!strcmp_P(payload, PSTR("aqua"))) return haspLogColor(LV_COLOR_AQUA);
|
/* if(!strcmp_P(payload, PSTR("aqua"))) return haspLogColor(LV_COLOR_AQUA);
|
||||||
if(!strcmp_P(payload, PSTR("lime"))) return haspLogColor(LV_COLOR_LIME);
|
if(!strcmp_P(payload, PSTR("lime"))) return haspLogColor(LV_COLOR_LIME);
|
||||||
if(!strcmp_P(payload, PSTR("teal"))) return haspLogColor(LV_COLOR_TEAL);
|
if(!strcmp_P(payload, PSTR("teal"))) return haspLogColor(LV_COLOR_TEAL);
|
||||||
if(!strcmp_P(payload, PSTR("navy"))) return haspLogColor(LV_COLOR_NAVY);
|
if(!strcmp_P(payload, PSTR("navy"))) return haspLogColor(LV_COLOR_NAVY);*/
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
if(!strcmp_P(payload, PSTR("green"))) return haspLogColor(LV_COLOR_GREEN);
|
if(!strcmp_P(payload, PSTR("green"))) return haspLogColor(LV_COLOR_GREEN);
|
||||||
if(!strcmp_P(payload, PSTR("white"))) return haspLogColor(LV_COLOR_WHITE);
|
if(!strcmp_P(payload, PSTR("white"))) return haspLogColor(LV_COLOR_WHITE);
|
||||||
if(!strcmp_P(payload, PSTR("black"))) return haspLogColor(LV_COLOR_BLACK);
|
if(!strcmp_P(payload, PSTR("black"))) return haspLogColor(LV_COLOR_BLACK);
|
||||||
if(!strcmp_P(payload, PSTR("olive"))) return haspLogColor(LV_COLOR_OLIVE);
|
// if(!strcmp_P(payload, PSTR("olive"))) return haspLogColor(LV_COLOR_OLIVE);
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
if(!strcmp_P(payload, PSTR("yellow"))) return haspLogColor(LV_COLOR_YELLOW);
|
if(!strcmp_P(payload, PSTR("yellow"))) return haspLogColor(LV_COLOR_YELLOW);
|
||||||
if(!strcmp_P(payload, PSTR("orange"))) return haspLogColor(LV_COLOR_ORANGE);
|
if(!strcmp_P(payload, PSTR("orange"))) return haspLogColor(LV_COLOR_ORANGE);
|
||||||
if(!strcmp_P(payload, PSTR("purple"))) return haspLogColor(LV_COLOR_PURPLE);
|
if(!strcmp_P(payload, PSTR("purple"))) return haspLogColor(LV_COLOR_PURPLE);
|
||||||
if(!strcmp_P(payload, PSTR("silver"))) return haspLogColor(LV_COLOR_SILVER);
|
if(!strcmp_P(payload, PSTR("silver"))) return haspLogColor(LV_COLOR_SILVER);
|
||||||
if(!strcmp_P(payload, PSTR("maroon"))) return haspLogColor(LV_COLOR_MAROON);
|
// if(!strcmp_P(payload, PSTR("maroon"))) return haspLogColor(LV_COLOR_MAROON);
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
if(!strcmp_P(payload, PSTR("magenta"))) return haspLogColor(LV_COLOR_MAGENTA);
|
if(!strcmp_P(payload, PSTR("magenta"))) return haspLogColor(LV_COLOR_MAGENTA);
|
||||||
@ -61,11 +61,30 @@ lv_color_t haspPayloadToColor(const char * payload)
|
|||||||
return haspLogColor(LV_COLOR_MAKE(r, g, b));
|
return haspLogColor(LV_COLOR_MAKE(r, g, b));
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
if(!strcmp_P(payload, PSTR("darkblue"))) return haspLogColor(LV_COLOR_MAKE(0, 51, 102));
|
// if(!strcmp_P(payload, PSTR("darkblue"))) return haspLogColor(LV_COLOR_MAKE(0, 51, 102));
|
||||||
if(!strcmp_P(payload, PSTR("lightblue"))) return haspLogColor(LV_COLOR_MAKE(46, 203, 203));
|
// if(!strcmp_P(payload, PSTR("lightblue"))) return haspLogColor(LV_COLOR_MAKE(46, 203, 203));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 16-bit RGB565 Color Scheme*/
|
||||||
|
uint8_t digits = 0;
|
||||||
|
while((payload + digits) != '\0' && isdigit(*(payload + digits))) {
|
||||||
|
digits++;
|
||||||
|
}
|
||||||
|
if(strlen(payload) == digits) {
|
||||||
|
uint16_t c = atoi(payload);
|
||||||
|
/* Initial colors */
|
||||||
|
uint8_t R5 = ((c >> 11) & 0b11111);
|
||||||
|
uint8_t G6 = ((c >> 5) & 0b111111);
|
||||||
|
uint8_t B5 = (c & 0b11111);
|
||||||
|
/* Remapped colors */
|
||||||
|
uint8_t R8 = (R5 * 527 + 23) >> 6;
|
||||||
|
uint8_t G8 = (G6 * 259 + 33) >> 6;
|
||||||
|
uint8_t B8 = (B5 * 527 + 23) >> 6;
|
||||||
|
return lv_color_make(R8, G8, B8);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Unknown format */
|
||||||
Log.warning(F("Invalid color %s"), payload);
|
Log.warning(F("Invalid color %s"), payload);
|
||||||
return LV_COLOR_BLACK;
|
return LV_COLOR_BLACK;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user