GroupState.h 754 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include <inttypes.h>
  2. #include <Arduino.h>
  3. #ifndef _GROUP_STATE_H
  4. #define _GROUP_STATE_H
  5. struct GroupId {
  6. uint16_t deviceId;
  7. uint8_t groupId;
  8. };
  9. struct GroupState {
  10. // xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
  11. // ^..
  12. uint32_t data;
  13. // 1 bit
  14. bool isOn();
  15. void setOn(bool on);
  16. // 7 bits
  17. uint8_t getBrightness();
  18. void setBrightness(uint8_t brightness);
  19. // 8 bits
  20. uint8_t getHue();
  21. void setHue(uint8_t hue);
  22. // 7 bits
  23. uint8_t getSaturation();
  24. void setSaturation(uint8_t saturation);
  25. // 5 bits
  26. uint8_t getMode();
  27. void setMode(uint8_t mode);
  28. // 7 bits
  29. uint8_t getKelvin();
  30. void setKelvin(uint8_t kelvin);
  31. };
  32. struct GroupStateNode {
  33. GroupState state;
  34. GroupId nextNode;
  35. GroupId prevNode;
  36. };
  37. #endif