Browse Source

修正了发送控制逻辑

master
zhangsan 5 years ago
parent
commit
f6c715fabd
  1. BIN
      si4/soft_gsm_main.si4project/soft_gsm_main.sip_sym
  2. BIN
      si4/soft_gsm_main.si4project/soft_gsm_main.sip_xm
  3. BIN
      si4/soft_gsm_main.si4project/soft_gsm_main.siwork
  4. 18
      source/app/app_task_485.c
  5. 4
      source/app/app_task_485_control.c
  6. 2
      source/app/app_task_485_control.h

BIN
si4/soft_gsm_main.si4project/soft_gsm_main.sip_sym

Binary file not shown.

BIN
si4/soft_gsm_main.si4project/soft_gsm_main.sip_xm

Binary file not shown.

BIN
si4/soft_gsm_main.si4project/soft_gsm_main.siwork

Binary file not shown.

18
source/app/app_task_485.c

@ -57,20 +57,27 @@ void L3_task_485_handle(TS_485 *s)
if(s->pAckPkg->salver == G.md_slaver_info[s->slaverIndex].slaver) if(s->pAckPkg->salver == G.md_slaver_info[s->slaverIndex].slaver)
{ {
s->ackFlag = 1; s->ackFlag = 1;
if(G.md_slaver_info[s->slaverIndex].mask == 1)
{
G.md_slaver_info[s->slaverIndex].mask = 0;
}
//TODO 这里可以根据modbus协议让代码通用, //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 = 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[1]) << 24 | (S32)(s->pAckPkg->buf[2]) << 16 | (S32)(s->pAckPkg->buf[3]) << 8
| (S32)(s->pAckPkg->buf[4]); | (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.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.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]); 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 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++; s->retryTimes++;
if(s->ackFlag || s->retryTimes >= MODBUS_SLAVER_RETRY_MAX_TIME) 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); L2_task_go(D_task_485_switch_next_slaver);
} }
else else

4
source/app/app_task_485_control.c

@ -10,7 +10,6 @@ void L3_task_485_control_init(void)
L3_task_s_go(ts_485_control,D_task_init); L3_task_s_go(ts_485_control,D_task_init);
ts_485_control.total_weight_pool = 0; ts_485_control.total_weight_pool = 0;
ts_485_control.rfid_pool = 0; ts_485_control.rfid_pool = 0;
ts_485_control.sendstmp = 0;
} }
#define D_task_485_control_01 0x51 #define D_task_485_control_01 0x51
@ -21,6 +20,7 @@ void L3_task_485_control_handle(TS_485_control *s)
L2_task_go(D_task_485_control_01); L2_task_go(D_task_485_control_01);
TTSS_Task_step(D_task_485_control_01) TTSS_Task_step(D_task_485_control_01)
#if 0
if(s_nos_tick.t_1s - s->sendstmp >= 1) if(s_nos_tick.t_1s - s->sendstmp >= 1)
{ {
s->sendstmp = s_nos_tick.t_1s; s->sendstmp = s_nos_tick.t_1s;
@ -35,7 +35,7 @@ void L3_task_485_control_handle(TS_485_control *s)
G.md_slaver_info[3].mask = 1; G.md_slaver_info[3].mask = 1;
s->rfid_pool = G.rfid; s->rfid_pool = G.rfid;
} }
#if 0 #else
if(s->total_weight_pool != G.total_weight) if(s->total_weight_pool != G.total_weight)
{ {
G.thrombolytic_val = G.total_weight / 10 * G.p.thrombolytic_ratio / 10; G.thrombolytic_val = G.total_weight / 10 * G.p.thrombolytic_ratio / 10;

2
source/app/app_task_485_control.h

@ -10,8 +10,6 @@ typedef struct
TS_task task; TS_task task;
S32 total_weight_pool; S32 total_weight_pool;
U16 rfid_pool; U16 rfid_pool;
U32 sendstmp;
U8 sendflag;
}TS_485_control; }TS_485_control;
extern TS_485_control ts_485_control; extern TS_485_control ts_485_control;

Loading…
Cancel
Save