瀏覽代碼

级联控制ok

guohui 2 年之前
父節點
當前提交
a49e6f9299
共有 2 個文件被更改,包括 17 次插入 和 6 次删除
  1. 2 0
      pro/src/appweb_handle.c
  2. 15 6
      pro/src/cascade.c

+ 2 - 0
pro/src/appweb_handle.c

@@ -619,6 +619,7 @@ static void overallStatusMonitoring(void* conn)
         if(cur_dev_addr>0) {
             cmd.cmd = CASCADE_CMD_OPEN;
             cmd.obj = OBJ_OVERALL;
+            cmd.chId = 0xff;
             cascade_request(&cmd);
 
             ack_str = ctrl_sts_ack_to_json();
@@ -650,6 +651,7 @@ static void overallStatusMonitoring(void* conn)
         if(cur_dev_addr>0) {
             cmd.cmd = CASCADE_CMD_CLOSE;
             cmd.obj = OBJ_OVERALL;
+            cmd.chId = 0xff;
             cascade_request(&cmd);
 
             ack_str = ctrl_sts_ack_to_json();

+ 15 - 6
pro/src/cascade.c

@@ -25,7 +25,7 @@
 
 
 #ifdef MB_PARA_SIM
-    #define MB_MASTER       1
+    #define MB_MASTER       0
 #endif
 
 
@@ -496,14 +496,23 @@ static int mb_receive(cascade_handle_t *cas)
                         LOGD("____ slave CASCADE_CMD_CLOSE\n");
                     }
 
-                    for(i=0; i<info->cnt; i++) {
-                        if(info->channel[i].addr>0) {
-                            t = g_switch_set_all_ctrl(&get_dm()->_globalRelaySampManger, info->channel[i].type, info->channel[i].addr, (cas->cmd.cmd==CASCADE_CMD_OPEN)?1:0);
-                            if(t) {
-                                LOGE("___ %d %s failed\n", info->channel[i].addr, (cas->cmd.cmd==CASCADE_CMD_OPEN)?"open":"close");
+                    int flag=(cas->cmd.cmd==CASCADE_CMD_OPEN)?1:0;
+                    if(cas->cmd.chId == 0xff) {
+                        for(i=0; i<info->cnt; i++) {
+                            if(info->channel[i].addr>0) {
+                                t = g_switch_set_all_ctrl(&get_dm()->_globalRelaySampManger, info->channel[i].type, info->channel[i].addr, flag);
+                                if(t) {
+                                    LOGE("___ %d %s failed\n", info->channel[i].addr, (cas->cmd.cmd==CASCADE_CMD_OPEN)?"open":"close");
+                                }
                             }
                         }
                     }
+                    else {
+                        GlobalPowerManger power;
+                        int index = cas->cmd.chId-1;
+                        power.product_ch_type = info->channel[index].type;
+                        t = g_switch_set_all_chn_ctrl(&get_dm()->_globalRelaySampManger, &power, info->channel[index].addr, info->channel[index].ch_addr, flag, false);
+                    }
 
                     if(cas->cmd.cmd==CASCADE_CMD_OPEN) {
                         sprintf(buff,"$开启$|$所有$|$通道$");