CctPacketFormatter.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include <PacketFormatter.h>
  2. #ifndef _CCT_PACKET_FORMATTER_H
  3. #define _CCT_PACKET_FORMATTER_H
  4. #define CCT_COMMAND_INDEX 4
  5. #define CCT_INTERVALS 10
  6. enum MiLightCctButton {
  7. CCT_ALL_ON = 0x05,
  8. CCT_ALL_OFF = 0x09,
  9. CCT_GROUP_1_ON = 0x08,
  10. CCT_GROUP_1_OFF = 0x0B,
  11. CCT_GROUP_2_ON = 0x0D,
  12. CCT_GROUP_2_OFF = 0x03,
  13. CCT_GROUP_3_ON = 0x07,
  14. CCT_GROUP_3_OFF = 0x0A,
  15. CCT_GROUP_4_ON = 0x02,
  16. CCT_GROUP_4_OFF = 0x06,
  17. CCT_BRIGHTNESS_DOWN = 0x04,
  18. CCT_BRIGHTNESS_UP = 0x0C,
  19. CCT_TEMPERATURE_UP = 0x0E,
  20. CCT_TEMPERATURE_DOWN = 0x0F
  21. };
  22. class CctPacketFormatter : public PacketFormatter {
  23. public:
  24. CctPacketFormatter()
  25. : PacketFormatter(7, 20)
  26. { }
  27. virtual bool canHandle(const uint8_t* packet, const size_t len);
  28. virtual void updateStatus(MiLightStatus status, uint8_t groupId);
  29. virtual void command(uint8_t command, uint8_t arg);
  30. virtual void updateTemperature(uint8_t value);
  31. virtual void increaseTemperature();
  32. virtual void decreaseTemperature();
  33. virtual void updateBrightness(uint8_t value);
  34. virtual void increaseBrightness();
  35. virtual void decreaseBrightness();
  36. virtual void enableNightMode();
  37. virtual void format(uint8_t const* packet, char* buffer);
  38. virtual void initializePacket(uint8_t* packet);
  39. virtual void finalizePacket(uint8_t* packet);
  40. virtual BulbId parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore);
  41. static uint8_t getCctStatusButton(uint8_t groupId, MiLightStatus status);
  42. static uint8_t cctCommandIdToGroup(uint8_t command);
  43. static MiLightStatus cctCommandToStatus(uint8_t command);
  44. };
  45. #endif