123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- //#include "storage.h"
- //#define FLAG_SEND_GESTURE 1
- //#define FLAG_SEND_AMBIENT_LIGHT 1<<1
- //#define FLAG_SEND_BATTERY_LEVEL 1<<2
- //#define FLAG_SEND_TOUCH 1<<3
- //
- //#define FLAG_SET_TIME 1
- //#define FLAG_SET_LIGHT_BAR 1<<1
- //#define FLAG_SET_DISPLAY_BRIGHTNESS 1<<2
- //#define FLAG_SET_HOUR_MODE 1<<3
- //#define FLAG_SET_DAY_NIGHT_LED 1<<4
- //#define FLAG_SET_INIT 1<<5
- #define CMD_SET_TIME 'T'
- #define CMD_SET_HOUR_MODE 'H'
- #define CMD_SET_LIGHT_BAR 'L'
- #define CMD_SET_BUTTON 'b'
- #define CMD_SET_ALL_BUTTONS 'l'
- #define CMD_SET_DISPLAY_BRIGHTNESS 'B'
- #define CMD_SET_DAY_NIGHT_LED 'D'
- #define CMD_SET_INIT 'I'
- #define CMD_SEND_GESTURE 'G'
- #define CMD_SEND_TOUCH 't'
- #define CMD_SEND_BATTERY 'V'
- #define CMD_SEND_AMBIENT_LIGHT 'A'
- #define CMD_SEND_INIT 'i'
- //int setFlag = 0;
- //int sendFlag = 0;
- void sendCommand (char cmd, String payload){
- Serial.print('~');
- Serial.print(cmd);
- Serial.print(payload);
- Serial.println(';');
- }
- bool parseInput (char* rxData) {
- char cmd = rxData[0];
- String payload = String(++rxData);
- long timeStamp = 0;
- int payloadInt = 255;
- char buf[64];
- uint32_t payloadArr[LIGHTBAR_NUM_LEDS];
- switch (cmd) {
- case CMD_SET_TIME:
- timeStamp = payload.toInt();
- // set RTC to received time
- setRtcTime(timeStamp);
- Serial.print("Setting RTC to: ");
- Serial.println(timeStamp);
- break;
- case CMD_SET_HOUR_MODE:
- if (payload == "12") {
- mcuConfig.twelveHMode = true;
- Serial.println("12h Mode");
- }else if (payload == "24") {
- mcuConfig.twelveHMode = false;
- Serial.println("24h Mode");
- }
- saveConfig();
- break;
- case CMD_SET_DISPLAY_BRIGHTNESS:
- payloadInt = payload.toInt();
- setDisplayBrightness(payloadInt);
- break;
- #if defined LIGHTBAR_ENABLED && LIGHTBAR_ENABLED == 1
- case CMD_SET_LIGHT_BAR:
- // Serial.print("Setting lightbar to 0x");
- // Serial.println((uint32_t)payload.toFloat(), HEX);
- lightBarSetColor((uint32_t)payload.toFloat());
- break;
- case CMD_SET_BUTTON:
- // payload = [buttonIndex (1 char)][buttonColor (1-many chars)]
- payloadInt = (int)rxData[0] - '0';
- payload = String(++rxData);
- // Serial.print("Setting button ");
- // Serial.print(payloadInt);
- // Serial.print(" to 0x");
- // Serial.println((uint32_t)payload.toFloat(), HEX);
- lightBarSetButton(payloadInt, (uint32_t)payload.toFloat() );
- break;
- case CMD_SET_ALL_BUTTONS:
- // payload = [button0 Color]:[button1 Color]:[button2 Color]:[button3 Color]
- sscanf(payload.c_str(), "%lu:%lu:%lu:%lu",
- &payloadArr[0],
- &payloadArr[1],
- &payloadArr[2],
- &payloadArr[3]
- );
- // Serial.print("Setting buttons to ");
- // Serial.print((uint32_t)payloadArr[0], HEX);
- // Serial.print((uint32_t)payloadArr[1], HEX);
- // Serial.print((uint32_t)payloadArr[2], HEX);
- // Serial.print((uint32_t)payloadArr[3], HEX);
- lightBarSetButton(0, payloadArr[0] );
- lightBarSetButton(1, payloadArr[1] );
- lightBarSetButton(2, payloadArr[2] );
- lightBarSetButton(3, payloadArr[3] );
- break;
- #endif // LIGHTBAR_ENABLED
- case CMD_SET_DAY_NIGHT_LED:
- if (payload == "1") {
- mcuConfig.dayNightIndicator = true;
- }else if (payload == "0") {
- mcuConfig.dayNightIndicator = false;
- }
- saveConfig();
- break;
- case CMD_SET_INIT:
- sprintf(buf, "%lu", getEpoch());
- sendCommand(CMD_SEND_INIT, buf);
- break;
- // TODO: add case to set max ambient light delta
- // TODO: add case to set number of transition steps for lightbar (lower priority)
- }
- return true;
- }
|