esp32_ethernet_milight_hub/lib/MiLight/RgbPacketFormatter.h

48 lines
1.3 KiB
C++

#include <PacketFormatter.h>
#ifndef _RGB_PACKET_FORMATTER_H
#define _RGB_PACKET_FORMATTER_H
#define RGB_COMMAND_INDEX 4
#define RGB_COLOR_INDEX 3
#define RGB_INTERVALS 10
enum MiLightRgbButton {
RGB_OFF = 0x01,
RGB_ON = 0x02,
RGB_BRIGHTNESS_UP = 0x03,
RGB_BRIGHTNESS_DOWN = 0x04,
RGB_SPEED_UP = 0x05,
RGB_SPEED_DOWN = 0x06,
RGB_MODE_UP = 0x07,
RGB_MODE_DOWN = 0x08,
RGB_PAIR = RGB_SPEED_UP
};
class RgbPacketFormatter : public PacketFormatter {
public:
RgbPacketFormatter()
: PacketFormatter(REMOTE_TYPE_RGB, 6, 20)
{ }
virtual void updateStatus(MiLightStatus status, uint8_t groupId);
virtual void updateBrightness(uint8_t value);
virtual void increaseBrightness();
virtual void decreaseBrightness();
virtual void command(uint8_t command, uint8_t arg);
virtual void updateHue(uint16_t value);
virtual void updateColorRaw(uint8_t value);
virtual void format(uint8_t const* packet, char* buffer);
virtual void pair();
virtual void unpair();
virtual void modeSpeedDown();
virtual void modeSpeedUp();
virtual void nextMode();
virtual void previousMode();
virtual BulbId parsePacket(const uint8_t* packet, JsonObject result);
virtual void initializePacket(uint8_t* packet);
};
#endif