esp32_ethernet_milight_hub/lib/MiLight/FUT089PacketFormatter.h

46 lines
1.2 KiB
C++

#include <V2PacketFormatter.h>
#ifndef _FUT089_PACKET_FORMATTER_H
#define _FUT089_PACKET_FORMATTER_H
#define FUT089_COLOR_OFFSET 0
enum MiLightFUT089Command {
FUT089_ON = 0x01,
FUT089_OFF = 0x01,
FUT089_COLOR = 0x02,
FUT089_BRIGHTNESS = 0x05,
FUT089_MODE = 0x06,
FUT089_KELVIN = 0x07, // Controls Kelvin when in White mode
FUT089_SATURATION = 0x07 // Controls Saturation when in Color mode
};
enum MiLightFUT089Arguments {
FUT089_MODE_SPEED_UP = 0x12,
FUT089_MODE_SPEED_DOWN = 0x13,
FUT089_WHITE_MODE = 0x14
};
class FUT089PacketFormatter : public V2PacketFormatter {
public:
FUT089PacketFormatter()
: V2PacketFormatter(REMOTE_TYPE_FUT089, 0x25, 8) // protocol is 0x25, and there are 8 groups
{ }
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 BulbId parsePacket(const uint8_t* packet, JsonObject result);
};
#endif