|
|
@@ -21,11 +21,11 @@
|
|
|
|
|
|
|
|
|
#define MB_PARA_SIM
|
|
|
-#define SLAVE_DATA_SIM
|
|
|
+//#define SLAVE_DATA_SIM
|
|
|
|
|
|
|
|
|
#ifdef MB_PARA_SIM
|
|
|
- #define MB_MASTER 0
|
|
|
+ #define MB_MASTER 1
|
|
|
#endif
|
|
|
|
|
|
|
|
|
@@ -146,7 +146,7 @@ static int slave_get_info(cascade_handle_t *cas, int hardread)
|
|
|
}
|
|
|
}
|
|
|
#endif
|
|
|
- LOGD("___ slave_get_info addr, cnt: %d\n", info->cnt);
|
|
|
+ LOGD("___ slave_get_info, cnt: %d\n", info->cnt);
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
@@ -497,20 +497,15 @@ static int mb_receive(cascade_handle_t *cas)
|
|
|
{
|
|
|
LOGD("_____ slave CASCADE_CMD_GET_INFO\n");
|
|
|
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;
|
|
|
|
|
|
case CASCADE_CMD_QUERY_CH:
|
|
|
{
|
|
|
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;
|
|
|
|
|
|
@@ -682,6 +677,10 @@ static int power_ch_update(cascade_handle_t *cas)
|
|
|
GlobalDeviceManager *dm2=get_dm2();
|
|
|
PowerInfo *info=cas->pwrInfo.info;
|
|
|
|
|
|
+ if(cas->pwrInfo.cnt==0) {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
list_for_each_entry(tmp, &dm2->_globalPowerManger.list, list)
|
|
|
{
|
|
|
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)
|
|
|
-static int power_query()
|
|
|
-{
|
|
|
-
|
|
|
-}
|
|
|
static int master_request(cascade_handle_t *cas, cmd_data_t *cmd)
|
|
|
{
|
|
|
int i,r;
|
|
|
@@ -812,8 +807,6 @@ static int master_query(cascade_handle_t *cas)
|
|
|
GlobalPowerManger *tmp=NULL;
|
|
|
GlobalDeviceManager *dm2=get_dm2();
|
|
|
GlobalDeviceInfo *dev=&dm2->_global_device_info;
|
|
|
- _OverChnPwrAckInfo chInfo;
|
|
|
- _OverAllPwrAckInfo allInfo;
|
|
|
cmd_data_t *cmd=&cas->cmd;
|
|
|
data_t rdata,wdata;
|
|
|
|
|
|
@@ -821,23 +814,6 @@ static int master_query(cascade_handle_t *cas)
|
|
|
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.data = (uint8_t*)cmd;
|
|
|
|
|
|
@@ -846,18 +822,17 @@ static int master_query(cascade_handle_t *cas)
|
|
|
case CASCADE_CMD_QUERY_CH:
|
|
|
{
|
|
|
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;
|
|
|
}
|
|
|
+
|
|
|
+ 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;
|
|
|
|