RgbwPacketFormatter.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #include <PacketFormatter.h>
  2. #ifndef _RGBW_PACKET_FORMATTER_H
  3. #define _RGBW_PACKET_FORMATTER_H
  4. enum MiLightRgbwButton {
  5. RGBW_ALL_ON = 0x01,
  6. RGBW_ALL_OFF = 0x02,
  7. RGBW_GROUP_1_ON = 0x03,
  8. RGBW_GROUP_1_OFF = 0x04,
  9. RGBW_GROUP_2_ON = 0x05,
  10. RGBW_GROUP_2_OFF = 0x06,
  11. RGBW_GROUP_3_ON = 0x07,
  12. RGBW_GROUP_3_OFF = 0x08,
  13. RGBW_GROUP_4_ON = 0x09,
  14. RGBW_GROUP_4_OFF = 0x0A,
  15. RGBW_SPEED_UP = 0x0B,
  16. RGBW_SPEED_DOWN = 0x0C,
  17. RGBW_DISCO_MODE = 0x0D,
  18. RGBW_BRIGHTNESS = 0x0E,
  19. RGBW_COLOR = 0x0F,
  20. RGBW_ALL_MAX_LEVEL = 0x11,
  21. RGBW_ALL_MIN_LEVEL = 0x12,
  22. // These are the only mechanism (that I know of) to disable RGB and set the
  23. // color to white.
  24. RGBW_GROUP_1_MAX_LEVEL = 0x13,
  25. RGBW_GROUP_1_MIN_LEVEL = 0x14,
  26. RGBW_GROUP_2_MAX_LEVEL = 0x15,
  27. RGBW_GROUP_2_MIN_LEVEL = 0x16,
  28. RGBW_GROUP_3_MAX_LEVEL = 0x17,
  29. RGBW_GROUP_3_MIN_LEVEL = 0x18,
  30. RGBW_GROUP_4_MAX_LEVEL = 0x19,
  31. RGBW_GROUP_4_MIN_LEVEL = 0x1A,
  32. };
  33. #define RGBW_COMMAND_INDEX 5
  34. #define RGBW_BRIGHTNESS_GROUP_INDEX 4
  35. #define RGBW_COLOR_INDEX 3
  36. class RgbwPacketFormatter : public PacketFormatter {
  37. public:
  38. RgbwPacketFormatter()
  39. : PacketFormatter(7)
  40. { }
  41. virtual void updateStatus(MiLightStatus status, uint8_t groupId);
  42. virtual void updateBrightness(uint8_t value);
  43. virtual void command(uint8_t command, uint8_t arg);
  44. virtual void updateHue(uint16_t value);
  45. virtual void updateColorRaw(uint8_t value);
  46. virtual void updateColorWhite();
  47. virtual void format(uint8_t const* packet, char* buffer);
  48. virtual void unpair();
  49. virtual void modeSpeedDown();
  50. virtual void modeSpeedUp();
  51. virtual void nextMode();
  52. virtual void updateMode(uint8_t mode);
  53. virtual void initializePacket(uint8_t* packet);
  54. };
  55. #endif