Explorar el Código

fix cct support

Chris Mullins hace 8 años
padre
commit
46f33b4622

+ 22 - 2
lib/MiLight/CctPacketFormatter.cpp

@@ -12,9 +12,29 @@ void CctPacketFormatter::reset() {
   packet[packetPtr++] = sequenceNum;
   packet[packetPtr++] = sequenceNum++;
 }
+  
+void CctPacketFormatter::command(uint8_t command, uint8_t arg) {
+  packet[CCT_COMMAND_INDEX] = command;
+}
+
+void CctPacketFormatter::updateStatus(MiLightStatus status, uint8_t groupId) {
+  command(getCctStatusButton(groupId, status), 0);
+}
+  
+void CctPacketFormatter::increaseTemperature() {
+  command(CCT_TEMPERATURE_UP, 0);
+}
+
+void CctPacketFormatter::decreaseTemperature() {
+  command(CCT_TEMPERATURE_DOWN, 0);
+}
+
+void CctPacketFormatter::increaseBrightness() {
+  command(CCT_BRIGHTNESS_UP, 0);
+}
 
-void CctPacketFormatter::status(MiLightStatus status, uint8_t groupId) {
-  packet[CCT_COMMAND_INDEX] = getCctStatusButton(groupId, status);
+void CctPacketFormatter::decreaseBrightness() {
+  command(CCT_BRIGHTNESS_DOWN, 0);
 }
 
 uint8_t CctPacketFormatter::getCctStatusButton(uint8_t groupId, MiLightStatus status) {

+ 7 - 2
lib/MiLight/CctPacketFormatter.h

@@ -3,7 +3,7 @@
 #ifndef _CCT_PACKET_FORMATTER_H
 #define _CCT_PACKET_FORMATTER_H 
 
-#define CCT_COMMAND_INDEX 5
+#define CCT_COMMAND_INDEX 4
 
 class CctPacketFormatter : public PacketFormatter {
 public:
@@ -11,7 +11,12 @@ public:
     : PacketFormatter(packetLength)
   { }
   
-  virtual void status(MiLightStatus status, uint8_t groupId);
+  virtual void updateStatus(MiLightStatus status, uint8_t groupId);
+  virtual void command(uint8_t command, uint8_t arg);
+  virtual void increaseTemperature();
+  virtual void decreaseTemperature();
+  virtual void increaseBrightness();
+  virtual void decreaseBrightness();
   
   virtual void reset();
   

+ 2 - 2
lib/MiLight/MiLightClient.cpp

@@ -137,12 +137,12 @@ void MiLightClient::unpair() {
 }
     
 void MiLightClient::increaseBrightness() {
-  formatter->increaseTemperature();
+  formatter->increaseBrightness();
   flushPacket();
 }
 
 void MiLightClient::decreaseBrightness() {
-  formatter->increaseTemperature();
+  formatter->decreaseBrightness();
   flushPacket();
 }
 

+ 2 - 0
lib/MiLight/PacketFormatter.cpp

@@ -17,6 +17,8 @@ void PacketFormatter::updateColorWhite() { }
 
 void PacketFormatter::increaseTemperature() { }
 void PacketFormatter::decreaseTemperature() { }
+void PacketFormatter::increaseBrightness() { }
+void PacketFormatter::decreaseBrightness() { }
 
 void PacketFormatter::updateTemperature(uint8_t value) { }
 void PacketFormatter::updateSaturation(uint8_t value) { }

+ 2 - 0
lib/MiLight/PacketFormatter.h

@@ -32,6 +32,8 @@ public:
   // cct 
   virtual void increaseTemperature();
   virtual void decreaseTemperature();
+  virtual void increaseBrightness();
+  virtual void decreaseBrightness();
   
   // rgb+cct
   virtual void updateTemperature(uint8_t value);