V6CctCommandHandler.cpp 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include <V6CctCommandHandler.h>
  2. bool V6CctCommandHandler::handleCommand(
  3. MiLightClient* client,
  4. uint16_t deviceId,
  5. uint8_t group,
  6. uint32_t command,
  7. uint32_t commandArg)
  8. {
  9. const uint8_t cmd = command & 0xFF;
  10. const uint8_t arg = commandArg >> 24;
  11. client->prepare(MilightCctConfig, deviceId, group);
  12. if (cmd == V2_CCT_COMMAND_PREFIX) {
  13. switch (arg) {
  14. case V2_CCT_ON:
  15. client->updateStatus(ON);
  16. break;
  17. case V2_CCT_OFF:
  18. client->updateStatus(OFF);
  19. break;
  20. case V2_CCT_BRIGHTNESS_DOWN:
  21. client->decreaseBrightness();
  22. break;
  23. case V2_CCT_BRIGHTNESS_UP:
  24. client->increaseBrightness();
  25. break;
  26. case V2_CCT_TEMPERATURE_DOWN:
  27. client->decreaseTemperature();
  28. break;
  29. case V2_CCT_TEMPERATURE_UP:
  30. client->increaseTemperature();
  31. break;
  32. default:
  33. return false;
  34. }
  35. return true;
  36. }
  37. return false;
  38. }