CctPacketFormatter.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include <CctPacketFormatter.h>
  2. #include <MiLightButtons.h>
  3. void CctPacketFormatter::reset() {
  4. size_t packetPtr = 0;
  5. packet[packetPtr++] = CCT;
  6. packet[packetPtr++] = deviceId >> 8;
  7. packet[packetPtr++] = deviceId & 0xFF;
  8. packet[packetPtr++] = groupId;
  9. packet[packetPtr++] = 0;
  10. packet[packetPtr++] = sequenceNum;
  11. packet[packetPtr++] = sequenceNum++;
  12. }
  13. void CctPacketFormatter::status(MiLightStatus status, uint8_t groupId) {
  14. packet[CCT_COMMAND_INDEX] = getCctStatusButton(groupId, status);
  15. }
  16. uint8_t CctPacketFormatter::getCctStatusButton(uint8_t groupId, MiLightStatus status) {
  17. uint8_t button = 0;
  18. if (status == ON) {
  19. switch(groupId) {
  20. case 1:
  21. button = CCT_GROUP_1_ON;
  22. break;
  23. case 2:
  24. button = CCT_GROUP_2_ON;
  25. break;
  26. case 3:
  27. button = CCT_GROUP_3_ON;
  28. break;
  29. case 4:
  30. button = CCT_GROUP_4_ON;
  31. break;
  32. }
  33. } else {
  34. switch(groupId) {
  35. case 1:
  36. button = CCT_GROUP_1_OFF;
  37. break;
  38. case 2:
  39. button = CCT_GROUP_2_OFF;
  40. break;
  41. case 3:
  42. button = CCT_GROUP_3_OFF;
  43. break;
  44. case 4:
  45. button = CCT_GROUP_4_OFF;
  46. break;
  47. }
  48. }
  49. return button;
  50. }