diff --git a/si4/soft_gsm_main.si4project/soft_gsm_main.sip_sym b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_sym index aad6a62..21fd519 100644 Binary files a/si4/soft_gsm_main.si4project/soft_gsm_main.sip_sym and b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_sym differ diff --git a/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xab b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xab index 806fc19..b920929 100644 Binary files a/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xab and b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xab differ diff --git a/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xad b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xad index 79d3f01..15f9615 100644 Binary files a/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xad and b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xad differ diff --git a/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xc b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xc index 47610cd..16710c8 100644 Binary files a/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xc and b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xc differ diff --git a/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xf b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xf index 07582ce..33b1f24 100644 Binary files a/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xf and b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xf differ diff --git a/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xm b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xm index 6acd883..ee90016 100644 Binary files a/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xm and b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xm differ diff --git a/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xr b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xr index 96c3678..22c444f 100644 Binary files a/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xr and b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xr differ diff --git a/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xsb b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xsb index af08b71..0b3a23c 100644 Binary files a/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xsb and b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xsb differ diff --git a/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xsd b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xsd index 6b99e30..031ed26 100644 Binary files a/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xsd and b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xsd differ diff --git a/si4/soft_gsm_main.si4project/soft_gsm_main.siproj b/si4/soft_gsm_main.si4project/soft_gsm_main.siproj index ef516e1..6686ac3 100644 Binary files a/si4/soft_gsm_main.si4project/soft_gsm_main.siproj and b/si4/soft_gsm_main.si4project/soft_gsm_main.siproj differ diff --git a/si4/soft_gsm_main.si4project/soft_gsm_main.siwork b/si4/soft_gsm_main.si4project/soft_gsm_main.siwork index 5638189..85146f5 100644 Binary files a/si4/soft_gsm_main.si4project/soft_gsm_main.siwork and b/si4/soft_gsm_main.si4project/soft_gsm_main.siwork differ diff --git a/source/app/app_common.c b/source/app/app_common.c index a327c0f..87e8751 100644 --- a/source/app/app_common.c +++ b/source/app/app_common.c @@ -13,7 +13,7 @@ void L2_register_init() { U8 i = 0; G.p.slaverId = 0x10; - G.p.wisdom_car_no = 0x91; + G.p.wisdom_car_no = 0x92; //第一台车91,第二台车92 G.p.thrombolytic_ratio = 9; //0.9 G.p.bolus_ratio = 1; //0.9 G.p.hold_ratio = 9; //0.1 @@ -79,14 +79,19 @@ void L2_register_init() G.ccmd_slaver_info[i].mask = 0; } - G.ccmd_slaver_info[0].slaver = SLAVER_TCP_SERVER_ID; //服务? //登陆包,写平车编? +#if 0 + G.ccmd_slaver_info[0].slaver = SLAVER_TCP_SERVER_ID; //服务? //登陆包,写平车编? G.ccmd_slaver_info[0].oper = MODBUS_OPER_WRITE_M; G.ccmd_slaver_info[0].reg = 0x01; G.ccmd_slaver_info[0].regnum = 0x01; G.ccmd_slaver_info[0].bytes = G.ccmd_slaver_info[0].regnum * 2; G.ccmd_slaver_info[0].buf = (U8*)&G.p.wisdom_car_no; G.ccmd_slaver_info[0].mask = 0; - +#else + G.ccmd_slaver_info[0].slaver = SLAVER_TCP_SERVER_ID; //服务? //登陆包,写平车编? + G.ccmd_slaver_info[0].oper = MODBUS_OPER_AUTH; + G.ccmd_slaver_info[0].mask = 0; +#endif G.ccmd_slaver_info[1].slaver = SLAVER_TCP_SERVER_ID; //服务? //心跳包,写心跳寄存器 G.ccmd_slaver_info[1].oper = MODBUS_OPER_WRITE_M; G.ccmd_slaver_info[1].reg = 0x02; diff --git a/source/app/app_task_485.c b/source/app/app_task_485.c index c50e8ca..8b3b793 100644 --- a/source/app/app_task_485.c +++ b/source/app/app_task_485.c @@ -5,7 +5,7 @@ //#define MODBUS_SLAVER_DW20_REG_START 0x02 //#define MODBUS_SLAVER_DW20_REG_NUM 0x02 -#define MODBUS_SLAVER_RETRY_MAX_TIME 3 +#define MODBUS_SLAVER_RETRY_MAX_TIME 2 TS_485 ts_485; @@ -48,7 +48,7 @@ void L3_task_485_handle(TS_485 *s) L2_task_go(D_task_485_wait_modbus_ack); TTSS_Task_step(D_task_485_wait_modbus_ack) - if(s_nos_tick.t_5ms - s->sendStamp >= 20) + if(s_nos_tick.t_5ms - s->sendStamp >= 8) { if(s_uart2_rec.ok) { @@ -89,7 +89,7 @@ void L3_task_485_handle(TS_485 *s) if(s->pAckPkg->buf[2] != G._keyled) //按键发生改变 { G._keyled = s->pAckPkg->buf[2]; - L0_uart0_uc(G._keyled); + L0_uart0_uchex(G._keyled); if(G._keyled == 0) { //TODO diff --git a/source/app/main.c b/source/app/main.c index c7c2687..e834cd3 100644 --- a/source/app/main.c +++ b/source/app/main.c @@ -137,21 +137,28 @@ void main(void) G.pi_weight = G.total_weight; L0_uart0_uc('#'); } + //if(s_nos_tick.t_1s >= 10) + //{ + //G.jing_weight = (s_nos_tick.t_1s - 10)% 100* 10; + //G.rfid = s_nos_tick.t_1s - 10 % 13 + 1; + //} } + //看门狗 L3_task_wdt_handle(&s_task_wdt); - - //串口0,3 RFID接收 - L3_task_rfid_handle(&ts_rfid); - L3_UARTcom0_exp_protocol(&s_uart0_rec); - L3_UARTcom3_exp_protocol(&s_uart3_rec); //485轮询 L3_task_485_handle(&ts_485); //master->slaver发送逻辑控制 L3_task_485_control_handle(&ts_485_control); -#if 1 +#if 1 + + //串口0,3 RFID接收 + L3_task_rfid_handle(&ts_rfid); + L3_UARTcom0_exp_protocol(&s_uart0_rec); + L3_UARTcom3_exp_protocol(&s_uart3_rec); + //gm35维持连接 L3_task_gm35_core_handle(); diff --git a/source/tpc/tpc_ccmodbus.c b/source/tpc/tpc_ccmodbus.c index 887fc7c..37e62b5 100644 --- a/source/tpc/tpc_ccmodbus.c +++ b/source/tpc/tpc_ccmodbus.c @@ -31,6 +31,7 @@ msp/uartx.c 底层代码 和cpu相关 #include "tpc_ccmodbus.h" #include "../clib/clib.h" +#include "../app/app_common.h" U8 L3_pack_ccmodbus_03(TS_PH3_ccmodbus *pmodbus ,U8 slaverId, U16 reg, U16 num) { @@ -86,6 +87,23 @@ U8 L3_pack_ccmodbus_10(TS_PH3_ccmodbus *pmodbus ,U8 slaverId, U16 reg, U16 num, return bufsize + bytes + 2 + 2; } +U8 L3_pack_ccmodbus_90(TS_PH3_ccmodbus *pmodbus ,U8 slaverId) +{ + U8 bufsize = 5,i = 0; + pmodbus->slaver = slaverId; + pmodbus->oper = MODBUS_OPER_AUTH; + pmodbus->buf[0] = APP_VERSION_HEX >> 4 & 0xF; //major version + pmodbus->buf[1] = APP_VERSION_HEX >> 0 & 0xF; //minor version + pmodbus->buf[2] = 0x00; //mq high + pmodbus->buf[3] = 0x03; //mq low + pmodbus->buf[4] = G.p.wisdom_car_no; //平车编号 + + crc16(pmodbus->crc,&pmodbus->slaver,2 + bufsize); + pmodbus->buf[bufsize] = pmodbus->crc[0]; + pmodbus->buf[bufsize + 1] = pmodbus->crc[1]; + + return bufsize + 2 + 2; +} U8 L3_pack_ccmodbus(TS_PH3_ccmodbus *pccmodbus, CCMD_SLAVER_INFO *slaver_info) { @@ -103,6 +121,8 @@ U8 L3_pack_ccmodbus(TS_PH3_ccmodbus *pccmodbus, CCMD_SLAVER_INFO *slaver_info) case MODBUS_OPER_WRITE_M: pkglen = L3_pack_ccmodbus_10(pccmodbus,slaver_info->slaver,slaver_info->reg,slaver_info->regnum,slaver_info->bytes,slaver_info->buf); break; + case MODBUS_OPER_AUTH: + pkglen = L3_pack_ccmodbus_90(pccmodbus,slaver_info->slaver); default: break; } diff --git a/source/tpc/tpc_modbus.h b/source/tpc/tpc_modbus.h index 5f5513a..21c2219 100644 --- a/source/tpc/tpc_modbus.h +++ b/source/tpc/tpc_modbus.h @@ -37,6 +37,7 @@ enum MODBUS_OPER MODBUS_OPER_WRITE = 0x06, MODBUS_OPER_WRITE_M = 0x10, MODBUS_OPER_ERR = 0x8F, + MODBUS_OPER_AUTH = 0x90, }; enum MODBUS_ERR_CODE