ソースを参照

add speeds rgb+cct modes

Chris Mullins 8 年 前
コミット
95c864c14b
共有2 個のファイルを変更した34 個の追加9 個の削除を含む
  1. 26 9
      lib/Udp/V6RgbCctCommandHandler.cpp
  2. 8 0
      lib/Udp/V6RgbCctCommandHandler.h

+ 26 - 9
lib/Udp/V6RgbCctCommandHandler.cpp

@@ -12,16 +12,33 @@ bool V6RgbCctCommandHandler::handleCommand(
   
   client->prepare(MilightRgbCctConfig, deviceId, group);
   
-  switch (cmd) {
-    case V2_STATUS:
-      if (arg == 0x01) {
-        client->updateStatus(ON);
-      } else if (arg == 0x02) {
-        client->updateStatus(OFF);
-      } else if (arg == 0x05) {
+  if (cmd == V2_STATUS) {
+    switch (arg) {
+      case V2_RGB_CCT_ON:
+      case V2_RGB_CCT_OFF:
+        client->updateStatus(arg == V2_RGB_CCT_ON ? ON : OFF);
+        break;
+        
+      case V2_RGB_NIGHT_MODE:
         client->updateBrightness(0);
-      }
-      break;
+        break;
+        
+      case V2_RGB_CCT_SPEED_DOWN:
+        client->modeSpeedDown();
+        break;
+        
+      case V2_RGB_CCT_SPEED_UP:
+        client->modeSpeedUp();
+        break;
+        
+      default: 
+        return false;
+    }
+    
+    return true;
+  }
+  
+  switch (cmd) {
       
     case V2_COLOR:
       client->updateColorRaw(arg);

+ 8 - 0
lib/Udp/V6RgbCctCommandHandler.h

@@ -12,6 +12,14 @@ enum V2CommandIds {
   V2_MODE = 0x06
 };
 
+enum V2CommandArgIds {
+  V2_RGB_CCT_ON = 0x01,
+  V2_RGB_CCT_OFF = 0x02,
+  V2_RGB_CCT_SPEED_UP = 0x03,
+  V2_RGB_CCT_SPEED_DOWN = 0x04,
+  V2_RGB_NIGHT_MODE = 0x05
+};
+
 class V6RgbCctCommandHandler : public V6CommandHandler {
 public:
   V6RgbCctCommandHandler(uint16_t commandId)