| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #include <V2PacketFormatter.h>
- #ifndef _RGB_CCT_PACKET_FORMATTER_H
- #define _RGB_CCT_PACKET_FORMATTER_H
- #define RGB_CCT_NUM_MODES 9
- #define RGB_CCT_COLOR_OFFSET 0x5F
- #define RGB_CCT_BRIGHTNESS_OFFSET 0x8F
- #define RGB_CCT_SATURATION_OFFSET 0xD
- #define RGB_CCT_KELVIN_OFFSET 0x94
- // Remotes have a larger range
- #define RGB_CCT_KELVIN_REMOTE_OFFSET 0x4C
- #define RGB_CCT_KELVIN_REMOTE_START 0xE8
- enum MiLightRgbCctCommand {
- RGB_CCT_ON = 0x01,
- RGB_CCT_OFF = 0x01,
- RGB_CCT_COLOR = 0x02,
- RGB_CCT_KELVIN = 0x03,
- RGB_CCT_BRIGHTNESS = 0x04,
- RGB_CCT_SATURATION = 0x04,
- RGB_CCT_MODE = 0x05
- };
- enum MiLightRgbCctArguments {
- RGB_CCT_MODE_SPEED_UP = 0x0A,
- RGB_CCT_MODE_SPEED_DOWN = 0x0B
- };
- class RgbCctPacketFormatter : public V2PacketFormatter {
- public:
- RgbCctPacketFormatter()
- : V2PacketFormatter(0x20, 4),
- lastMode(0)
- { }
- virtual void updateBrightness(uint8_t value);
- virtual void updateHue(uint16_t value);
- virtual void updateColorRaw(uint8_t value);
- virtual void updateColorWhite();
- virtual void updateTemperature(uint8_t value);
- virtual void updateSaturation(uint8_t value);
- virtual void enableNightMode();
- virtual void modeSpeedDown();
- virtual void modeSpeedUp();
- virtual void updateMode(uint8_t mode);
- virtual void nextMode();
- virtual void previousMode();
- virtual void parsePacket(const uint8_t* packet, JsonObject& result, GroupStateStore* stateStore);
- protected:
- uint8_t lastMode;
- };
- #endif
|