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 bcc9a99..8a4f8b0 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_xm b/si4/soft_gsm_main.si4project/soft_gsm_main.sip_xm index 20f8fa1..9bde1c7 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.siwork b/si4/soft_gsm_main.si4project/soft_gsm_main.siwork index f770143..81d8b10 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 aacbd4e..ed8a868 100644 --- a/source/app/app_common.c +++ b/source/app/app_common.c @@ -6,30 +6,29 @@ #include "../app/app_paraid.h" #include "../app/app_task_relay.h" -//0xFF+0xFE+2+20+1+21 `0xFF``0xFE`00``2A``simno,salt -#define LEN_GPRS_TCP_PKG_AT_SIGNIN 46 -#define LEN_GPRS_TCP_DATA_ACK 8 struct printer_maintenance_global G; -//TS_PH3_ccmodbus_ack ccmodbus_ack; U8 ccmodbus_len = 0; -vU8 gprsTcpPkg_Signin[LEN_GPRS_TCP_PKG_AT_SIGNIN] = {0xFF,0xFE,0x0,0x2A}; -vU8 gprsdataack[LEN_GPRS_TCP_DATA_ACK] = {0xFF,0xFE,0x0,0x4,0x11,0x95,0x8F,0xCD}; void Lu_register_init() { U8 i = 0; G.p.slaverId = 0x10; - G.p.wisdom_car_no = 0x01; + G.p.wisdom_car_no = 0x91; G.p.thrombolytic_ratio = 9; //0.9 - G.p.bolus_ratio = 9; //0.9 - G.p.hold_ratio = 1; //0.1 + G.p.bolus_ratio = 1; //0.9 + G.p.hold_ratio = 9; //0.1 - G.total_weight = 50000; - G.thrombolytic_val = G.bolus_val = G.hold_val = 40000; - G.asga.xaxis = G.asga.yaxis = G.asga.zaxis = 22; + G.total_weight = 0; + G.thrombolytic_val = G.bolus_val = G.hold_val = 0; + G.asga.xaxis = G.asga.yaxis = G.asga.zaxis = 0; G.rfid = 0; + for(i=0;i<4;i++) + { + G.weight[i] = 0; + } + for(i=0;i 0x1FF) - { - paper = 0x1FF; - } - if(paper < 0) - { - paper = ~paper + 1; - paper |= 1<<9; - } - else - { - paper &= ~(1<<9); - } - paper &= 0x3FF; - return paper; -} - -static void resetToIsp() -{ - if(s_nos_tick.t_1s < G.lastResetToISPCmdTimeInSeconds) - { - //isp - IAP_CONTR = 0x60; - //disable wdt - } - else - { - G.lastResetToISPCmdTimeInSeconds = s_nos_tick.t_1s + 2; //2s(1s-2s) - } -} - -U8 L2_constructor_ccmodbus_ack(TS_PH3_ccmodbus_ack *pccmodbus, U8 addr, U8 oper, U8 *buf, U8 len) -{ - pccmodbus->filter1 = 0xFF; - pccmodbus->filter2 = 0xFE; - pccmodbus->num0 = (len + 4) >> 8 & 0xFF; - pccmodbus->num1 = (len + 4) >> 0 & 0xFF; - pccmodbus->addr = addr; - pccmodbus->oper = oper; - byte_copy_uc((U8*)&pccmodbus->buf, buf, len); - crc16(pccmodbus->crc, &pccmodbus->addr, len + 2); - pccmodbus->buf[len] = pccmodbus->crc[1]; - pccmodbus->buf[len+1] = pccmodbus->crc[0]; - return len + 6 + 2; -} - -int L2_ph3_common_send(U8 dst, void *buf, U8 len) -{ - switch(dst) - { - case ADDR_UPPER: - L0_uart0_sendArray(buf,len); - break; - case ADDR_SERVER: - L3_gm35_send(buf, len); - L0_uart0_uc('S'); - break; - default: - break; - } - return 0; -} - -void L2_do_uart_report(void) -{ - TS_Printer_Report report_ack; - - byte_copy_uc(&report_ack.papers[0],&G.papers[0],3); - byte_copy_uc(&report_ack.papers[1],&G.papers[1],3); - byte_copy_uc(&report_ack.boardstatus,&G.boardstatus,3); - report_ack.ir = 0; - - ccmodbus_len = L2_constructor_ccmodbus_ack(&ccmodbus_ack, ADDR_UPPER, OPER_REPORT, (U8 *)&report_ack, sizeof(report_ack)); - L2_ph3_common_send(ADDR_UPPER,(U8 *)&ccmodbus_ack,ccmodbus_len); -} - -void L2_gprs_send_signin_pkg(void) -{ - libc_memcpy(gprsTcpPkg_Signin+4,G.ccid,20); - gprsTcpPkg_Signin[24] = ','; - libc_memcpy(gprsTcpPkg_Signin+25,G.ccid_passwd,21); - L2_ph3_common_send(ADDR_SERVER,(U8 *)&gprsTcpPkg_Signin,LEN_GPRS_TCP_PKG_AT_SIGNIN); -} - -void L2_gprs_send_ack_pkg(void) -{ - L2_ph3_common_send(ADDR_SERVER,(U8 *)&gprsdataack,LEN_GPRS_TCP_DATA_ACK); -} - -void L2_gprs_send_heart_pkg(void) -{ - TS_gprs_heart gprs_heart; - gprs_heart.version = APP_VERSION_HEX; - ccmodbus_len = L2_constructor_ccmodbus_ack(&ccmodbus_ack, ADDR_SERVER, OPER_GPRS_HEART, (U8 *)&gprs_heart, sizeof(gprs_heart)); - L2_ph3_common_send(ADDR_SERVER,(U8 *)&ccmodbus_ack,ccmodbus_len); -} - -void L2_gprs_send_report_pkg(void) -{ - TS_Printer_Report report_ack; - - byte_copy_uc(&report_ack.papers[0],&G.papers[0],3); - byte_copy_uc(&report_ack.papers[1],&G.papers[1],3); - byte_copy_uc(&report_ack.boardstatus,&G.boardstatus,3); - report_ack.ir = 0; - - ccmodbus_len = L2_constructor_ccmodbus_ack(&ccmodbus_ack, ADDR_SERVER, OPER_GPRS_REPORT, (U8 *)&report_ack, sizeof(report_ack)); - L2_ph3_common_send(ADDR_SERVER,(U8 *)&ccmodbus_ack,ccmodbus_len); -} - -void L2_do_angle_setid(U8 *buf) -{ - TS_Angle_SetId *ts_angle_setid = (TS_Angle_SetId*)buf; - TS_PH1A_DAT ph1a; - ph1a.filter = D_HETU_FXA; - ph1a.id = SLAVER_ID_N; - ph1a.oper = OPER_ANGLE_SET_ID; - ph1a.xaxis[0] = ts_angle_setid->id; - ph1a.xaxis[1] = ts_angle_setid->id; - ph1a.yaxis[0] = ts_angle_setid->id; - ph1a.yaxis[1] = ts_angle_setid->id; - ph1a.zaxis[0] = ts_angle_setid->id; - ph1a.zaxis[1] = ts_angle_setid->id; - L0_uart2_sendArray(&ph1a,sizeof(TS_PH1A_DAT)); -} - -void L2_do_angle_setid_ack(U8 id) -{ - TS_Angle_SetId ts_setid_ack; - ts_setid_ack.id = id; - ccmodbus_len = L2_constructor_ccmodbus_ack(&ccmodbus_ack, ADDR_UPPER, OPER_SET_485_ID, (U8 *)&ts_setid_ack, sizeof(ts_setid_ack)); - L0_uart0_sendArray((U8 *)&ccmodbus_ack,ccmodbus_len); -} - -void L2_do_paper_count(U8 *buf) -{ - TS_Paper_Count_Ack paper_count_ack; - TS_Paper_Count *ts_paper = (TS_Paper_Count*)buf; - U16 num = 0; - - if(ts_paper->no >= PAPER_BOX_NUM) - { - L0_uart0_uc('x'); - return; - } - num = L2_paper_count(ts_paper->no,G.currentSensorVal[ts_paper->no]); - paper_count_ack.no = ts_paper->no; - paper_count_ack.num[0] = num >> 8 & 0xFF; - paper_count_ack.num[1] = num >> 0 & 0xFF; - ccmodbus_len = L2_constructor_ccmodbus_ack(&ccmodbus_ack, ADDR_UPPER, OPER_PAPER_COUNT, (U8 *)&paper_count_ack, sizeof(paper_count_ack)); - L0_uart0_sendArray((U8 *)&ccmodbus_ack,ccmodbus_len); -} - -void L2_do_calib_read(U8 *buf) -{ - TS_Paper_Upper_calib_ack upper_calib_ack; - TS_Paper_Upper_Calib_Read *ts_calib = (TS_Paper_Upper_Calib_Read*)buf; - - if(ts_calib->no >= PAPER_BOX_NUM) - { - L0_uart0_uc('x'); - return; - } - upper_calib_ack.num0 = G.paperCalibs[ts_calib->no].num0; - upper_calib_ack.angle0 = G.paperCalibs[ts_calib->no].angle0; - upper_calib_ack.num1 = G.paperCalibs[ts_calib->no].num1; - upper_calib_ack.angle1 = G.paperCalibs[ts_calib->no].angle1; - ccmodbus_len = L2_constructor_ccmodbus_ack(&ccmodbus_ack, ADDR_UPPER, OPER_CALIB_READ, (U8 *)&upper_calib_ack, sizeof(upper_calib_ack)); - L0_uart0_sendArray((U8 *)&ccmodbus_ack,ccmodbus_len); -} - -void L2_do_calib(U8 *buf) -{ - TS_Paper_Upper_calib_ack upper_calib_ack; - TS_Paper_Upper_Calib *ts_calib = (TS_Paper_Upper_Calib*)buf; - if(ts_calib->no >= PAPER_BOX_NUM || ts_calib->point >= 2) - { - L0_uart0_uc('x'); - return; - } - - switch(ts_calib->point) - { - case 0: - { - G.paperCalibs[ts_calib->no].num0 = (U16)(ts_calib->paperNum0) << 8 | ts_calib->paperNum1; - G.paperCalibs[ts_calib->no].angle0 = G.currentSensorVal[ts_calib->no]; - break; - } - case 1: - { - G.paperCalibs[ts_calib->no].num1 = (U16)(ts_calib->paperNum0) << 8 | ts_calib->paperNum1; - G.paperCalibs[ts_calib->no].angle1 = G.currentSensorVal[ts_calib->no]; - break; - } - } - - L3_flash_write_page0(); //??Flash - - upper_calib_ack.num0 = G.paperCalibs[ts_calib->no].num0; - upper_calib_ack.angle0 = G.paperCalibs[ts_calib->no].angle0; - upper_calib_ack.num1 = G.paperCalibs[ts_calib->no].num1; - upper_calib_ack.angle1 = G.paperCalibs[ts_calib->no].angle1; - ccmodbus_len = L2_constructor_ccmodbus_ack(&ccmodbus_ack, ADDR_UPPER, OPER_CALIB, (U8 *)&upper_calib_ack, sizeof(upper_calib_ack)); - L0_uart0_sendArray((U8 *)&ccmodbus_ack,ccmodbus_len); -} - -void L2_do_calib_enter(void) -{ - G.runmode = MODE_PAPER_CALIB; - ccmodbus_len = L2_constructor_ccmodbus_ack(&ccmodbus_ack, ADDR_UPPER, OPER_CALIB_MODE, NULL, 0 ); - L0_uart0_sendArray((U8 *)&ccmodbus_ack,ccmodbus_len); -} - -void L2_do_calib_leave(void) -{ - G.runmode = MODE_RUN; - ccmodbus_len = L2_constructor_ccmodbus_ack(&ccmodbus_ack, ADDR_UPPER, OPER_CALIB_LEAVE, NULL, 0 ); - L0_uart0_sendArray((U8 *)&ccmodbus_ack,ccmodbus_len); -} -void L3_protocol_handler_uart0_fun(TS_PH3_ccmodbus *p,U8 from) //0???????????????????a9 -{ - switch(p->oper) - { - case OPER_CALIB_MODE: - L2_do_calib_enter(); - break; - case OPER_CALIB_LEAVE: - L2_do_calib_leave(); - break; - case OPER_CALIB: - L2_do_calib(p->buf); - break; - case OPER_CALIB_READ: - L2_do_calib_read(p->buf); - break; - case OPER_PAPER_COUNT: - L2_do_paper_count(p->buf); - break; - case OPER_SET_485_ID: - L2_do_angle_setid(p->buf); - break; - case OPER_RELAY: - L2_do_relay(p->buf); - if(from == 1) - { - L0_uart0_uc('R'); - L0_uart0_uchex(p->buf[0]); - L0_uart0_uchex(p->buf[1]); - g_at_send_status.ack_flag = 1; //?????????????? - } - break; - case OPER_ISP: //ResetToISP???????????????? - L0_uart0_uc('P'); - resetToIsp(); - break; - case 0x00: //????? - L0_uart0_uc('H'); - break; - case 0x99: //?????????? - G.runmode = p->buf[1] & 0x0F; - Lc_print_buf("Version: %s\r\n",APP_VERSION); - Lc_delay_ms(700);// 2000--7s - break; - default: - break; - }; -} - -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/source/app/app_common.h b/source/app/app_common.h index 35198ed..8bdc51e 100644 --- a/source/app/app_common.h +++ b/source/app/app_common.h @@ -193,27 +193,17 @@ typedef struct printer_maintenance_global U16 hold_val; CCAsGaInfo asga; U16 rfid; - U16 reserved2[16 - 9]; + S32 weight[4]; + //U16 reserved2[16 - 9]; MD_SLAVER_INFO md_slaver_info[MD_SLAVER_INFO_MAX]; CCMD_SLAVER_INFO ccmd_slaver_info[CCMD_SLAVER_INFO_MAX]; vU32 modbusstmp; U16 flowStart; - U8 ccid[21]; //保存ccid卡号空间 20+'\0' TS_BoardStatus boardstatus; -#if 0 - TS_PaperCalib paperCalibs[PAPER_BOX_NUM]; - U16 currentSensorVal[PAPER_BOX_NUM]; //当前纸张传感输出 - - TS_P_paper papers[PAPER_BOX_NUM]; - U8 runmode; //运行模式 - U32 lastResetToISPCmdTimeInSeconds; //isp reset time - - U8 ccid_passwd[22]; //保存ccid密码空间 21+'\0' -#endif }PMGlobal; @@ -227,17 +217,7 @@ typedef struct printer_maintenance_global extern struct printer_maintenance_global G; extern void Lu_register_init(void); -extern U16 L2_paper_count(U8 index, U32 angle); - -extern void L3_protocol_handler_uart0_fun(TS_PH3_ccmodbus *pPara,U8 from); -extern void L3_protocol_handler_uart4_fun(U8 *pPara,U8 from); -//extern U8 L2_constructor_ccmodbus_ack(TS_PH3_ccmodbus_ack *pccmodbus, U8 addr, U8 oper, U8 *buf, U8 len); -extern void L2_do_uart_report(void); -extern void L2_gprs_send_signin_pkg(void); -extern void L2_gprs_send_ack_pkg(void); -extern void L2_gprs_send_heart_pkg(void); -extern void L2_gprs_send_report_pkg(void); -extern void L2_do_angle_setid_ack(U8 id); +extern void L3_protocol_handler_uart4_fun(U8 *pPara); #endif diff --git a/source/app/app_drv.c b/source/app/app_drv.c index 5ced68d..1b44588 100644 --- a/source/app/app_drv.c +++ b/source/app/app_drv.c @@ -57,7 +57,7 @@ void L3_UARTcom4_exp_protocol(TS_Handle_0d0a *p) p->ok = 0; array[num] = 0; - L3_protocol_handler_uart4_fun(array,0); + L3_protocol_handler_uart4_fun(array); } } diff --git a/source/app/app_task_485.c b/source/app/app_task_485.c index e30e507..c084c2f 100644 --- a/source/app/app_task_485.c +++ b/source/app/app_task_485.c @@ -30,24 +30,6 @@ void L3_task_485_handle(TS_485 *s) L2_task_go(D_task_485_constructor_modbus_pkg); TTSS_Task_step(D_task_485_constructor_modbus_pkg) - #if 0 - if(s->slaverIndex == 1) - { - L0_uart0_uc(s->slaverIndex); - Lc_delay_ms(100); - L0_uart0_uc(G.md_slaver_info[s->slaverIndex].slaver); - Lc_delay_ms(100); - L0_uart0_uc(G.md_slaver_info[s->slaverIndex].oper); - Lc_delay_ms(100); - L0_uart0_uc(G.md_slaver_info[s->slaverIndex].reg); - Lc_delay_ms(100); - L0_uart0_uc(G.md_slaver_info[s->slaverIndex].regnum); - Lc_delay_ms(100); - L0_uart0_uc(G.md_slaver_info[s->slaverIndex].bytes); - Lc_delay_ms(100); - L0_uart0_uc(G.md_slaver_info[s->slaverIndex].mask); - } - #endif if(G.md_slaver_info[s->slaverIndex].mask > 0) { s->pkglen = L3_pack_modbus(&s->loopPkg,G.md_slaver_info + s->slaverIndex); @@ -61,9 +43,6 @@ void L3_task_485_handle(TS_485 *s) } TTSS_Task_step(D_task_485_send_modbus_pkg) - //Lc_delay_ms(70); - //L0_uart2_uc(s->pkglen); - //Lc_delay_ms(70); L0_uart2_sendArray((U8*)&s->loopPkg,s->pkglen); s->sendStamp = s_nos_tick.t_5ms; L2_task_go(D_task_485_wait_modbus_ack); @@ -78,12 +57,19 @@ void L3_task_485_handle(TS_485 *s) if(s->pAckPkg->salver == G.md_slaver_info[s->slaverIndex].slaver) { s->ackFlag = 1; + //TODO 这里可以根据modbus协议让代码通用, if(s->pAckPkg->salver == G.md_slaver_info[0].slaver && s->pAckPkg->oper == MODBUS_OPER_READ) { 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) + { + 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]); + } } } s->retryTimes++; diff --git a/source/app/app_task_gm35.c b/source/app/app_task_gm35.c index 34571fc..92389b1 100644 --- a/source/app/app_task_gm35.c +++ b/source/app/app_task_gm35.c @@ -216,7 +216,7 @@ void L2_task_gm35_daemon_handle(struct _s_task_gm35_gprs_ *s) #define TTSS_TASK_GM35_FLOW_CIPSTART_WAIT 0x0A #define TTSS_TASK_GM35_FLOW_CIPSTART_SUCCESS 0x0B -#define INS_TIMEOUT 2 +#define INS_TIMEOUT 10 #define GM35_SEND_DATA_INTERVAL 300 #define GM35_SEND_HEART_INTERVAL 60 #define GM35_SEND_CIPSTATUS_INTERVAL 5 @@ -260,10 +260,9 @@ void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s) if(1 == g_at_send_status.sim_ok) { //Lc_print_buf("ccid: %s,",G.ccid); - L0_uart0_uc('C'); L0_uart0_sendArray(G.ccid,20); Lc_delay_ms(100);// 2000--7s - L0_uart0_uc('S'); + //L0_uart0_uc('S'); //L0_uart0_sendArray(G.ccid_passwd,21); //Lc_print_buf("%s\r\n",G.ccid_passwd); @@ -291,6 +290,7 @@ void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s) TTSS_Task_step(TTSS_TASK_GM35_FLOW_CREG_WAIT) if(1 == g_at_send_status.net_ok) { + L0_uart0_sendstr("net ok"); G.boardstatus.a9Status = STATUS_GM35_NET_OK;//修改状态 L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_GPRS,0); } @@ -315,6 +315,7 @@ void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s) TTSS_Task_step(TTSS_TASK_GM35_FLOW_GPRS_WAIT) if(1 == g_at_send_status.gprs_ok) { + L0_uart0_sendstr("gprs ok"); G.boardstatus.a9Status = STATUS_GM35_GPRS_OK;//修改状态 L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_CIPSTART,0); } @@ -331,6 +332,8 @@ void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s) } TTSS_Task_step(TTSS_TASK_GM35_FLOW_CIPSTART) + L0_uart0_uc('L'); + L0_uart0_uc( g_at_send_status.conn_ok + '0'); L0_uart4_sendstr(AT_INS_CIPSTART); g_at_send_status.conn_ok = 0; g_at_send_status.ins_stmp = s_nos_tick.t_1s; @@ -339,6 +342,7 @@ void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s) TTSS_Task_step(TTSS_TASK_GM35_FLOW_CIPSTART_WAIT) if(1 == g_at_send_status.conn_ok) { + L0_uart0_sendstr("conn ok"); //L3_task_gm35_send_init(); //初始化发送任务 g_at_send_status.heart_stmp = s_nos_tick.t_1s; diff --git a/source/app/app_task_gm35.h b/source/app/app_task_gm35.h index 021ee01..5bf1d5d 100644 --- a/source/app/app_task_gm35.h +++ b/source/app/app_task_gm35.h @@ -24,7 +24,8 @@ #define AT_INS_CCID "AT+CCID\r\n" //SIM卡查询指令 #define AT_INS_CREG "AT+CREG?\r\n" //网络查询指令 #define AT_INS_GPRS "AT+CGATT=1;+CGDCONT=1,\"IP\",\"CMNET\";+CGACT=1,1\r\n" //GPRS操作指令 -#define AT_INS_CIPSTART "AT+CIPSTART=\"TCP\",\"test.tall.wiki\",8195\r\n" +#define AT_INS_CIPSTART "AT+CIPSTART=\"TCP\",\"test.tall.wiki\",38195\r\n" +//#define AT_INS_CIPSTART "AT+CIPSTART=\"TCP\",\"43.249.193.233\",38916\r\n" //#define AT_INS_CIPSTART "AT+CIPSTART=\"TCP\",\"weizezhao.imwork.net\",49809\r\n" //连接服务器 // #define AT_INS_CIPSTART "AT+CIPSTART=\"TCP\",\"43.249.193.233\",38916\r\n" //连接服务器 #define AT_INS_CIPSEND "AT+CIPSEND\r\n" //发送数据 diff --git a/source/app/app_task_tcp.c b/source/app/app_task_tcp.c index 629c98f..7080817 100644 --- a/source/app/app_task_tcp.c +++ b/source/app/app_task_tcp.c @@ -1,6 +1,7 @@ #include "app_task_tcp.h" #include "../msp/uart0.h" #include "../msp/uart4.h" +#include "../app/app_task_gm35.h" #include "../app/app_common.h" #define MODBUS_SLAVER_DW20_REG_START 0x02 @@ -43,12 +44,14 @@ void L3_task_tcp_handle(TS_tcp *s) } TTSS_Task_step(D_task_tcp_send_modbus_pkg) - L0_uart4_sendArray((U8*)&s->loopPkg,s->pkglen); + + //L0_uart0_sendArray((U8*)&s->loopPkg,s->pkglen); + L3_gm35_send((U8*)&s->loopPkg,s->pkglen); s->sendStamp = s_nos_tick.t_5ms; L2_task_go(D_task_tcp_wait_modbus_ack); TTSS_Task_step(D_task_tcp_wait_modbus_ack) - if(s_nos_tick.t_5ms - s->sendStamp >= 20) + if(s_nos_tick.t_5ms - s->sendStamp >= 200) { if(s_uart4_tcp_rec.ok) { @@ -57,12 +60,6 @@ void L3_task_tcp_handle(TS_tcp *s) if(s->pAckPkg->slaver == G.ccmd_slaver_info[s->slaverIndex].slaver) { s->ackFlag = 1; - if(s->pAckPkg->slaver == G.ccmd_slaver_info[0].slaver && s->pAckPkg->oper == MODBUS_OPER_READ) - { - 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]); - } } } s->retryTimes++; diff --git a/source/app/app_task_tcp_control.c b/source/app/app_task_tcp_control.c index c3575d7..e68de96 100644 --- a/source/app/app_task_tcp_control.c +++ b/source/app/app_task_tcp_control.c @@ -2,6 +2,7 @@ #include "../msp/uart0.h" #include "../app/app_common.h" #include "../app/app_task_gm35.h" +#include "../app/app_task_tcp.h" TS_tcp_control ts_tcp_control; @@ -25,6 +26,8 @@ void L3_task_tcp_control_handle(TS_tcp_control *s) { if(g_at_send_status.conn_ok) { + L3_task_tcp_init(); + //发送认证包 G.ccmd_slaver_info[0].mask = 1; @@ -38,10 +41,10 @@ void L3_task_tcp_control_handle(TS_tcp_control *s) } s->conn_ok_pool = g_at_send_status.conn_ok; } - + if(s->conn_ok_pool) { - if(s_nos_tick.t_1s - ts_tcp_control.tcp_send_stmp >= 4) + if(s_nos_tick.t_1s - ts_tcp_control.tcp_send_stmp >= 3) { G.ccmd_slaver_info[3].mask = 1; ts_tcp_control.tcp_send_stmp = s_nos_tick.t_1s; diff --git a/source/app/main.c b/source/app/main.c index 2f5260a..b48baab 100644 --- a/source/app/main.c +++ b/source/app/main.c @@ -97,6 +97,8 @@ void L0_main_init(void) L3_task_gm35_core_init(); L3_task_485_init(); //485轮询任务初始化 L3_task_485_control_init(); + L3_task_tcp_init(); //485轮询任务初始化 + L3_task_tcp_control_init(); } //=============================================== @@ -139,7 +141,6 @@ void main(void) //master->slaver发送逻辑控制 L3_task_485_control_handle(&ts_485_control); -#if 0 //gm35维持连接 L3_task_gm35_core_handle(); L3_UARTcom4_exp_protocol(&s_uart4_at_rec); @@ -149,31 +150,6 @@ void main(void) //master->slaver发送逻辑控制 L3_task_tcp_control_handle(&ts_tcp_control); -#endif - -#if 0 - //看门狗 - L3_task_wdt_handle(&s_task_wdt); - - //每隔n秒,主动向上位机发送心跳包 - //L3_task_report_handle(&s_task_report); - - //解析串口0协议(上位机发送的控制消息) - L3_UARTcom0_exp_protocol(&s_uart0_rec); - - //gsm模块初始化+tcp发送消息 - //L3_task_a9_handle(); - L3_task_gm35_core_handle(); - - //解析串口4协议(gsm模块收到的at响应消息+服务器发送消息) - L3_UARTcom4_exp_protocol(&s_uart4_at_rec); - - //解析串口4+CIPRCV协议 - L3_task_a9_rcv_handle(&s_uart4_tcp_rec); - - //继电器PC按键弹起 - L3_task_relay_handle(&s_task_relay); -#endif } }//end main diff --git a/source/ctask/tick.h b/source/ctask/tick.h index 4c66eab..c006f91 100644 --- a/source/ctask/tick.h +++ b/source/ctask/tick.h @@ -35,16 +35,16 @@ extern struct _s_nos_tick_ s_nos_tick; //D_debug_sim_usinghhh //10ms 不能使用,10ms是最小颗粒时长,存在误差,无法使用 -#define D_Tdelay_ms D_TIMER0_50MS_COUNT//D_TIMER0_10MS_COUNT +#define D_Tdelay_5ms D_TIMER0_5MS_COUNT//D_TIMER0_10MS_COUNT -#define D_Tdelay_100ms (D_Tdelay_ms+2) -#define D_Tdelay_200ms (D_Tdelay_ms+4) -#define D_Tdelay_300ms (D_Tdelay_ms+6) -#define D_Tdelay_400ms (D_Tdelay_ms+8) +#define D_Tdelay_100ms (D_Tdelay_5ms+20) +#define D_Tdelay_200ms (D_Tdelay_5ms+40) +#define D_Tdelay_300ms (D_Tdelay_5ms+60) +#define D_Tdelay_400ms (D_Tdelay_5ms+80) -#define D_Tdelay_1s (D_Tdelay_ms+20) +#define D_Tdelay_1s (D_Tdelay_5ms+200) #define D_Tdelay_2s (D_Tdelay_1s*2) #define D_Tdelay_3s (D_Tdelay_1s*3) #define D_Tdelay_5s (D_Tdelay_1s*5) diff --git a/source/msp/time.h b/source/msp/time.h index dd07b55..c580a67 100644 --- a/source/msp/time.h +++ b/source/msp/time.h @@ -13,6 +13,7 @@ extern void L0_timer0_Init(void); //#define D_TIMER0_10MS_COUNT 1 //定时器为 10ms一中断 #define D_TIMER0_50MS_COUNT 1 //定时器为 50ms一中断 +#define D_TIMER0_5MS_COUNT 1 //定时器为 50ms一中断 #define D_1us_delay_para 1 diff --git a/source/tpc/tpc_ccmodbus.h b/source/tpc/tpc_ccmodbus.h index 117e161..a78471a 100644 --- a/source/tpc/tpc_ccmodbus.h +++ b/source/tpc/tpc_ccmodbus.h @@ -66,7 +66,7 @@ msp/uartx.c 底层代码 和cpu相关 /// 协议表达的意思为地址为0x52的从机, 功能码16 数据为11 22 33 44,校验码 F5 9F /// 校验码的范围为 -#define D_s_PH3_ccmodbus_max 64 +#define D_s_PH3_ccmodbus_max 128 #define D_s_PH3_ccmodbus_min 4 typedef struct