RgbCctPacketFormatter.cpp 783 B

1234567891011121314151617181920212223242526
  1. #include <RgbCctPacketFormatter.h>
  2. void RgbCctPacketFormatter::reset() {
  3. size_t packetPtr = 0;
  4. packet[packetPtr++] = 0x00;
  5. packet[packetPtr++] = RGB_CCT;
  6. packet[packetPtr++] = deviceId >> 8;
  7. packet[packetPtr++] = deviceId & 0xFF;
  8. packet[packetPtr++] = 0;
  9. packet[packetPtr++] = 0;
  10. packet[packetPtr++] = sequenceNum++;
  11. packet[packetPtr++] = groupId;
  12. packet[packetPtr++] = 0;
  13. }
  14. void RgbCctPacketFormatter::updateStatus(MiLightStatus status) {
  15. packet[RGB_CCT_COMMAND_INDEX] = RGB_CCT_ON;
  16. packet[RGB_CCT_ARGUMENT_INDEX] = 0xC0 + groupId + (status == OFF ? 5 : 0);
  17. }
  18. void RgbCctPacketFormatter::updateBrightness(uint8_t brightness) {
  19. packet[RGB_CCT_COMMAND_INDEX] = RGB_CCT_BRIGHTNESS;
  20. packet[RGB_CCT_ARGUMENT_INDEX] = 0x4F + rescale(brightness, 0x60);
  21. }