|
|
@ -57,20 +57,27 @@ void L3_task_485_handle(TS_485 *s) |
|
|
|
if(s->pAckPkg->salver == G.md_slaver_info[s->slaverIndex].slaver) |
|
|
|
{ |
|
|
|
s->ackFlag = 1; |
|
|
|
if(G.md_slaver_info[s->slaverIndex].mask == 1) |
|
|
|
{ |
|
|
|
G.md_slaver_info[s->slaverIndex].mask = 0; |
|
|
|
} |
|
|
|
|
|
|
|
//TODO 这里可以根据modbus协议让代码通用,
|
|
|
|
if(s->pAckPkg->salver == G.md_slaver_info[0].slaver && s->pAckPkg->oper == MODBUS_OPER_READ) |
|
|
|
if(s->pAckPkg->oper == MODBUS_OPER_READ) |
|
|
|
{ |
|
|
|
if(s->pAckPkg->salver == G.md_slaver_info[0].slaver) |
|
|
|
{ |
|
|
|
G.total_weight = |
|
|
|
(S32)(s->pAckPkg->buf[1]) << 24 | (S32)(s->pAckPkg->buf[2]) << 16 | (S32)(s->pAckPkg->buf[3]) << 8 |
|
|
|
| (S32)(s->pAckPkg->buf[4]); |
|
|
|
} |
|
|
|
else if(s->pAckPkg->salver == G.md_slaver_info[1].slaver && s->pAckPkg->oper == MODBUS_OPER_READ) |
|
|
|
else if(s->pAckPkg->salver == G.md_slaver_info[1].slaver) |
|
|
|
{ |
|
|
|
G.asga.xaxis = (U16)(s->pAckPkg->buf[1]) << 8 | (U16)(s->pAckPkg->buf[2]); |
|
|
|
G.asga.yaxis = (U16)(s->pAckPkg->buf[3]) << 8 | (U16)(s->pAckPkg->buf[4]); |
|
|
|
G.asga.zaxis = (U16)(s->pAckPkg->buf[5]) << 8 | (U16)(s->pAckPkg->buf[6]); |
|
|
|
} |
|
|
|
else if(s->pAckPkg->salver == G.md_slaver_info[4].slaver && s->pAckPkg->oper == MODBUS_OPER_READ) |
|
|
|
else if(s->pAckPkg->salver == G.md_slaver_info[4].slaver) |
|
|
|
{ |
|
|
|
if(s->pAckPkg->buf[1] != 0 || s->pAckPkg->buf[2] != 0) //按键不为0
|
|
|
|
{ |
|
|
@ -79,13 +86,10 @@ void L3_task_485_handle(TS_485 *s) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
s->retryTimes++; |
|
|
|
if(s->ackFlag || s->retryTimes >= MODBUS_SLAVER_RETRY_MAX_TIME) |
|
|
|
{ |
|
|
|
if(G.md_slaver_info[s->slaverIndex].mask == 1) |
|
|
|
{ |
|
|
|
G.md_slaver_info[s->slaverIndex].mask = 0; |
|
|
|
} |
|
|
|
L2_task_go(D_task_485_switch_next_slaver); |
|
|
|
} |
|
|
|
else |
|
|
|