guohui vor 2 Jahren
Ursprung
Commit
66c88183dd
2 geänderte Dateien mit 20 neuen und 45 gelöschten Zeilen
  1. 19 44
      pro/src/cascade.c
  2. 1 1
      pro/src/cascade.h

+ 19 - 44
pro/src/cascade.c

@@ -21,11 +21,11 @@
 
 
 
 
 #define MB_PARA_SIM
 #define MB_PARA_SIM
-#define SLAVE_DATA_SIM
+//#define SLAVE_DATA_SIM
 
 
 
 
 #ifdef MB_PARA_SIM
 #ifdef MB_PARA_SIM
-    #define MB_MASTER       0
+    #define MB_MASTER       1
 #endif
 #endif
 
 
 
 
@@ -146,7 +146,7 @@ static int slave_get_info(cascade_handle_t *cas, int hardread)
         }
         }
     }
     }
 #endif
 #endif
-    LOGD("___ slave_get_info addr, cnt: %d\n", info->cnt);
+    LOGD("___ slave_get_info, cnt: %d\n", info->cnt);
 
 
     return 0;
     return 0;
 }
 }
@@ -497,20 +497,15 @@ static int mb_receive(cascade_handle_t *cas)
                     {
                     {
                         LOGD("_____ slave CASCADE_CMD_GET_INFO\n");
                         LOGD("_____ slave CASCADE_CMD_GET_INFO\n");
                         slave_get_info(cas, 0);      //hardread will cost long time
                         slave_get_info(cas, 0);      //hardread will cost long time
-                        memcpy(cas->map2->tab_registers+(h.reg-CASCADE_REG_OFFSET), (char*)&cas->info, h.regcnt*2);
+                        memcpy(cas->map2->tab_registers+(h.reg-CASCADE_REG_OFFSET), (char*)&cas->info+sendlen, h.regcnt*2);
                     }
                     }
                     break;
                     break;
 
 
                     case CASCADE_CMD_QUERY_CH:
                     case CASCADE_CMD_QUERY_CH:
                     {
                     {
                         LOGD("___ slave CASCADE_CMD_QUERY_CH\n");
                         LOGD("___ slave CASCADE_CMD_QUERY_CH\n");
-                        if(cas->cmd.obj==OBJ_OVERALL){
-                            slave_get_all_data(cas);
-                            memcpy(cas->map2->tab_registers+(h.reg-CASCADE_REG_OFFSET), ((char*)&cas->pwrInfo.info)+sendlen, h.regcnt*2);
-                        }
-                        else {
-                            return -1;
-                        }
+                        slave_get_all_data(cas);
+                        memcpy(cas->map2->tab_registers+(h.reg-CASCADE_REG_OFFSET), ((char*)cas->pwrInfo.info)+sendlen, h.regcnt*2);
                     }
                     }
                     break;
                     break;
 
 
@@ -682,6 +677,10 @@ static int power_ch_update(cascade_handle_t *cas)
     GlobalDeviceManager *dm2=get_dm2();
     GlobalDeviceManager *dm2=get_dm2();
     PowerInfo *info=cas->pwrInfo.info;
     PowerInfo *info=cas->pwrInfo.info;
 
 
