From 200b189621e1f9a53982eb14832b42c7df55f90c Mon Sep 17 00:00:00 2001 From: zhangsan Date: Fri, 10 Dec 2021 21:34:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86w600=20station?= =?UTF-8?q?=E6=B5=81=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- keilp/cc_as_stc02_ps5ws.uvprojx | 92 +++++---- si4/ps5ws.si4project/soft_ps5ws.sip_xc | Bin 99688 -> 107784 bytes si4/ps5ws.si4project/soft_ps5ws.sip_xf | Bin 99688 -> 107784 bytes si4/ps5ws.si4project/soft_ps5ws.sip_xm | Bin 196 -> 212 bytes si4/ps5ws.si4project/soft_ps5ws.sip_xr | Bin 99688 -> 107784 bytes si4/ps5ws.si4project/soft_ps5ws.siproj | Bin 16584 -> 17896 bytes source/app/app_config.c | 14 +- source/app/app_config.h | 6 +- source/app/main.c | 83 +++----- source/app/main.h | 3 +- source/app/task_modbus.c | 14 +- source/app/task_w600.c | 273 +++++++++++++++++++++++++ source/app/task_w600.h | 99 +++++++++ source/bsp/bsp_config.h | 6 +- source/bsp/bsp_config_const.h | 1 + source/bsp/w600.c | 15 +- source/bsp/w600.h | 17 +- source/clib/clib.c | 150 ++------------ source/clib/clib.h | 5 +- source/msp/UART2.C | 31 +-- source/tpc/0d0a.c | 47 ----- source/tpc/0d0a.h | 33 --- source/tpc/at0d0a.c | 37 ++++ source/tpc/at0d0a.h | 23 +++ 24 files changed, 588 insertions(+), 361 deletions(-) create mode 100644 source/app/task_w600.c create mode 100644 source/app/task_w600.h delete mode 100644 source/tpc/0d0a.c delete mode 100644 source/tpc/0d0a.h create mode 100644 source/tpc/at0d0a.c create mode 100644 source/tpc/at0d0a.h diff --git a/keilp/cc_as_stc02_ps5ws.uvprojx b/keilp/cc_as_stc02_ps5ws.uvprojx index 57f3e1d..3d0d2ce 100644 --- a/keilp/cc_as_stc02_ps5ws.uvprojx +++ b/keilp/cc_as_stc02_ps5ws.uvprojx @@ -10,6 +10,7 @@ STC8F2K16S2 0x0 MCS-51 + 0 AT80C31X2 @@ -176,12 +177,14 @@ 0 0 0 + 0 0 0 0 0 0 0 + 0 0 0 0 @@ -251,6 +254,16 @@ 0x0 0x0 + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + @@ -327,16 +340,6 @@ 1 ..\source\app\main.c - - task_adc.c - 1 - ..\source\app\task_adc.c - - - task_debug.c - 1 - ..\source\app\task_debug.c - task_register.c 1 @@ -353,19 +356,34 @@ ..\source\app\app_config.c - task_encrypt.c + task_w600.c 1 - ..\source\app\task_encrypt.c + ..\source\app\task_w600.c - cpu + bsp - STARTUP.A51 - 2 - ..\source\cpu\STARTUP.A51 + bsp_config.c + 1 + ..\source\bsp\bsp_config.c + + + chipid.c + 1 + ..\source\bsp\chipid.c + + + rs485.c + 1 + ..\source\bsp\rs485.c + + + w600.c + 1 + ..\source\bsp\w600.c @@ -377,11 +395,6 @@ 1 ..\source\msp\time.c - - UART0.C - 1 - ..\source\msp\UART0.C - eeprom.c 1 @@ -393,34 +406,24 @@ ..\source\msp\uart_x.c - UART2.C + uart0.c 1 - ..\source\msp\UART2.C + ..\source\msp\uart0.c + + + uart2.c + 1 + ..\source\msp\uart2.c - bsp + cpu - bsp_config.c - 1 - ..\source\bsp\bsp_config.c - - - chipid.c - 1 - ..\source\bsp\chipid.c - - - cs1232.c - 1 - ..\source\bsp\cs1232.c - - - rs485.c - 1 - ..\source\bsp\rs485.c + STARTUP.A51 + 2 + ..\source\cpu\STARTUP.A51 @@ -452,6 +455,11 @@ 1 ..\source\tpc\ccmodbus.c + + at0d0a.c + 1 + ..\source\tpc\at0d0a.c + diff --git a/si4/ps5ws.si4project/soft_ps5ws.sip_xc b/si4/ps5ws.si4project/soft_ps5ws.sip_xc index 84739e8194f8de70d6318974afe46cc040ea4e7d..40b5d689435054cf60f2b97d59e16f44d84c7466 100644 GIT binary patch delta 3386 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 diff --git a/si4/ps5ws.si4project/soft_ps5ws.sip_xm b/si4/ps5ws.si4project/soft_ps5ws.sip_xm index 552e261c8c2ef8d546cec4e6aa306e04703d9fa1..e66a57611bcf4b8c29948372beb3076256f5e6af 100644 GIT binary patch literal 212 zcmWN{RSp6H6a&BqEG+JBi@U@9&&D*Fv>)w7M3)U~DjX>AqQRCEN2=5qGhxmQNplfN r-q=%OLB^RCOI_-(<;RqSr+V-QBxD7B literal 196 zcmWl|i4uWO006+}&P@_Iik!Ls|La;ivx^WyY~QObf8M=0aOm31om>AJHoe$&Z{f+Y hM@tV@PMjLq^WoEvUpuaR`F7^q#HD9P=B93JTLZxB1epK; diff --git a/si4/ps5ws.si4project/soft_ps5ws.sip_xr b/si4/ps5ws.si4project/soft_ps5ws.sip_xr index 94f09a55243e4ea0325e1f73e754463b84f68aa7..c56b8be9391ce149de0c46194e9851601ae94a59 100644 GIT binary patch delta 5660 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 delta 795 zcmY+COGs2v7{|}K^SYz+$QdVZchvDN%EreyL#BeFh{iMLRC5&MK|qsC*k$6RGpriyw>86G-@3V(2C$2CXkBP0jk zt?IHplgeyx#Ll%kXdO7-pfP9T5A9ECpe$Se{oa z2_#}jyn>z0VS7Ao)|D%%<6e>K*W&Rwo6M>-><*meQ+;2b>YbjDFIa?(0H=D0Karm! zC52iqoH$Ywtj8XT8jJpk{6^#eB5vrMKpl@ny{W9PKyToBGgHcc%GsTr-jtUy8a1OV z{4}_nl6~B7@<>>-jiQquyc6qu0wI^MxO6D#Y`DkaNAh1$ebn3l diff --git a/source/app/app_config.c b/source/app/app_config.c index 7b12a8d..8f495a9 100644 --- a/source/app/app_config.c +++ b/source/app/app_config.c @@ -9,18 +9,18 @@ GlobalRegister R; void L3_param_init(void) { - //station模式状态 - G.st_status = 0; //0:none 1:wifi_ok 2:tcp_connect_ok + //station模式状态 + G.st_status = 0; //0:none 1:wifi_ok 2:tcp_connect_ok //station模式sid - Lc_strcpy(G.st_sid,"ccsens"); + Lc_strcpy(G.st_sid,"ccsens"); //station模式pwd - Lc_strcpy(G.st_pwd,"ccsens123"); + Lc_strcpy(G.st_pwd,"ccsens123"); //ap模式状态 - G.ap_status = 0;//0: none 1: ap_ok 2:tcp_server_ok + G.ap_status = 0;//0: none 1: ap_ok 2:tcp_server_ok //ap模式sid - Lc_strcpy(G.ap_sid,"cc_pen_ap"); + Lc_strcpy(G.ap_sid,"cc_pen_ap"); //ap模式pwd - Lc_strcpy(G.ap_pwd,"ccsens123"); + Lc_strcpy(G.ap_pwd,"ccsens123"); } diff --git a/source/app/app_config.h b/source/app/app_config.h index 02af46d..40d18ef 100644 --- a/source/app/app_config.h +++ b/source/app/app_config.h @@ -70,8 +70,10 @@ extern GlobalRegister R; //STEP 2 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Global Variables CONFIG typedef struct global_param { - //station模式状态 - U8 st_status; //0:none 1:wifi_ok 2:tcp_connect_ok + //调试模式 + U8 debug; + //station模式状态 + U8 st_status; //0:none 1:wifi_ok 2:tcp_connect_ok //station模式sid U8 st_sid[32]; //station模式pwd diff --git a/source/app/main.c b/source/app/main.c index 1ec6f84..d6266af 100644 --- a/source/app/main.c +++ b/source/app/main.c @@ -60,18 +60,6 @@ stc5ac32s 驱动: cam 参数设置及中断 - - - - - - - - - - - - ************************************************/ //=============================================== //寄存器头文件 @@ -82,28 +70,35 @@ stc5ac32s void L0_main_init(void) { Lc_delay_ms(200); - L0_board_config(); - L0_uart0_buf_init();//串口初始化 - L0_uart2_buf_init();//串口初始化 - //L0_uart3_buf_init();//串口初始化 - EA = 1; + //板卡初始化 + L0_board_config(); + //串口0初始化 + L0_uart0_buf_init(); + //串口2初始化 + L0_uart2_buf_init(); + //串口3初始化 + //L0_uart3_buf_init(); //Lc_delay_ms(100); L1_tick_init(); + + //开启全局中断 + EA = 1; + + //系统时钟初始化 L0_timer0_Init(); + + //G初始化 L3_param_init(); + //R初始化 L3_reg_init(); + //485初始化 L2_485_init(); - - L0_ADS1213_INIT(); - -// L3_task_adc_init(0); -// L3_task_adc_init(1); -// L3_task_adc_init(2); -// L3_task_adc_init(3); - L3_task_debug_init(); - L3_task_show_init(); + + //寄存器监听任务初始化 L3_task_reglisten_init(); - L0_uart0_sendArray("v2.7",4); + + //w600任务初始化 + L3_task_gm35_flow_init(W600_ST); } //=============================================== @@ -113,42 +108,24 @@ void main(void) { //初始化 L0_main_init(); - //验证加密信息 - //L3_encrypt_handler(); - //主循环 - //L0_timer1_restart(); + + //打印版本信息 + L0_uart0_sendArray("v1.0",4); + while(1) { if(1 == s_nos_tick.t1s_heatbeart) { s_nos_tick.t1s_heatbeart = 0; - //LED0 ^= 1; - + //LED0 ^= 1; } - - - - - //L1_ADS1213_main(); - - //单路采集滤波 - //L3_task_adc_handler(0); - //L3_task_adc_handler(1); - //L3_task_adc_handler(2); - //L3_task_adc_handler(3); - - //显示 - //L3_task_adc_filter_show(&ts_adc_blur_show); - + L2_task_gm35_flow_handle(&s_task_gm35_flow); //寄存器值监控 //L3_task_reglisten_handle(&s_task_reglisten); //输出,响应485协议 - L3_task_modbus_handler(&s_uart0_rec); - L3_task_modbus_handler2(&s_uart2_rec); - - //调试输出 - //L3_task_debug(&_s_task_debug); + //L3_task_modbus_handler(&s_uart0_rec); + //L3_task_modbus_handler2(&s_uart2_rec); } } //end main diff --git a/source/app/main.h b/source/app/main.h index d73f749..05cba94 100644 --- a/source/app/main.h +++ b/source/app/main.h @@ -53,8 +53,7 @@ #include "../app/task_debug.h" #include "../app/task_register.h" #include "../app/task_encrypt.h" - - +#include "../app/task_w600.h" ////////////////////////////////////////////////////////////////// diff --git a/source/app/task_modbus.c b/source/app/task_modbus.c index 69f2d28..da89416 100644 --- a/source/app/task_modbus.c +++ b/source/app/task_modbus.c @@ -205,13 +205,13 @@ void L3_task_modbus_handler(TP_Handler_X *ph4) } void L3_task_modbus_handler2(TP_Handler_X *ph4) { - if(s_uart2_rec.ok) - { - TS_PH4_modbus *ts_modbus = (TS_PH4_modbus *)ph4->buf; - //LED0 ^= 1; - s_uart2_rec.ok=0; - L0_uart0_sendArray(s_uart2_rec.buf, s_uart2_rec.num); - } + if(s_uart2_rec.ok) + { + TS_PH4_modbus *ts_modbus = (TS_PH4_modbus *)ph4->buf; + //LED0 ^= 1; + s_uart2_rec.ok=0; + L0_uart0_sendArray(s_uart2_rec.buf, s_uart2_rec.num); + } if(s_uart2_rec.yes) { s_uart2_rec.yes=0; diff --git a/source/app/task_w600.c b/source/app/task_w600.c new file mode 100644 index 0000000..2a91834 --- /dev/null +++ b/source/app/task_w600.c @@ -0,0 +1,273 @@ +//////////////////////////////////////////////////////////////////////////// +///@copyright Copyright (c) 2018, 传控科技 All rights reserved. +///------------------------------------------------------------------------- +/// @file bsp_test.c.c +/// @brief bsp @ driver config +///------------------------------------------------------------------------- +/// @version 1.0 +/// @author CC +/// @date 20180331 +/// @note cc_AS_stc02 +////////////////////////////////////////////////////////////////////////////// + +#include "task_w600.h" + +#include "app_config.h" +#include "../msp/uart0.h" +#include "../msp/uart2.h" +#include "../tpc/at0d0a.h" + +struct _s_task_gm35_gprs_ s_task_gm35_flow; + +#define LEN_GPRS_TCP_PKG 18 + +U8 ins_cipsend[30] = "AT+CIPSEND=000\r\n"; + +U8 * _cipsend_hex(U8 len) +{ + U8 pos = Lc_strlen("AT+CIPSEND="); + ins_cipsend[pos++] = len % 1000 / 100 + '0'; + ins_cipsend[pos++] = len % 100 / 10 + '0'; + ins_cipsend[pos++] = len % 10 / 1 + '0'; + + return ins_cipsend; +} + +void L3_gm35_send_str(U8 *str) +{ + L0_uart2_sendstr(str); + if(G.debug) + { + L0_uart0_sendstr(str); + } +} + +//将数据放入gm35待发送缓冲区 +void L3_gm35_send_data(U8 *buf , U8 len) +{ + L3_gm35_send_str(_cipsend_hex(len)); + L0_uart2_sendArray(buf,len); + if(G.debug) + { + L0_uart0_sendArray(buf,len); + } +} + +void L3_gm35_rcv_data(U8* buf,U8 num) +{ + if(G.debug) + { + L0_uart0_sendstr("ATRCV="); + L0_uart0_uchex(num); + L0_uart0_sendArray(buf,num); + } +} + + +void L3_uart2_exp_protocol(TS_Handle_0d0a *p) +{ + if (1 == p->ok ) + { + U8 *pPara = p->buf + 1; + s_task_gm35_flow.gprs_last_recv_stmp = s_nos_tick.t_1s; + if(Lc_strStartsWith(pPara,"OK")) + { + s_task_gm35_flow.ins_ok = 1; + } + + p->ok = 0; + } +} + + +//------------------------------------------------------ gm35 tasks -------------------------------- +void L3_task_gm35_flow_init(U8 mode) +{ + L1_task_init(&s_task_gm35_flow.task); + L3_task_s_go(s_task_gm35_flow,D_task_init); + s_task_gm35_flow.mode = mode; + +#if 0 + g_at_send_status.send_lock = 0; + g_at_send_status.module_ok = 0; + g_at_send_status.sim_ok = 0; + g_at_send_status.net_ok = 0; + g_at_send_status.gprs_ok = 0; + g_at_send_status.conn_ok = 0; + + g_at_send_status.ins_stmp = 0; //每次发送指令时设置 + + g_at_send_status.heart_stmp = 0; //连接成功时设置 + g_at_send_status.data_stmp = 0; + g_at_send_status.sign_flag = 0; + g_at_send_status.ack_flag = 0; + + g_at_send_status.gprs_last_recv_stmp = 0; //接收到指令时设置 + g_at_send_status.tcp_last_recv_stmp = 0; //连接成功和接收到数据时设置 + g_at_send_status.tcp_close_stmp = 0; //重新上电和检测到断开时设置 + g_at_send_status.gm35_reboot_times = 0; //连接成功时清0 +#endif +} + + +//------------------------ GM35 Flow Handle ----------------------------------- + +#define TTSS_TASK_GM35_FLOW_ATEQV 0x01 +#define TTSS_TASK_GM35_FLOW_ATEQV_WAIT 0x02 +#define TTSS_TASK_GM35_FLOW_ST 0x03 +#define TTSS_TASK_GM35_FLOW_ST_WAIT 0x04 +#define TTSS_TASK_GM35_FLOW_ST_WIFI 0x05 +#define TTSS_TASK_GM35_FLOW_ST_WIFI_WAIT 0x06 +#define TTSS_TASK_GM35_FLOW_ST_CIPMUX0 0x07 +#define TTSS_TASK_GM35_FLOW_ST_CIPMUX0_WAIT 0x08 +#define TTSS_TASK_GM35_FLOW_ST_TCP 0x09 +#define TTSS_TASK_GM35_FLOW_ST_TCP_WAIT 0x0A +#define TTSS_TASK_GM35_FLOW_ST_CIPMODE1 0x0B +#define TTSS_TASK_GM35_FLOW_ST_CIPMODE1_WAIT 0x0C +#define TTSS_TASK_GM35_FLOW_ST_CIPSEND 0x0D +#define TTSS_TASK_GM35_FLOW_ST_CIPSEND_WAIT 0x0E +#define TTSS_TASK_GM35_FLOW_ST_DATA 0x0F + +#define TTSS_TASK_GM35_FLOW_AP 0x20 +#define TTSS_TASK_GM35_FLOW_AP_WAIT 0x21 + + +#define INS_TIMEOUT 2 +#define GM35_SEND_DATA_INTERVAL 300 +#define GM35_SEND_HEART_INTERVAL 60 +#define GM35_SEND_CIPSTATUS_INTERVAL 5 + +void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s) +{ + TTSS_Task_init() + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ATEQV,D_Tdelay_10s);//上电等待10s + + TTSS_Task_step(TTSS_TASK_GM35_FLOW_ATEQV) + L3_gm35_send_str(AT_INS_ATE0); + s->ins_ok = 0; + s->ins_stmp = s_nos_tick.t_1s; + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ATEQV_WAIT,D_Tdelay_300ms); + + TTSS_Task_step(TTSS_TASK_GM35_FLOW_ATEQV_WAIT) + if(1 == s->ins_ok) + { + if(s->mode == W600_ST) + { + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST,0); + } + else if(s->mode == W600_AP) + { + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_AP,0); + } + } + else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT) + { + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ATEQV,0); + } + + TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST) + L3_gm35_send_str(AT_INS_ST); + s->ins_ok = 0; + s->ins_stmp = s_nos_tick.t_1s; + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_WAIT,D_Tdelay_300ms); + + TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_WAIT) + if(1 == s->ins_ok) + { + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_WIFI,0); + } + else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT) + { + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST,0); + } + + TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_WIFI) + L3_gm35_send_str(AT_INS_ST_WIFI); + s->ins_ok = 0; + s->ins_stmp = s_nos_tick.t_1s; + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_WIFI_WAIT,D_Tdelay_300ms); + + TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_WIFI_WAIT) + if(1 == s->ins_ok) + { + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPMUX0,0); + } + else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT) + { + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_WIFI,0); + } + + TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_CIPMUX0) + L3_gm35_send_str(AT_INS_ST_CIPMUX0); + s->ins_ok = 0; + s->ins_stmp = s_nos_tick.t_1s; + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPMUX0_WAIT,D_Tdelay_300ms); + + TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_CIPMUX0_WAIT) + if(1 == s->ins_ok) + { + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_TCP,0); + } + else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT) + { + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPMUX0,0); + } + + TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_TCP) + L3_gm35_send_str(AT_INS_ST_TCP); + s->ins_ok = 0; + s->ins_stmp = s_nos_tick.t_1s; + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_TCP_WAIT,D_Tdelay_300ms); + + TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_TCP_WAIT) + if(1 == s->ins_ok) + { + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPMODE1,0); + } + else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT) + { + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_TCP,0); + } + + TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_CIPMODE1) + L3_gm35_send_str(AT_INS_ST_CIPMODE1); + s->ins_ok = 0; + s->ins_stmp = s_nos_tick.t_1s; + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPMODE1_WAIT,D_Tdelay_300ms); + + TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_CIPMODE1_WAIT) + if(1 == s->ins_ok) + { + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPSEND,0); + } + else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT) + { + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPMODE1,0); + } + + TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_CIPSEND) + L3_gm35_send_str(AT_INS_ST_CIPSEND); + s->ins_ok = 0; + s->ins_stmp = s_nos_tick.t_1s; + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_DATA,D_Tdelay_300ms); + + TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_DATA) + L0_uart0_uc('A'); + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_DATA,D_Tdelay_5s); + + + + + + + + + TTSS_Task_step(TTSS_TASK_GM35_FLOW_AP) + L0_uart0_uc('C'); + L0_uart2_sendstr("abcdefg"); + L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_WAIT,D_Tdelay_10s); + + TTSS_Task_end(); +} + + diff --git a/source/app/task_w600.h b/source/app/task_w600.h new file mode 100644 index 0000000..5a0e593 --- /dev/null +++ b/source/app/task_w600.h @@ -0,0 +1,99 @@ +//////////////////////////////////////////////////////////////////////////// +///@copyright Copyright (c) 2018, 传控科技 All rights reserved. +///------------------------------------------------------------------------- +/// @file bsp_gc6133.c.h +/// @brief bsp @ driver config +///------------------------------------------------------------------------- +/// @version 1.0 +/// @author CC +/// @date 20180331 +/// @note cc_AS_stc02 + +////////////////////////////////////////////////////////////////////////////// + +#ifndef _app_task_w600_H +#define _app_task_w600_H + +#include "../bsp/bsp_config.h" +#include "../bsp/w600.h" +#include "../ctask/task.h" + +////<<<<<<<<<<<<<<<<<<< GM35模块 AT操作指令 <<<<<<<<<<<<<<<<<<<<<<<< +#define AT_INS_ATE0 "ATE0\r\n" //模块查询+关闭回显 +#define AT_INS_ST "AT+CWMODE=1\r\n" //进入station模式 +#define AT_INS_ST_WIFI "AT+CWJAP_DEF=\"ccsens\",\"ccsens123\"\r\n" //网络查询指令 +#define AT_INS_ST_CIPMUX0 "AT+CIPMUX=0\r\n" //GPRS操作指令 +#define AT_INS_ST_TCP "AT+CIPSTART=\"TCP\",\"192.168.0.79\",4001\r\n" //连接服务器 +#define AT_INS_ST_CIPMODE1 "AT+CIPMODE=1\r\n" //发送数据 +#define AT_INS_ST_CIPSEND "AT+CIPSEND\r\n" //主动关闭连接 +#define AT_INS_ST_CIPMODE0 "AT+CIPMODE=0\r\n" //查询连接状态 + +////<<<<<<<<<<<<<<<<<<<_s_task_test_<<<<<<<<<<<<<<<<<<<<<<<< +enum _s_w600_mode +{ + W600_ST,W600_AP +}; +struct _s_task_gm35_gprs_ +{ + TS_task task; + + vU8 ins_ok; + vU8 mode; + + vU8 send_lock; + vU8 module_ok; + vU8 sim_ok; + vU8 net_ok; + vU8 gprs_ok; + vU8 conn_ok; + vU8 status_query_ok; + vU32 ins_stmp; //指令时间戳 + vU32 gprs_last_recv_stmp; //上次接收指令时间戳 + vU32 tcp_last_recv_stmp; //上次接收数据时间戳 + vU32 tcp_conn_stmp; //断开连接时间戳 + vU32 tcp_close_stmp; //断开连接时间戳 + + vU32 heart_stmp; //连接成功后,等待发送时间 + vU32 data_stmp;//数据发送时间记录 + + vU8 sign_flag; //发送登录数据标志 + vU8 ack_flag;//下行数据ack + vU8 gm35_reboot_times; //gm35重启次数 +}; + +#define STATUS_GM35_INIT 0 +#define STATUS_GM35_MODULE_OK 1 +#define STATUS_GM35_SIM_OK 2 +#define STATUS_GM35_NET_OK 3 +#define STATUS_GM35_GPRS_OK 4 +#define STATUS_GM35_TCP_OK 5 +#define BUF_SIZE 5 +#define BUF_MAX 32 //注意缓冲区的长度 + +extern struct _s_task_gm35_gprs_ s_task_gm35_flow; + +extern void L3_task_gm35_flow_init(U8 mode); +extern void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s); + +#endif + + + + + + + + + + + + + + + + + + + + + diff --git a/source/bsp/bsp_config.h b/source/bsp/bsp_config.h index 36c2f38..84c4f84 100644 --- a/source/bsp/bsp_config.h +++ b/source/bsp/bsp_config.h @@ -51,7 +51,7 @@ //STEP 1 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>TYPE_UASER_BOARD SELECT -#define TYPE_UASER_BOARD TYPE_BOARD_WEIGH_0B +#define TYPE_UASER_BOARD TYPE_BOARD_TOUCH_PEN_0B //STEP 1 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>TYPE_UASER_BOARD CONFIG -#if(TYPE_UASER_BOARD == TYPE_BOARD_WEIGH_0B) +#if(TYPE_UASER_BOARD == TYPE_BOARD_TOUCH_PEN_0B) #include #include "../cpu/stc_stc8hxx.h" #include "../cpu/stc_macro.h" @@ -108,7 +108,7 @@ //外设定义 - #define LED1 P27 //D4 + #define LED1 P27 //D4 #define LED2 P26 //D4 #define LED3 P2 //D4 #define LED4 P55 //D4 diff --git a/source/bsp/bsp_config_const.h b/source/bsp/bsp_config_const.h index a84149b..7002a7e 100644 --- a/source/bsp/bsp_config_const.h +++ b/source/bsp/bsp_config_const.h @@ -65,6 +65,7 @@ #define TYPE_BOARD_ADDA_MAIN_V02 0xa8 //ADDA #define TYPE_BOARD_433_0A 0xa9 //433 #define TYPE_BOARD_WEIGH_0B 0xaa //称重 +#define TYPE_BOARD_TOUCH_PEN_0B 0xab //点读笔 //<<<<<<<<<<<<<<<<<<<<<<<<<<<.BORAD TYPE end //>>>>>>>>>>>>>>>>>>>>>>MCU TYPE diff --git a/source/bsp/w600.c b/source/bsp/w600.c index 5632d71..72a8056 100644 --- a/source/bsp/w600.c +++ b/source/bsp/w600.c @@ -1,5 +1,16 @@ #include "w600.h" -void L1_w600_init(U8 mode) + +void L2_w600_init() { - s->mode = mode; + L2_w600_enable(); +} + +void L2_w600_enable() +{ + //W600_ENABLE(); +} + +void L2_w600_disable() +{ + //W600_DISABLE(); } \ No newline at end of file diff --git a/source/bsp/w600.h b/source/bsp/w600.h index e6aa257..d471a68 100644 --- a/source/bsp/w600.h +++ b/source/bsp/w600.h @@ -1,2 +1,15 @@ -#ifndef __W600_H__ -#define __W600_H__ +#ifndef BSP_GM35_H +#define BSP_GM35_H + +#include "bsp_config.h" + +#define W600_VBAT_EN P67 +#define W600_DISABLE() W600_VBAT_EN = 0 +#define W600_ENABLE() W600_VBAT_EN = 1 + + +extern void L2_w600_init(); +extern void L2_w600_enable(); +extern void L2_w600_disable(); + +#endif \ No newline at end of file diff --git a/source/clib/clib.c b/source/clib/clib.c index 805329f..2ddf72f 100644 --- a/source/clib/clib.c +++ b/source/clib/clib.c @@ -14,145 +14,27 @@ #include "clib.h" #include "../msp/uart0.h" #include "../msp/time.h" -U8* Lc_strcpy(U8* dst,const char* str) -{ - U8 *p = dst; - while(*dst++ = *str++); - return p; -} - -#if 0 - -vU16 us2fun2[5] -={ -1, //0 -10,// 1 -100,// 2 -1000,// 3 -10000// 4 - -}; - - -vU32 ul2fun2[10] -={ -1, //0 -10,// 1 -100,// 2 -1000,// 3 -10000,// 4 -100000, -1000000, -10000000, -100000000, -1000000000,//9 -}; - -同样是转义字符,\n 的作用相当于“Enter”键,而想退回去就可以用“Backspace”键,也就是\b -这里还有一个可能用到的转义字符是\r :使光标回退到本行开头 - \b 退格 - \n 换行 0x0A - \f 走纸 - \t 水平制表 - \v 垂直制表 - -\r 0x0d -//如果追求内存紧张加上const INT32U ul2fun2[10] - - -void Lc_float2str(float f,U8 *str,U8 point_num); +U8 Lc_strStartsWith(U8 *s1,U8 *s2) { - S32 i = 0; U32 u32i = 0; - U8 n = 0;U8 m = 0;U8 d = 0; - switch(point_num) - { - case 0: - - break; - case 1: - f *= 10.; - - break; - case 2: - f *= 100.; - - break; - case 3: - f *= 1000.; - - break; - default: - - break; - }; - i = (S32)f; -// Lc_float2str(1.23,&d,2) -// Lc_float2str(0.23,&d,2) -// Lc_float2str(23.4,&d,1) -// Lc_float2str(-12345.236,&d,2) - // 1,1.2 12.3 240 0.12 - if(i < 0) - { - str[n] = '-'; - n ++; - i *= -1; - } - u32i = (U32)i; - m = 4; - if(u32i >= ul2fun2[m]) u32i = ul2fun2[m] - 1; - for(m = 0;m > 4;m ++) - {// 43210 - d = (u32i /ul2fun2[m])%10; - if (d > 0) - str[n] = d; - n ++; - } - - if (n == point_num) + while(*s1 && *s2) + { + if(*s1++ != *s2++) { - str[n] ='.'; - n ++; + return 0; } - - - str[n] = i%10 - -} - -void L0_Delay_ms(unsigned int time) -{ - unsigned int j; - for(;time > 0;time --) - { - j = D_l0_delay_ms; - while(j--) - ; - } + } + return (*s2 == 0); } -//22m 50ms --delay ms 100 j=150 -void L1_delay_test(void) -{ - while(9) - { - L0_Delay_ms(100); - P2 = !P2; - } - -}void Lc_delay_us(unsigned int n) +U8* Lc_strcpy(U8* dst,const char* str) { -// unsigned char j; - for(;n > 0;n --) - { - //j = 2; - // while(j--) - // ; - }65 300 + U8 *p = dst; + while(*dst++ = *str++); + return p; } -#endif void Lc_delay_us(vU16 i) { @@ -174,8 +56,6 @@ void Lc_delay_nop(U8 i) } - - // D_1ms_delay_para ///22m 300 /// 22M 100ns 5个100ns 20ns @@ -196,14 +76,12 @@ void Lc_delay_ms(vU16 i) } } -void Lc_buf_copy_uc(U8 *d,const U8 *s,U16 num) +void Lc_buf_copy_uc(U8 *dst,U8 *src,U8 len) { - U16 i; - for(i = 0; i < num; i ++) + while(len--) { - *(d+i) = *(s+i); + *dst++ = *src++; } - } vU8 Lc_U8_media3(vU8 a,vU8 b,vU8 c) diff --git a/source/clib/clib.h b/source/clib/clib.h index 3809441..6ace03c 100644 --- a/source/clib/clib.h +++ b/source/clib/clib.h @@ -88,8 +88,6 @@ extern void Lc_print_buf(char *dat4,...); extern void L3_us_big(U16 *d); extern void L3_ui_big(vU32 *d); -extern void Lc_buf_copy_uc(U8 *d,const U8 *s,U16 num); - ///void L2_line_algo_media(U8 *buf,vU16 len); extern vU8 Lc_U8_media3(vU8 a,vU8 b,vU8 c); extern vS32 Lc_S32_media3(vS32 a,vS32 b,vS32 c); @@ -112,7 +110,8 @@ extern int Lc_strlen(char *str); extern U32 Lc_vU32_avg(U32 *d, U8 n); extern U32 Lc_vS32_media(U32 *d, U8 n); extern int Lc_memset(U8 *buf,U8 c,U16 len); - +extern void Lc_buf_copy_uc(U8 *dst,U8 *src,U8 len); +extern U8 Lc_strStartsWith(U8 *s1,U8 *s2); #endif /* end __UART_H */ diff --git a/source/msp/UART2.C b/source/msp/UART2.C index ed62c36..eb52ca7 100644 --- a/source/msp/UART2.C +++ b/source/msp/UART2.C @@ -57,44 +57,30 @@ msp/uartx.c 底层代码 和cpu相关 缓存发送也放在里面 #include "uart2.h" #include "../app/app_config.h" #include "../msp/time.h" +#include "../tpc/at0d0a.h" //#define _USE_485 static volatile Ts_uart_send_buf idata ts_uart_send_shop; TP_Handler_X s_uart2_rec; TS_PH4_modbus s_uart2_ack; +struct _s_PC1_0D0A_ s_uart2_at; void L0_uart2_init(void) { -//#if(MainFre_11M == D_sys_MainFre) //115200bps@11.0592MHz -// S2CON = 0x50; //8位数据,可变波特率 -// AUXR |= 0x04; //定时器2时钟为Fosc,即1T -// T2L = 0xE8; //设定定时初值 -// T2H = 0xFF; //设定定时初值 -// AUXR |= 0x10; //启动定时器2 -// -//#elif (MainFre_22M == D_sys_MainFre) //115200bps@22.1184MHz -// S2CON = 0x50; //8位数据,可变波特率 -// AUXR |= 0x04; //定时器2时钟为Fosc,即1T -// T2L = 0xE0; //设定定时初值 -// T2H = 0xFE; //设定定时初值 -// AUXR |= 0x10; //启动定时器2 -//#endif -// S2CON = 0x50; //8位数据,可变波特率 -// AUXR |= 0x04; //定时器时钟1T模式 -// T2L = 0xE0; //设置定时初始值 -// T2H = 0xFE; //设置定时初始值 -// AUXR |= 0x10; //定时器2开始计时 S2CON = 0x50; //8位数据,可变波特率 AUXR &= 0xFB; //定时器时钟12T模式 T2L = 0xFC; //设置定时初始值 T2H = 0xFF; //设置定时初始值 AUXR |= 0x10; //定时器2开始计时 - } void L0_uart2_buf_init(void) { + s_uart2_at.head = 0; + s_uart2_at.ok = 0; + s_uart2_at.num = 0; + ts_uart[uNum2].p = &ts_uart_send_shop; ts_uart[uNum2].p->now = 0; ts_uart[uNum2].p->ok = D_ready; @@ -130,9 +116,10 @@ void INTERRUPT_uart2(void) D_SERVE_uart2// using 2 { //LED0 ^= 1; L0_uart2_IntRIClear(); //清除接收中断标志 - ts_uart[uNum2].t->reg = L0_uartN_get(uNum2); + //ts_uart[uNum2].t->reg = L0_uartN_get(uNum2); //ts_uart[uNum2].tp_handler(ts_uart[uNum2].t); - L1_s2b_PH4(ts_uart[uNum2].t); + s_uart2_at.reg = L0_uartN_get(uNum2); + L1_s2b_0d0a(&s_uart2_at); L0_timer3_restart(); } if(L0_uart2_IntTI()) //如果是U0发送中断 diff --git a/source/tpc/0d0a.c b/source/tpc/0d0a.c deleted file mode 100644 index da7a66f..0000000 --- a/source/tpc/0d0a.c +++ /dev/null @@ -1,47 +0,0 @@ -#include "0d0a.h" -#include "../clib/clib.h" - -//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> -//L1_uart_2strbuf(&s_uart0_rec);s_uart0_rec.ok = 2 -/// 接收以od oa为结束的标准的assci码的协议 类似 send xx (回车换行)测试时注意以回车换行 -/// 为结束标志,也就是发送的数据后面 必须有回车换行 :0x0d 0x0a - - -//对于连续的多条协议,比如:abcdefg\r\n12345\r\n,如果前一条处理不及时,可能会被后一条覆盖 -void L1_s2b_0d0a(struct _tp_handler_x *p) //reentrant -{ - if(p->head == 0) - { - p->head = 1; - p->num = 0; - } - - if(p->num >= D_tp_handle_x_len) - { - p->num = 0; - } - p->cashe[1] = p->cashe[0]; - p->cashe[0] = p->reg;// - - p->buf[++p->num] = p->cashe[0]; - //p->buf[++p->num] = p->cashe[0]; - - if ((p->num > 2) && (p->cashe[0] == 0x0a) && (p->cashe[1] == 0x0d))// 0d0a - { - if(1 != p->ok) - { - p->buf[0] = p->num - 2; //去掉0d0a - if(p->sp2 != NULL) //备份缓冲区不为null - { - //byte_copy_uc(p->buf + 1,p->__buf,p->num-2); //经过调试,此处不要调用外部函数,入栈出栈会增加出错风险 - for(p->i=0;p->ibuf[0]+1;p->i++) - { - p->sp2[p->i] = p->buf[p->i]; - } - } - p->ok = 1;//收到 命令结束,必须有个地方清0,否则无法再次接受报文 - } - p->head = 0; - } -} - diff --git a/source/tpc/0d0a.h b/source/tpc/0d0a.h deleted file mode 100644 index ddf5a39..0000000 --- a/source/tpc/0d0a.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef TPC_0D0A_H -#define TPC_0D0A_H - -#include "tpc_x.h" - -///----------------------------------------------------------------------------------------- -//#define D_s_SSTR_0D0A_len 64 //str类的协议需要长度大一些,容易bug的地方,限制为接收64bytes的数据 -#if 0 -#define FLAG_NONE 0 -#define FLAG_DISCARD 1 -#define FLAG_CCID 2 -#define FLAG_CIP 3 -typedef struct _s_PC1_0D0A_ -{//8byte - vU8 reg; - // vU8 sub_num; //接收到的数目注意数据长度的范围 - vU8 head; //接收标志头标志 - - vU8 cashe[4]; - //vU8 filter1; - //vU8 filter2; - vU8 num; //接收到的数据的计数, 随着数据接收而变化注意数据长度的范围 - - vU8 ok; //接收协议ok标志 - vU8 max; //接收到的数目的最大值 - vU8 __buf[D_s_SSTR_0D0A_len+1];//buffer - vU8 buf[D_s_SSTR_0D0A_len+1];//array的第一位是 长度 //协议缓冲 - // U8 pro[16]; ///解析协议用 -}TS_Handle_0d0a; -#endif -extern void L1_s2b_0d0a(struct _tp_handler_x *p); //reentrant; - -#endif diff --git a/source/tpc/at0d0a.c b/source/tpc/at0d0a.c new file mode 100644 index 0000000..ce0d80e --- /dev/null +++ b/source/tpc/at0d0a.c @@ -0,0 +1,37 @@ +#include "at0d0a.h" +#include "../clib/clib.h" + +void L1_s2b_0d0a(struct _s_PC1_0D0A_ *p)// reentrant +{ + if(p->head == 0) + { + p->head = 1; + p->num = 0; + } + + if(p->num >= D_s_SSTR_0D0A_len)//128 + { + p->num = 0; + } + p->cashe[1] = p->cashe[0]; + p->cashe[0] = p->reg;// + + p->__buf[p->num++] = p->reg; + + if ((p->cashe[0] == 0x0a) && (p->cashe[1] == 0x0d))// 0d0a + { + if((p->num > 2) && (p->__buf[p->num-3] != ':')) //排除掉 +CIPSTATUS(a9): + { + if(1 != p->ok) + { + p->buf[0] = p->num - 2; //去掉0d0a + Lc_buf_copy_uc(p->buf + 1,p->__buf,p->num-2); + p->ok = 1;//收到 命令结束,必须有个地方清0,否则无法再次接受报文 + } + } + p->head = 0; + } +} + + + diff --git a/source/tpc/at0d0a.h b/source/tpc/at0d0a.h new file mode 100644 index 0000000..55bbcbf --- /dev/null +++ b/source/tpc/at0d0a.h @@ -0,0 +1,23 @@ +#ifndef TPC_AT0D0A_H +#define TPC_AT0D0A_H + +#include "tpc_x.h" + +///----------------------------------------------------------------------------------------- +#define D_s_SSTR_0D0A_len 128 //str类的协议需要长度大一些,容易bug的地方,限制为接收64bytes的数据 +typedef struct _s_PC1_0D0A_ +{//8byte + vU8 reg; + vU8 head; //接收标志头标志 + vU8 cashe[4]; + vU8 num; //接收到的数据的计数, 随着数据接收而变化注意数据长度的范围 + vU8 ok; //接收协议ok标志 + vU8 max; //接收到的数目的最大值 + vU8 __buf[D_s_SSTR_0D0A_len+1];//buffer + vU8 buf[D_s_SSTR_0D0A_len+1];//array的第一位是 长度 //协议缓冲 + vU8 setflag; //读取串口过程中设置标志 +}TS_Handle_0d0a; +extern void L1_s2b_0d0a(struct _s_PC1_0D0A_ *p);// reentrant; + + +#endif