+    if(cas->pwrInfo.cnt==0) {
+        return -1;
+    }
+
     list_for_each_entry(tmp, &dm2->_globalPowerManger.list, list)
     list_for_each_entry(tmp, &dm2->_globalPowerManger.list, list)
     {
     {
         if(cnt>cas->pwrInfo.cnt) {
         if(cnt>cas->pwrInfo.cnt) {
@@ -752,10 +751,6 @@ static int power_get(cascade_handle_t *cas, int addr, sensor_data_t *ss)
 }
 }
 
 
 #define REGS(x)    (((x)+(x)%2)/2)
 #define REGS(x)    (((x)+(x)%2)/2)
-static int power_query()
-{
-    
-}
 static int master_request(cascade_handle_t *cas, cmd_data_t *cmd)
 static int master_request(cascade_handle_t *cas, cmd_data_t *cmd)
 {
 {
     int i,r;
     int i,r;
@@ -812,8 +807,6 @@ static int master_query(cascade_handle_t *cas)
     GlobalPowerManger *tmp=NULL;
     GlobalPowerManger *tmp=NULL;
     GlobalDeviceManager *dm2=get_dm2();
     GlobalDeviceManager *dm2=get_dm2();
     GlobalDeviceInfo    *dev=&dm2->_global_device_info;
     GlobalDeviceInfo    *dev=&dm2->_global_device_info;
-    _OverChnPwrAckInfo chInfo;
-    _OverAllPwrAckInfo allInfo;
     cmd_data_t *cmd=&cas->cmd;
     cmd_data_t *cmd=&cas->cmd;
     data_t rdata,wdata;
     data_t rdata,wdata;
 
 
@@ -821,23 +814,6 @@ static int master_query(cascade_handle_t *cas)
         return -1;
         return -1;
     }
     }
 
 
-#if 0
-    //add for test
-    cmd->obj = OBJ_OVERALL;
-    cmd->cmd = CASCADE_CMD_QUERY_CH;
-
-    for(i=0; i<CH_MAX; i++) {
-        cmd->ch[i].addr = i+1;
-        cmd->ch[i].ch_type = 8;
-    }
-
-    cmd->chId  = 44;
-    strcpy(cmd->time_s, "123456789 ABCDEFGH");
-    strcpy(cmd->time_e, "2222/22/22 11:11:11");
-
-    print_cmd("master", cmd);
-#endif
-
     wdata.dlen = sizeof(*cmd);
     wdata.dlen = sizeof(*cmd);
     wdata.data = (uint8_t*)cmd;
     wdata.data = (uint8_t*)cmd;
     
     
@@ -846,18 +822,17 @@ static int master_query(cascade_handle_t *cas)
         case CASCADE_CMD_QUERY_CH:
         case CASCADE_CMD_QUERY_CH:
         {
         {
             LOGD("____ master query CASCADE_CMD_QUERY_CH\n");
             LOGD("____ master query CASCADE_CMD_QUERY_CH\n");
-            if(cmd->obj==OBJ_OVERALL || cmd->obj==OBJ_CHANNEL) {
-                rdata.dlen = sizeof(PowerInfo)*cas->info.cnt;
-                rdata.data = (uint8_t*)&cas->pwrInfo.info;
-                r = mb_write_read(cas, cur_dev_addr, &wdata, &rdata);
-                LOGD("____ master mb_write_read CASCADE_CMD_QUERY_CH %d\n", r);
-                if(r==0) {
-                    power_ch_update(cas);
-                }
-            }
-            else {
+            if(cas->info.cnt==0) {
                 return -1;
                 return -1;
             }
             }
+
+            rdata.dlen = sizeof(PowerInfo)*cas->info.cnt;
+            rdata.data = (uint8_t*)cas->pwrInfo.info;
+            r = mb_write_read(cas, cur_dev_addr, &wdata, &rdata);
+            LOGD("____ master mb_write_read CASCADE_CMD_QUERY_CH %d\n", r);
+            if(r==0) {
+                power_ch_update(cas);
+            }
         }
         }
         break;
         break;
 
 

+ 1 - 1
pro/src/cascade.h

@@ -101,12 +101,12 @@ typedef struct {
 }data_t;
 }data_t;
 
 
 typedef struct {
 typedef struct {
+    uint8_t         cnt;
     struct {
     struct {
         uint8_t     addr;
         uint8_t     addr;
         uint8_t     ch_addr;
         uint8_t     ch_addr;
         uint8_t     type;
         uint8_t     type;
     }board[128];
     }board[128];
-    uint8_t         cnt;
 }board_info_t;
 }board_info_t;