From ec570b9afca0414c64d29740f6451e5e37dc4711 Mon Sep 17 00:00:00 2001
From: Zhangwen <13970730+mkc46119@user.noreply.gitee.com>
Date: Mon, 3 Mar 2025 23:14:27 +0800
Subject: [PATCH] =?UTF-8?q?feature=EF=BC=9A1.=E4=BB=BB=E5=8A=A13:WIFI?=
=?UTF-8?q?=E5=92=8C=E6=9C=8D=E5=8A=A1=E5=99=A8=E8=BF=9E=E6=8E=A5ok?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.vscode/settings.json | 5 +-
keilp/cc_as_stc02_ps5ws.uvprojx | 74 +--
source/app/app_config.c | 7 +-
source/app/app_config.h | 2 +-
source/app/app_task_tcp.c | 2 +-
source/app/app_task_tcp_control.c | 6 +-
source/app/main.c | 37 +-
source/app/main.h | 6 +-
source/app/task_SmartConfig.c | 88 ++++
source/app/task_SmartConfig.h | 34 ++
source/app/task_appstatus.c | 13 +-
source/app/task_key.c | 4 +-
source/app/task_keystatus.c | 2 +-
source/app/task_register.c | 4 +-
source/app/task_w600 copy.c | 744 ++++++++++++++++++++++++++++++
source/app/task_w600.c | 294 ++++--------
source/app/task_w600.h | 54 +--
source/bsp/bsp_config.c | 2 +-
source/bsp/bsp_config.h | 2 +-
source/clib/clib.c | 6 +-
source/clib/clib.h | 1 +
source/msp/UART0.C | 2 +-
source/msp/UART2.c | 4 +
source/msp/UART3.c | 3 +-
source/msp/UART4.C | 2 +-
source/msp/UARTX.h | 17 +-
26 files changed, 1067 insertions(+), 348 deletions(-)
create mode 100644 source/app/task_SmartConfig.c
create mode 100644 source/app/task_SmartConfig.h
create mode 100644 source/app/task_w600 copy.c
diff --git a/.vscode/settings.json b/.vscode/settings.json
index eed65d3..8df605c 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -39,6 +39,9 @@
"task_appstatus.h": "c",
"bsp_wt2605b.h": "c",
"task_apptset.h": "c",
- "task_keystatus.h": "c"
+ "task_keystatus.h": "c",
+ "type.h": "c",
+ "task_smartconfig.h": "c",
+ "uartx.h": "c"
}
}
\ No newline at end of file
diff --git a/keilp/cc_as_stc02_ps5ws.uvprojx b/keilp/cc_as_stc02_ps5ws.uvprojx
index 2aaadc5..c62c413 100644
--- a/keilp/cc_as_stc02_ps5ws.uvprojx
+++ b/keilp/cc_as_stc02_ps5ws.uvprojx
@@ -368,60 +368,25 @@
1
..\source\app\main.c
-
- task_register.c
- 1
- ..\source\app\task_register.c
-
app_config.c
1
..\source\app\app_config.c
- task_w600.c
- 1
- ..\source\app\task_w600.c
-
-
- task_key.c
- 1
- ..\source\app\task_key.c
-
-
- app_task_tcp_control.c
- 1
- ..\source\app\app_task_tcp_control.c
-
-
- task_pen_head.c
+ task_appstatus.c
1
- ..\source\app\task_pen_head.c
+ ..\source\app\task_appstatus.c
- app_task_tcp.c
+ task_appTEST.c
1
- ..\source\app\app_task_tcp.c
+ ..\source\app\task_appTEST.c
- app_task_speech.c
+ task_keystatus.c
1
- ..\source\app\app_task_speech.c
-
-
- task_game.c
- 1
- ..\source\app\task_game.c
-
-
- task_btn.c
- 1
- ..\source\app\task_btn.c
-
-
- app_data_save.c
- 1
- ..\source\app\app_data_save.c
+ ..\source\app\task_keystatus.c
@@ -439,24 +404,19 @@
..\source\bsp\chipid.c
- rs485.c
- 1
- ..\source\bsp\rs485.c
-
-
- w600.c
+ bsp_key.c
1
- ..\source\bsp\w600.c
+ ..\source\bsp\bsp_key.c
- bsp_oid.c
+ bsp_led.c
1
- ..\source\bsp\bsp_oid.c
+ ..\source\bsp\bsp_led.c
- bsp_btn.c
+ bsp_WT2605B.c
1
- ..\source\bsp\bsp_btn.c
+ ..\source\bsp\bsp_WT2605B.c
@@ -562,16 +522,6 @@
asp
-
-
- asp_oid.c
- 1
- ..\source\asp\asp_oid.c
-
-
-
-
- New Group
diff --git a/source/app/app_config.c b/source/app/app_config.c
index 2ec6339..4e58816 100644
--- a/source/app/app_config.c
+++ b/source/app/app_config.c
@@ -18,9 +18,11 @@ void L3_param_init(void)
//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,"YFRS");
+ // Lc_strcpy(G.st_sid,"iPhone11");
//station模式pwd
- Lc_strcpy(G.st_pwd,"ccsens123");
+ Lc_strcpy(G.st_pwd,"99999999");
+ // Lc_strcpy(G.st_pwd,"12345678");
//ap模式状态
G.ap_status = 0;//0: none 1: ap_ok 2:tcp_server_ok
//ap模式sid
@@ -152,6 +154,7 @@ void L3_reg_reset(void)
G.pen_up = 0;
G.datapkg = 0;
G.pen_t = 1;
+ G.debug = 1;
diff --git a/source/app/app_config.h b/source/app/app_config.h
index e33819b..f23bf4c 100644
--- a/source/app/app_config.h
+++ b/source/app/app_config.h
@@ -2,6 +2,7 @@
#define APP_COMMON_H
#include "../clib/type.h"
+#include "../clib/clib.h"
#include "../bsp/bsp_config.h"
#include "../tpc/ccmodbus.h"
#include "../tpc/modbus.h"
@@ -40,7 +41,6 @@ typedef enum
WIFI_CONNECTED = 3, //WIFI连接成功
TCP_CONNECTED = 4, //TCP连接成
-
}APP_STATUS;
typedef struct global_register
diff --git a/source/app/app_task_tcp.c b/source/app/app_task_tcp.c
index 169a171..7f7f261 100644
--- a/source/app/app_task_tcp.c
+++ b/source/app/app_task_tcp.c
@@ -57,7 +57,7 @@ void L3_task_tcp_handle(TS_tcp *s)
// if(s_uart2_tcp_rec.ok)
{
// s_uart2_tcp_rec.ok = 0;
- s_task_gm35_flow.tcp_last_recv_stmp = s_nos_tick.t_1s;
+ _s_task_w600_para.tcp_last_recv_stmp = s_nos_tick.t_1s;
// s->pAckPkg = (TS_PH3_ccmodbus*)(s_uart2_tcp_rec.sp);
//L3_gm35_rcv_data((U8*)s->pAckPkg,s->pAckPkg->num);
if(s->pAckPkg->slaver == G.ccmd_slaver_info[s->slaverIndex].slaver)
diff --git a/source/app/app_task_tcp_control.c b/source/app/app_task_tcp_control.c
index a80080e..99f093d 100644
--- a/source/app/app_task_tcp_control.c
+++ b/source/app/app_task_tcp_control.c
@@ -24,14 +24,14 @@ void L3_task_tcp_control_handle(TS_tcp_control *s)//判定是否抬笔/缓冲区
TTSS_Task_init()
L2_task_go(D_task_tcp_control_01);
TTSS_Task_step(D_task_tcp_control_01)
- if(s->conn_ok_pool != s_task_gm35_flow.conn_ok)
+ if(s->conn_ok_pool != _s_task_w600_para.conn_ok)
{
G.authed = 0;
- s->conn_ok_pool =s_task_gm35_flow.conn_ok; //s->conn_ok_pool=1
+ s->conn_ok_pool =_s_task_w600_para.conn_ok; //s->conn_ok_pool=1
}
L2_task_go(D_task_tcp_control_02);
TTSS_Task_step(D_task_tcp_control_02)//是否发认证包
- if(s_task_gm35_flow.conn_ok)
+ if(_s_task_w600_para.conn_ok)
{
if(!G.authed)//authed == 0
{
diff --git a/source/app/main.c b/source/app/main.c
index 93bd737..ac3f92a 100644
--- a/source/app/main.c
+++ b/source/app/main.c
@@ -36,21 +36,28 @@ void L0_BSP_init(void)
L0_PW_3V3_INIT();
// 控制3v3输出(OID,WIFI)
L0_PW_3V3_ON();
+
+ LED2 = 0;
}
void L0_TASK_init(void)
{
//系统状态任务初始化
L3_task_AppStatus_init();
- L3_task_AppTest_init();
+ // L3_task_AppTest_init();
L3_task_KeyStatus_init();
+
+ //w600任务初始化
+ L3_task_W600_flow_init(W600_ST);
+
+ L3_task_SmartConfig_init();
+
+
// //游戏任务初始化
// L3_task_game_init();
// //寄存器监听任务初始化
// L3_task_reglisten_init();
- // //w600任务初始化
- // L3_task_gm35_flow_init(W600_ST);
// //笔头任务初始化
// L1_oid_init();
// //语音模块初始化
@@ -106,7 +113,6 @@ void main(void)
{
// L1_Oid_readoid();
-
if(1 == s_nos_tick.t1s_heartbeat)//1s
{
s_nos_tick.t1s_heartbeat = 0;//置0清空
@@ -120,17 +126,24 @@ void main(void)
// L0_uart0_uc('=');
// L0_uart0_uchex(data_save_arr[i].val);
// L0_uart0_0d0a();
- // }
- // L0_uart0_sendArrayHex(data_save_arr, 30);
- L0_uart0_uc('.');
- // L0_uart0_uc(L2_ReadKey1());
- // L0_uart0_uc(L2_ReadKey2());
- // L0_uart0_uc(L2_ReadKey3());
+ // }
+ // L0_uart0_sendstr("R.app_status = ");
+ // L0_uart0_uchex(R.app_status);
+ // L0_uart0_0d0a();
+ // L0_uart0_uc('@');
+ // L0_uart0_ulhex((U32)&task_smartconfig);
}
L3_task_appstatus_handler(&_s_task_appstatus);
- // L3_task_AppTest_handler(&_s_task_apptest);
+ // // L3_task_AppTest_handler(&_s_task_apptest);
L3_task_keystatus_handler(&_s_task_keystatus);
+
+ // // WIFI
+ L3_uart2_wifi_parse();
+ L2_task_W600_flow_handle(&_s_task_w600_para);
+
+ //配网任务
+ // L3_task_SmartConfig_handler(&task_smartconfig);
// // 串口2的 接收数据 测试
// if(ts_uart[uNum2].r.ok == 1)
@@ -190,7 +203,7 @@ void main(void)
//WIFI
// L3_uart2_exp_protocol(&s_uart2_at);
- // L2_task_gm35_flow_handle(&s_task_gm35_flow);
+ // L2_task_W600_flow_handle(&_s_task_w600_para);
//寄存器值监控
// L3_task_reglisten_handle(&s_task_reglisten);
diff --git a/source/app/main.h b/source/app/main.h
index 7a27894..3b78deb 100644
--- a/source/app/main.h
+++ b/source/app/main.h
@@ -60,7 +60,7 @@
///#include "../app/task_debug.h"
#include "../app/task_register.h"
#include "../app/task_encrypt.h"
-#include "../app/task_w600.h"
+
#include "../app/task_key.h"
#include "../app/app_task_tcp.h"
#include "../app/app_task_tcp_control.h"
@@ -71,6 +71,10 @@
#include "../app/task_appstatus.h"
#include "../app/task_appTEST.h"
#include "../app/task_keystatus.h"
+#include "../app/task_w600.h"
+#include "../app/task_SmartConfig.h"
+
+
#include "../bsp/bsp_led.h"
#include "../bsp/bsp_key.h"
diff --git a/source/app/task_SmartConfig.c b/source/app/task_SmartConfig.c
new file mode 100644
index 0000000..bd29a65
--- /dev/null
+++ b/source/app/task_SmartConfig.c
@@ -0,0 +1,88 @@
+////////////////////////////////////////////////////////////////////////////
+///@copyright Copyright (c) 2018, 传控科技 All rights reserved.
+///-------------------------------------------------------------------------
+/// @file bsp_drv.c
+/// @brief bsp @ driver config
+///-------------------------------------------------------------------------
+/// @version 1.0
+/// @author CC
+/// @date 20180331
+/// @note cc_AS_stc02
+//////////////////////////////////////////////////////////////////////////////
+
+#include "../app/task_smartconfig.h"
+#include "../app/app_config.h"
+#include "../app/task_w600.h"
+#include "../msp/uartx.h"
+#include "../msp/uart0.h"
+#include "../msp/uart2.h"
+#include "../clib/clib.h"
+
+
+S_TASK_SMART_CONFIG task_smartconfig;
+
+
+void L3_task_SmartConfig_init(void)
+{
+ L1_task_init(&task_smartconfig.task);
+ task_smartconfig.status = 0;
+ L3_task_s_go(task_smartconfig,D_task_init);
+}
+
+#define D_task_DETECTCHANGE 0x50
+#define D_task_SAMRTCONFIG 0x51
+#define D_task_SMARTCSUCCESS 0x52
+#define D_task_SAMRTCSTOP 0x53
+#define D_task_SAMRTCSTOPPED 0x54
+
+
+void L3_task_SmartConfig_handler(S_TASK_SMART_CONFIG *s)
+{
+ TTSS_Task_init()
+ L2_task_go(D_task_DETECTCHANGE);
+ L0_uart0_uc('*');
+ L0_uart0_uchex(task_smartconfig.status);
+ L0_uart0_uchex(s->status);
+ L0_uart0_0d0a();
+ L0_uart0_ulhex((U32)s);
+
+ TTSS_Task_step(D_task_DETECTCHANGE)
+ if(s->status != R.app_status)
+ {
+
+ task_smartconfig.status = R.app_status;
+ if(task_smartconfig.status == WIFI_CONFIG)
+ {
+ L0_uart0_sendstr("task_smartconfig.status == WIFI_CONFIG");
+ L3_gm35_send_str(AT_INS_ST_STARTSMART); //开启SmartC
+ L2_task_go_Tdelay(D_task_SAMRTCONFIG,D_Tdelay_500ms);
+ }
+ }
+ TTSS_Task_step(D_task_SAMRTCONFIG)
+ if(Lc_strStartsWith(ts_uart[uNum2].r.buf,"\r\nOK"))
+ {
+ L0_uart0_sendstr("SmartConfig Enter-->");
+ // 语音输出:进入配网模式,请配合手机
+ L2_task_go_Tdelay(D_task_SMARTCSUCCESS,D_Tdelay_300ms);
+ }
+ TTSS_Task_step(D_task_SMARTCSUCCESS)
+ if(Lc_strStartsWith(ts_uart[uNum2].r.buf,"\r\nsmartconfig type"))
+ {
+ L0_uart0_sendstr("SmartConfig Success!");
+ // 语音输出:配网模式成功,请重启设备
+ L2_task_go_Tdelay(D_task_SAMRTCSTOP,D_Tdelay_300ms);
+ }
+ TTSS_Task_step(D_task_SAMRTCSTOP)
+ L3_gm35_send_str(AT_INS_ST_STOPSMART);
+ L2_task_go_Tdelay(D_task_SAMRTCSTOPPED,D_Tdelay_300ms);
+
+ TTSS_Task_step(D_task_SAMRTCSTOPPED)
+ if (Lc_strStartsWith(ts_uart[uNum2].r.buf,"\r\nOK"))
+ {
+ L0_uart0_sendstr("SmartConfig Stop!");
+ R.app_status = WIFI_CONNECTED;
+ L2_task_go_Tdelay(D_task_DETECTCHANGE,D_Tdelay_300ms);
+ }
+
+ TTSS_Task_end();
+}
\ No newline at end of file
diff --git a/source/app/task_SmartConfig.h b/source/app/task_SmartConfig.h
new file mode 100644
index 0000000..39fdb99
--- /dev/null
+++ b/source/app/task_SmartConfig.h
@@ -0,0 +1,34 @@
+////////////////////////////////////////////////////////////////////////////
+///@copyright Copyright (c) 2018, 传控科技 All rights reserved.
+///-------------------------------------------------------------------------
+/// @file bsp_drv.h
+/// @brief bsp @ driver config
+///-------------------------------------------------------------------------
+/// @version 1.0
+/// @author CC
+/// @date 20180331
+/// @note cc_AS_stc02
+
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef _TASK_SMARTC_H
+#define _TASK_SMARTC_H
+
+#include "../ctask/task.h"
+#include "../app/app_config.h"
+#include "../clib/type.h"
+
+
+
+typedef struct _s_task_smartc
+{
+ TS_task task;
+ APP_STATUS status;
+}S_TASK_SMART_CONFIG;
+
+extern S_TASK_SMART_CONFIG task_smartconfig;
+
+extern void L3_task_SmartConfig_init(void);
+extern void L3_task_SmartConfig_handler(S_TASK_SMART_CONFIG *s);
+
+#endif // #ifndef
diff --git a/source/app/task_appstatus.c b/source/app/task_appstatus.c
index 28c4a66..0047f42 100644
--- a/source/app/task_appstatus.c
+++ b/source/app/task_appstatus.c
@@ -29,12 +29,12 @@ void L3_task_AppStatus_init(void)
L3_task_s_go(_s_task_appstatus,D_task_init);
}
-#define D_task_DETECTCHANGE 0x50
-#define D_task_HANDLECHANGE 0x51
-#define D_task_WIFICONFIG_STATUS01 0x52
-#define D_task_WIFICONFIG_STATUS02 0x53
-#define D_task_WIFICONN_STATUS01 0x54
-#define D_task_WIFICONN_STATUS02 0x55
+#define D_task_DETECTCHANGE 0x50
+#define D_task_HANDLECHANGE 0x51
+#define D_task_WIFICONFIG_STATUS01 0x52
+#define D_task_WIFICONFIG_STATUS02 0x53
+#define D_task_WIFICONN_STATUS01 0x54
+#define D_task_WIFICONN_STATUS02 0x55
void L3_task_appstatus_handler(S_TASK_APPSTATUS *s)
@@ -89,7 +89,6 @@ void L3_task_appstatus_handler(S_TASK_APPSTATUS *s)
// L2_WT2605B_PWRON();
// Lc_delay_ms(1000);
L2_WT2605B_broadcast(&audio_config_mode);
-// // L2_WT2605B_broadcast(&audio_Wifi_Config);
// // OID和WIFI通电
// L0_PW_3V3_ON();
}
diff --git a/source/app/task_key.c b/source/app/task_key.c
index a88f153..c4f090c 100644
--- a/source/app/task_key.c
+++ b/source/app/task_key.c
@@ -226,8 +226,8 @@ void L3_task_key_handle(struct _s_task_key_ *p)
// // LED1 = 0;
// L3_gm35_send_str("+++");
// Lc_delay_ms(1000);
- // //s_task_gm35_flow.mode=W600_AP;
- // L3_task_gm35_flow_init(W600_AP);
+ // //_s_task_w600_para.mode=W600_AP;
+ // L3_task_W600_flow_init(W600_AP);
// //G.w600_mode = 0;
}
else
diff --git a/source/app/task_keystatus.c b/source/app/task_keystatus.c
index a390479..ba52cb1 100644
--- a/source/app/task_keystatus.c
+++ b/source/app/task_keystatus.c
@@ -48,7 +48,7 @@ void L3_task_keystatus_handler(S_TASK_KEYSTATUS *s)
else
{
U32 diff = D_sys_now -s->Key1_Down_Begin_Time;
- L0_uart0_ulhex(diff);
+ // L0_uart0_ulhex(diff);
if (diff >= LongKey_PWR_MSeconds/JIFFIES && s->Key1_handled == 0)
{
if (R.app_status == POW_OFF)
diff --git a/source/app/task_register.c b/source/app/task_register.c
index 429d0bc..c66d162 100644
--- a/source/app/task_register.c
+++ b/source/app/task_register.c
@@ -40,8 +40,8 @@ void L3_task_reglisten_handle(S_TASK_REGVAL_LISTEN *s)
{
L3_gm35_send_str("+++");
Lc_delay_ms(1000);
- //s_task_gm35_flow.mode=W600_AP;
- L3_task_gm35_flow_init(W600_AP);
+ //_s_task_w600_para.mode=W600_AP;
+ L3_task_W600_flow_init(W600_AP);
G.w600_mode = 0;
}
diff --git a/source/app/task_w600 copy.c b/source/app/task_w600 copy.c
new file mode 100644
index 0000000..2fbd3a0
--- /dev/null
+++ b/source/app/task_w600 copy.c
@@ -0,0 +1,744 @@
+////////////////////////////////////////////////////////////////////////////
+///@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 "../asp/asp_oid.h"
+#include "../bsp/bsp_config.h"
+
+struct _s_task_W600_Para _s_task_w600_para;
+//TS_tcp_control ts_tcp_control;
+//TS_tcp ts_tcp;
+
+
+
+#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 , U16 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+3);
+ }
+}
+
+U8 wifi_ins[64];
+char *GET_WIFI_INS()
+{
+ //AT+CWJAP_DEF=\"ccsens\",\"ccsens123\"\r\n"
+ Lc_strcpy(wifi_ins,"AT+CWJAP_DEF=\"");
+ Lc_strcpy(wifi_ins+Lc_strlen(wifi_ins),G.st_sid);
+ Lc_strcpy(wifi_ins+Lc_strlen(wifi_ins),"\",\"");
+ Lc_strcpy(wifi_ins+Lc_strlen(wifi_ins),G.st_pwd);
+ Lc_strcpy(wifi_ins+Lc_strlen(wifi_ins),"\"\r\n");
+ return wifi_ins;
+}
+
+U8 wifi_rev_buf[64], wifi_tmp[64];
+U8 tmp_num = 0;
+void L3_uart2_wifi_parse(void)
+{
+ if (ts_uart[uNum2].r.ok == 1)
+ {
+ U8 *ptr = wifi_rev_buf;
+ ts_uart[uNum2].r.ok = 0;
+ Lc_buf_copy_uc(wifi_rev_buf, ts_uart[uNum2].r.buf, ts_uart[uNum2].r.num);
+ wifi_rev_buf[ts_uart[uNum2].r.num] = 0;
+ while(*ptr)
+ {
+ U8 c = *ptr++;
+ if(c != '\r' && c != '\n')
+ {
+ wifi_tmp[tmp_num++] = c;
+ }
+ else
+ {
+ wifi_tmp[tmp_num] = 0;
+ if(tmp_num == 0)
+ {
+ continue;
+ }
+ L0_uart0_uc('>');
+ L0_uart0_sendstr(wifi_tmp);
+ L0_uart0_0d0a();
+ if(Lc_strcmp(wifi_tmp,"OK") == 0)
+ {
+ // L0_uart0_sendstr("Moudle Answer:OK AND ins_ok = 1");
+ _s_task_w600_para.ins_ok = 1;
+ }
+ else if(Lc_strcmp(wifi_tmp,"WIFI GOT IP") == 0)
+ {
+ _s_task_w600_para.st_wifi_ok = 1;
+ }
+ else if(Lc_strcmp(wifi_tmp,"CONNECT") == 0)
+ {
+ _s_task_w600_para.serve_ok = 1;
+ }
+ tmp_num = 0;
+ }
+ }
+ }
+}
+void L3_uart2_wifi_parse111(void)
+{
+ if (ts_uart[uNum2].r.ok == 1)
+ {
+ U8 *pPara = ts_uart[uNum2].r.buf;
+ pPara[ts_uart[uNum2].r.num] = 0;
+ ts_uart[uNum2].r.ok = 0;
+ L0_uart0_uc('$');
+ // L0_uart0_sendArray(ts_uart[uNum2].r.buf,ts_uart[uNum2].r.num);
+ L0_uart0_sendstr(ts_uart[uNum2].r.buf);
+
+ if(Lc_strStartsWith(pPara,"\r\nOK"))
+ {
+ LED3 = ~LED3;
+ L0_uart0_sendstr("Moudle Answer:OK AND ins_ok = 1");
+ L0_uart0_0d0a();
+ _s_task_w600_para.ins_ok = 1;
+ }
+ // if (Lc_strStartsWith(pPara,"WIFI DISCONNECT"))
+ // {
+ // LED3 = ~LED3;
+ // }
+ else if(Lc_strStartsWith(pPara,"WIFI GOT IP"))
+ {
+ _s_task_w600_para.st_wifi_ok = 1;
+ }
+ else if(Lc_strStartsWith(pPara,"ERROR"))
+ {
+ _s_task_w600_para.st_error= 1;
+ }
+ else if(Lc_strStartsWith(pPara,"no change"))
+ {
+ _s_task_w600_para.serve_ok= 1;
+ }
+ else if(Lc_strStartsWith(pPara,"CIPMUX and"))
+ {
+ _s_task_w600_para.ap_serve_ok = 1;
+ }
+
+ //Station模式判定
+ if(_s_task_w600_para.mode == W600_ST)
+ {
+ if(Lc_strStartsWith(pPara,"WIFI GOT IP"))
+ {
+ _s_task_w600_para.st_wifi_ok = 1;
+ }
+ else if(Lc_strStartsWith(pPara,"ALREADY CONNECTED"))
+ {
+ _s_task_w600_para.st_cip_ok = 1;
+ }
+ }
+ }
+}
+
+#if 0
+
+void L3_uart2_exp_protocol(struct _s_PC1_0D0A_ *p)
+{
+ if (1 == p->ok )
+ {
+ U8 *pPara = p->buf + 1;
+ _s_task_w600_para.gprs_last_recv_stmp = s_nos_tick.t_1s;
+ //通用判定
+ if(Lc_strStartsWith(pPara,"OK"))
+ {
+ _s_task_w600_para.ins_ok = 1;
+ }
+ else if(Lc_strStartsWith(pPara,"ERROR"))
+ {
+ _s_task_w600_para.st_error= 1;
+ }
+ else if(Lc_strStartsWith(pPara,"no change"))
+ {
+ _s_task_w600_para.serve_ok= 1;
+ }
+ else if(Lc_strStartsWith(pPara,"CIPMUX and"))
+ {
+ _s_task_w600_para.ap_serve_ok = 1;
+ }
+
+ //Station模式判定
+ if(_s_task_w600_para.mode == W600_ST)
+ {
+ if(Lc_strStartsWith(pPara,"WIFI GOT IP"))
+ {
+ _s_task_w600_para.st_wifi_ok = 1;
+ }
+ else if(Lc_strStartsWith(pPara,"ALREADY CONNECTED"))
+ {
+ _s_task_w600_para.st_cip_ok = 1;
+ }
+ }
+ //AP模式判定
+ else if(_s_task_w600_para.mode == W600_AP)
+ {
+ if(Lc_strStartsWith(pPara,"+IPD,"))
+ {
+ //解析协议,success
+ //1将id,pwd放入寄存器2.ok=1
+ //失败不处理不设置标志位
+ //buf: [20]+IPD,0,5:#ccsens:ccsens123$ 后面没\0
+ //pPara: +IPD,0,5:#ccsens:ccsens123$
+
+ int j = 0 , len = p->buf[0];
+ p->buf[len+1] = 0;//在+IPD,0,5:#ccsens:ccsens123$后加0
+ for(j=0;jok = 0;
+ }
+}
+#endif
+
+//------------------------------------------------------ gm35 tasks --------------------------------
+
+
+void L3_task_W600_flow_init(U8 mode)
+{
+ L1_task_init(&_s_task_w600_para.task);
+ L3_task_s_go(_s_task_w600_para,D_task_init);
+ _s_task_w600_para.mode = mode;
+ _s_task_w600_para.send = 0;
+ _s_task_w600_para.conn_ok = 0;
+#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_MODE 0x01
+
+#define TTSS_TASK_GM35_FLOW_ATEQV 0x02
+#define TTSS_TASK_GM35_FLOW_ST 0x03
+#define TTSS_TASK_GM35_FLOW_ST_WIFI 0x04
+#define TTSS_TASK_GM35_FLOW_ST_CIPMUX0 0x05
+#define TTSS_TASK_GM35_FLOW_ST_TCP 0x06
+#define TTSS_TASK_GM35_FLOW_ST_CIPMODE1 0x07
+#define TTSS_TASK_GM35_FLOW_ST_CIPSEND 0x08
+#define TTSS_TASK_GM35_FLOW_ST_DATA 0x09
+#define TTSS_TASK_GM35_FLOW_ST_CIPMODE0 0x10
+#define TTSS_TASK_GM35_FLOW_ST_SERVE 0x11
+
+#define TTSS_TASK_GM35_FLOW_AP 0x20
+#define TTSS_TASK_GM35_FLOW_AP_WIFI 0x21
+#define TTSS_TASK_GM35_FLOW_AP_CIPMUX1 0x22
+#define TTSS_TASK_GM35_FLOW_AP_SERVER 0x23
+#define TTSS_TASK_GM35_FLOW_AP_CIPMUX0 0x24
+
+#define TTSS_TASK_GM35_FLOW_TCP_TIME 0x25
+#define TTSS_TASK_GM35_FLOW_AP_DATA 0x26
+#define TTSS_TASK_GM35_FLOW_AP_TCP_CONN_WAIT 0x27
+#define TTSS_TASK_GM35_FLOW_AP_WIFI_DATA_STA_WAIT 0x28
+#define TTSS_TASK_MODE_TRAN 0x29
+#define TTSS_TASK_MODE_CONFIG_WAIT 0x2A
+#define TTSS_TASK_MODE_SERVER_CLOSE 0x2B
+
+#define INS_TIMEOUT 5
+#define GM35_SEND_DATA_INTERVAL 300
+#define GM35_SEND_HEART_INTERVAL 60
+#define GM35_SEND_CIPSTATUS_INTERVAL 5
+
+void L2_task_W600_flow_handle(struct _s_task_W600_Para *s)
+{
+ TTSS_Task_init()
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ATEQV,D_Tdelay_5s);//上电等待1s
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_ATEQV)
+ if(s->send == 0)
+ {//发送
+ L3_gm35_send_str(AT_INS_ATE0); //"ATE0\r\n" //模块查询+关闭回显
+ s->ins_ok = 0;
+ s->ins_stmp = s_nos_tick.t_1s;
+ s->send = 1;
+ }
+ else if(1 == s->ap_serve_ok) //等待
+ {
+ s->send = 0;
+ s->ap_serve_ok = 0;
+ L3_gm35_send_str(AT_INS_AP_SERVER_CLOSE);
+ }
+ else if(s->serve_ok == 1 || s->ins_ok == 1) //等待
+ {
+ s->send = 0;
+ s->serve_ok = 0;
+ L2_task_go_Tdelay(s->mode == W600_ST ? TTSS_TASK_GM35_FLOW_ST
+ :TTSS_TASK_GM35_FLOW_ST_SERVE,D_Tdelay_1s);
+ }
+ else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
+ {//超时重发
+ s->send = 0;
+ }
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST)
+ if(s->send == 0)
+ {//发送
+ L3_gm35_send_str(AT_INS_ST);
+ s->ins_ok = 0;
+ s->ins_stmp = s_nos_tick.t_1s;
+ s->send = 1;
+ }
+ else if(s->ins_ok == 1) //等待
+ {
+ s->send = 0;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_WIFI,D_Tdelay_1s);
+ }
+
+ else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
+ {//超时重发
+ s->send = 0;
+ }
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_WIFI)
+ if(s->send == 0)
+ {//发送
+ L3_gm35_send_str(GET_WIFI_INS());
+ s->ins_ok = 0;
+ s->st_wifi_ok = 0;
+ s->ins_stmp = s_nos_tick.t_1s;
+ s->send = 1;
+ }
+ else if(1 == s->st_wifi_ok)
+ {
+ s->send = 0;
+ R.app_status = WIFI_CONNECTED; //wifi连接成功
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPMUX0,D_Tdelay_1s);
+ }
+
+ else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
+ {//超时重发
+ s->send = 0;
+ }
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_CIPMUX0)
+ if(s->send == 0)
+ {//发送
+ L3_gm35_send_str(AT_INS_ST_CIPMUX0);
+ s->ins_ok = 0;
+ s->st_wifi_ok = 0;
+ s->ins_stmp = s_nos_tick.t_1s;
+ s->send = 1;
+ }
+ else if(1 == s->ins_ok) //等待
+ {
+ s->send = 0;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_TCP,D_Tdelay_1s);
+ }
+
+ else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
+ {//超时重发
+ s->send = 0;
+ }
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_TCP)
+ if(s->send == 0)
+ {//发送
+ L3_gm35_send_str(AT_INS_ST_TCP);
+ s->ins_ok = 0;
+ s->st_cip_ok = 0;
+ s->serve_ok = 0;
+ s->ins_stmp = s_nos_tick.t_1s;
+ s->send = 1;
+ }
+ // else if(1 == s->ins_ok || 1 == s->st_cip_ok) //等待
+ else if(1 == s->serve_ok) //等待
+ {
+ s->send = 0;
+ R.app_status = TCP_CONNECTED;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPMODE1,D_Tdelay_1s);
+ }
+ else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
+ {//超时重发
+ s->send = 0;
+ }
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_CIPMODE1)
+ if(s->send == 0)
+ {//发送
+ L3_gm35_send_str(AT_INS_ST_CIPMODE1);
+ s->ins_ok = 0;
+ s->ins_stmp = s_nos_tick.t_1s;
+ s->send = 1;
+ }
+ else if(1 == s->ins_ok) //等待
+ {
+ s->send = 0;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPSEND,D_Tdelay_1s);
+ }
+ else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
+ {//超时重发
+ s->send = 0;
+ }
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_CIPSEND)
+ if(s->send == 0)
+ {//发送
+ L3_gm35_send_str(AT_INS_ST_CIPSEND);
+ s->ins_ok = 0;
+ s->st_error = 0;
+ s->ins_stmp = s_nos_tick.t_1s;
+ s->send = 1;
+ // L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPSEND,D_Tdelay_300ms);//发完之后要等,不然st_error == 0没用 ,没收到error之前也是=0
+ }
+ else if((s->ins_ok == 1) && (s->st_error == 1))
+ {
+ s->send = 0;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_TCP,0);
+ }
+ else if((s->ins_ok == 1) && (s->st_error == 0))
+ {
+ s->send = 0;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_DATA,0);
+ }
+ else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
+ {//超时重发
+ s->send = 0;
+ }
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_DATA)
+ //L0_uart2_sendstr("abcdefg");
+ _s_task_w600_para.conn_ok = 1;
+ L2_task_go(TTSS_TASK_GM35_FLOW_ST_DATA);
+
+
+
+
+
+
+
+
+
+
+
+/********************s->mode = W600_AP(按键进入)****************************** */
+
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_SERVE)
+ if(s->send == 0)
+ {//发送
+ L3_gm35_send_str(AT_INS_AP_SERVER_CLOSE); //关闭服务器
+ s->ins_ok = 0;
+ s->ins_stmp = s_nos_tick.t_1s;
+ s->send = 1;
+ }
+ else if(s->st_error)
+ {
+ s->send = 0;
+ s->st_error = 0;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPMODE0,D_Tdelay_300ms);
+ }
+ else if((s->serve_ok == 1)|| (s->ins_ok == 1)) //等待
+ {
+ s->send = 0;
+ s->serve_ok = 0;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPMODE0,D_Tdelay_300ms);
+ }
+ else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
+ {//超时重发
+ s->send = 0;
+ }
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_CIPMODE0)
+ if(s->send == 0)
+ {//发送
+ L3_gm35_send_str(AT_INS_ST_CIPMODE0);
+ s->ins_ok = 0;
+ s->ins_stmp = s_nos_tick.t_1s;
+ s->send = 1;
+ }
+ else if(1 == s->ins_ok) //等待(等待过程中,进入AP模式)
+ {
+ s->send = 0;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_AP,D_Tdelay_300ms);
+ }
+
+ else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
+ {//超时重发(超时,设置单连接模式)
+ s->send = 0;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_AP_CIPMUX0,D_Tdelay_300ms);
+ }
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_AP_CIPMUX0)
+ if(s->send == 0)
+ {//发送
+ L3_gm35_send_str(AT_INS_ST_CIPMUX0);
+ s->ins_ok = 0;
+ s->st_wifi_ok = 0;
+ s->ins_stmp = s_nos_tick.t_1s;
+ s->send = 1;
+ }
+ else if(1 == s->ins_ok) //等待
+ {
+ s->send = 0;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPMODE0,D_Tdelay_300ms);
+ }
+
+ else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
+ {//超时重发
+ s->send = 0;
+ }
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_AP)
+ if(s->send == 0)
+ {//发送
+ L3_gm35_send_str(AT_INS_AP);
+ s->ins_ok = 0;
+ s->ins_stmp = s_nos_tick.t_1s;
+ s->send = 1;
+ }
+ else if(1 == s->ins_ok) //等待
+ {
+ s->send = 0;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_AP_WIFI,D_Tdelay_300ms);
+ }
+
+ else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
+ {//超时重发
+ s->send = 0;
+ }
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_AP_WIFI)
+ if(s->send == 0)
+ {//发送
+ L3_gm35_send_str(AT_INS_AP_WIFI);
+ s->ins_ok = 0;
+ s->st_error = 0;
+ s->ins_stmp = s_nos_tick.t_1s;
+ s->send = 1;
+ }
+ else if((1 == s->ins_ok)||(1 == s->st_error)) //等待
+ {
+ s->send = 0;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_AP_CIPMUX1,D_Tdelay_300ms);
+ }
+
+ else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
+ {//超时重发
+ s->send = 0;
+ }
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_AP_CIPMUX1)
+ if(s->send == 0)
+ {//发送
+ L3_gm35_send_str(AT_INS_AP_CIPMUX1);
+ s->ins_ok = 0;
+ s->ins_stmp = s_nos_tick.t_1s;
+ s->send = 1;
+ }
+ else if(1 == s->ins_ok) //等待
+ {
+ s->send = 0;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_AP_SERVER,D_Tdelay_300ms);
+ }
+
+ else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
+ {//超时重发
+ s->send = 0;
+ }
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_AP_SERVER)
+ if(s->send == 0)
+ {//发送
+ L3_gm35_send_str(AT_INS_AP_SERVER);
+ s->ins_ok = 0;
+ s->ins_stmp = s_nos_tick.t_1s;
+ s->send = 1;
+ }
+ else if(1 == s->ins_ok) //等待
+ {
+ s->send = 0;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_TCP_TIME,D_Tdelay_300ms);
+ }
+
+ else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
+ {//超时重发
+ s->send = 0;
+ }
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_TCP_TIME)
+ if(s->send == 0)
+ {//发送
+ L3_gm35_send_str(AT_INS_AP_TCP_TIME);
+// LED2 = 0;
+ s->ins_ok = 0;
+ s->ins_stmp = s_nos_tick.t_1s;
+ s->send = 1;
+ }
+ else if(1 == s->ins_ok) //等待
+ {
+ s->send = 0;
+ s->ap_tcp_ok = 0;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_AP_TCP_CONN_WAIT,D_Tdelay_300ms);
+ }
+
+ else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
+ {//超时重发
+ s->send = 0;
+ }
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_AP_TCP_CONN_WAIT) //等待TCP连接
+ if(1 == s->ap_tcp_ok)
+ {
+ s->ap_conn_ok = 0;
+ s->ap_tcp_ok = 0;
+ s->ap_rec_ok = 0;
+ s->ins_stmp = s_nos_tick.t_1s;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_AP_WIFI_DATA_STA_WAIT,0);
+ }
+
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_AP_WIFI_DATA_STA_WAIT)
+ if(1 == s->ap_rec_ok)//收到正确的数据才会ok=1
+ {//ok回复#ok$\r\n
+ s->ap_rec_ok = 0;
+ s->rev = 1;
+ s->ins_stmp = s_nos_tick.t_1s;
+ //L0_uart0_sendstr("ap config ok");
+ //L3_gm35_send_str(AT_INS_AP_SEND);//进入发送模式
+ //L2_task_go(TTSS_TASK_MODE_TRAN);
+ }
+ else if(1 == s->ap_conn_ok)
+ {
+ s->ap_conn_ok = 0;
+ s->ap_tcp_ok = 0;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_AP_CIPMUX1,D_Tdelay_300ms);
+ }
+ else if((s_nos_tick.t_1s - s->ins_stmp > 3) && (s->rev == 1))
+ {//超时重发
+ s->ap_data_ok = 0;
+ s->rev= 0;
+ L3_gm35_send_str(AT_INS_AP_SEND);
+ L2_task_go_Tdelay(TTSS_TASK_MODE_TRAN,D_Tdelay_100ms);
+ }
+ TTSS_Task_step(TTSS_TASK_MODE_TRAN)
+ if(s->send == 0)
+ {//发送
+ L3_gm35_send_str("#OK$\r\n");
+// LED2 = 1;
+ s->ap_rec_ok = 0;
+ s->ins_ok = 0;
+ s->send = 1;
+ s->ins_stmp = s_nos_tick.t_1s;
+ }
+ else if(1 == s->ap_data_ok) //等待//此处进入ins_ok,不进入send_ok,因为之前有一个no change OK,在进入AP关闭服务器那里
+ {
+ s->send = 0;
+ s->ap_tcp_ok = 0;
+ L2_task_go_Tdelay(TTSS_TASK_MODE_SERVER_CLOSE,D_Tdelay_100ms);
+ }
+ TTSS_Task_step(TTSS_TASK_MODE_SERVER_CLOSE)
+ if(s->send == 0)
+ {//发送
+ L3_gm35_send_str(AT_INS_AP_SERVER_CLOSE);
+ s->ins_ok = 0;
+ s->ins_stmp = s_nos_tick.t_1s;
+ s->send = 1;
+ }
+ else if(1 == s->ins_ok) //等待
+ {
+ s->send = 0;
+// LED1 = 1;
+// LED2 = 1;
+ L3_task_W600_flow_init(W600_ST);
+ }
+ else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
+ {//超时重发
+ s->send = 0;
+ }
+ TTSS_Task_end();
+}
+
+
diff --git a/source/app/task_w600.c b/source/app/task_w600.c
index 6aeaa17..4189ebb 100644
--- a/source/app/task_w600.c
+++ b/source/app/task_w600.c
@@ -13,60 +13,22 @@
#include "task_w600.h"
#include "app_config.h"
-//#include "../msp/msp_uart2.h"
-//#include "../msp/msp_uart0.h"
+#include "../msp/uart0.h"
+#include "../msp/uart2.h"
#include "../asp/asp_oid.h"
+#include "../bsp/bsp_config.h"
-struct _s_task_gm35_gprs_ s_task_gm35_flow;
-//TS_tcp_control ts_tcp_control;
-//TS_tcp ts_tcp;
-
-
-
-#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;
-}
+struct _s_task_W600_Para _s_task_w600_para;
void L3_gm35_send_str(U8 *str)
{
- // L0_uart2_sendstr(str);
+ L0_uart2_sendstr(str);
if(G.debug)
{
L0_uart0_sendstr(str);
}
}
-//将数据放入gm35待发送缓冲区
-void L3_gm35_send_data(U8 *buf , U16 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+3);
- }
-}
-
U8 wifi_ins[64];
char *GET_WIFI_INS()
{
@@ -79,143 +41,69 @@ char *GET_WIFI_INS()
return wifi_ins;
}
-
-
-void L3_uart2_exp_protocol(struct _s_PC1_0D0A_ *p)
+U8 wifi_rev_buf[64], wifi_tmp[64];
+U8 tmp_num = 0;
+void L3_uart2_wifi_parse(void)
{
- if (1 == p->ok )
+ if (ts_uart[uNum2].r.ok == 1)
{
- 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;
- }
- else if(Lc_strStartsWith(pPara,"ERROR"))
- {
- s_task_gm35_flow.st_error= 1;
- }
- else if(Lc_strStartsWith(pPara,"no change"))
- {
- s_task_gm35_flow.serve_ok= 1;
- }
- else if(Lc_strStartsWith(pPara,"CIPMUX and"))
- {
- s_task_gm35_flow.ap_serve_ok = 1;
- }
-
- //Station模式判定
- if(s_task_gm35_flow.mode == W600_ST)
+ U8 *ptr = wifi_rev_buf;
+ ts_uart[uNum2].r.ok = 0;
+ Lc_buf_copy_uc(wifi_rev_buf, ts_uart[uNum2].r.buf, ts_uart[uNum2].r.num);
+ wifi_rev_buf[ts_uart[uNum2].r.num] = 0;
+ tmp_num = 0;
+ while(*ptr != 0)
{
- if(Lc_strStartsWith(pPara,"WIFI GOT IP"))
- {
- s_task_gm35_flow.st_wifi_ok = 1;
- }
- else if(Lc_strStartsWith(pPara,"ALREADY CONNECTED"))
+ U8 curr = *ptr++;
+ U8 next = *ptr;
+
+ if(curr != '\r' && curr != '\n' && curr != '\0')
{
- s_task_gm35_flow.st_cip_ok = 1;
+ wifi_tmp[tmp_num++] = curr;
}
- }
- //AP模式判定
- else if(s_task_gm35_flow.mode == W600_AP)
- {
- if(Lc_strStartsWith(pPara,"+IPD,"))
+ if((tmp_num > 0) && (next == '\r' || next == '\n' || next == '\0'))
{
- //解析协议,success
- //1将id,pwd放入寄存器2.ok=1
- //失败不处理不设置标志位
- //buf: [20]+IPD,0,5:#ccsens:ccsens123$ 后面没\0
- //pPara: +IPD,0,5:#ccsens:ccsens123$
-
- int j = 0 , len = p->buf[0];
- p->buf[len+1] = 0;//在+IPD,0,5:#ccsens:ccsens123$后加0
- for(j=0;j") == 0)
+ {
+ _s_task_w600_para.st_cip_ok = 1;
+ }
+
+ tmp_num = 0;
}
-
}
- p->ok = 0;
}
}
//------------------------------------------------------ gm35 tasks --------------------------------
-
-void L3_task_gm35_flow_init(U8 mode)
+void L3_task_W600_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;
- s_task_gm35_flow.send = 0;
- s_task_gm35_flow.conn_ok = 0;
-#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
+ L1_task_init(&_s_task_w600_para.task);
+ L3_task_s_go(_s_task_w600_para,D_task_init);
+ _s_task_w600_para.mode = mode;
+ _s_task_w600_para.send = 0;
+ _s_task_w600_para.conn_ok = 0;
}
-
//------------------------ GM35 Flow Handle -----------------------------------
#define TTSS_TASK_GM35_MODE 0x01
@@ -249,32 +137,25 @@ void L3_task_gm35_flow_init(U8 mode)
#define GM35_SEND_HEART_INTERVAL 60
#define GM35_SEND_CIPSTATUS_INTERVAL 5
-void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s)
+void L2_task_W600_flow_handle(struct _s_task_W600_Para *s)
{
TTSS_Task_init()
- L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ATEQV,D_Tdelay_1s);//上电等待10s
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ATEQV,D_Tdelay_5s);//上电等待1s
TTSS_Task_step(TTSS_TASK_GM35_FLOW_ATEQV)
if(s->send == 0)
{//发送
- L3_gm35_send_str(AT_INS_ATE0); //"ATE0\r\n" //模块查询+关闭回显
+ L3_gm35_send_str(AT_INS_ATE0); //"ATE0\r\n" //模块查询+关闭回显
s->ins_ok = 0;
s->ins_stmp = s_nos_tick.t_1s;
s->send = 1;
}
- else if(1 == s->ap_serve_ok) //等待
- {
- s->send = 0;
- s->ap_serve_ok = 0;
- L3_gm35_send_str(AT_INS_AP_SERVER_CLOSE);
- }
- else if(s->serve_ok == 1 || s->ins_ok == 1) //等待
+ else if(s->ins_ok == 1) //等待
{
s->send = 0;
s->serve_ok = 0;
L2_task_go_Tdelay(s->mode == W600_ST ? TTSS_TASK_GM35_FLOW_ST
- :TTSS_TASK_GM35_FLOW_ST_SERVE,D_Tdelay_300ms);
+ :TTSS_TASK_GM35_FLOW_ST_SERVE,D_Tdelay_1s);
}
-
else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
{//超时重发
s->send = 0;
@@ -290,7 +171,7 @@ void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s)
else if(s->ins_ok == 1) //等待
{
s->send = 0;
- L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_WIFI,D_Tdelay_300ms);
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_WIFI,D_Tdelay_1s);
}
else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
@@ -300,22 +181,18 @@ void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s)
TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_WIFI)
if(s->send == 0)
{//发送
- L3_gm35_send_str(GET_WIFI_INS());
+ L3_gm35_send_str(GET_WIFI_INS());
s->ins_ok = 0;
s->st_wifi_ok = 0;
s->ins_stmp = s_nos_tick.t_1s;
s->send = 1;
}
- else if(1 == s->ins_ok && 1 == s->st_wifi_ok) //等待
+ else if(1 == s->st_wifi_ok)
{
s->send = 0;
- LED2 = 0;
- LED2 = ~LED2;
- LED2 = ~LED2;
- LED2 = ~LED2;
- L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPMUX0,D_Tdelay_300ms);
+ R.app_status = WIFI_CONNECTED; //wifi连接成功
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPMUX0,D_Tdelay_1s);
}
-
else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
{//超时重发
s->send = 0;
@@ -332,12 +209,11 @@ void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s)
else if(1 == s->ins_ok) //等待
{
s->send = 0;
- L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_TCP,D_Tdelay_300ms);
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_TCP,D_Tdelay_1s);
}
else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
{//超时重发
-
s->send = 0;
}
TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_TCP)
@@ -345,15 +221,15 @@ void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s)
{//发送
L3_gm35_send_str(AT_INS_ST_TCP);
s->ins_ok = 0;
- s->st_cip_ok = 0;
+ s->serve_ok = 0;
s->ins_stmp = s_nos_tick.t_1s;
s->send = 1;
}
- else if(1 == s->ins_ok || 1 == s->st_cip_ok) //等待
+ else if(1 == s->serve_ok) //等待
{
s->send = 0;
- LED3 = 0;
- L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPMODE1,D_Tdelay_300ms);
+ R.app_status = TCP_CONNECTED;
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPMODE1,D_Tdelay_1s);
}
else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
{//超时重发
@@ -370,7 +246,7 @@ void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s)
else if(1 == s->ins_ok) //等待
{
s->send = 0;
- L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPSEND,D_Tdelay_300ms);
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPSEND,D_Tdelay_1s);
}
else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
{//超时重发
@@ -381,38 +257,39 @@ void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s)
{//发送
L3_gm35_send_str(AT_INS_ST_CIPSEND);
s->ins_ok = 0;
+ s->st_cip_ok = 0;
s->st_error = 0;
s->ins_stmp = s_nos_tick.t_1s;
s->send = 1;
- L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPSEND,D_Tdelay_300ms);//发完之后要等,不然st_error == 0没用 ,没收到error之前也是=0
}
- else if(1 == s->st_error)
+ else if(s->st_cip_ok == 1)
{
s->send = 0;
- L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_TCP,0);
- }
- else if(0 == s->st_error)
- {
- s->send = 0;
- L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_DATA,0);
+ L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_DATA,D_Tdelay_1s);
}
else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
{//超时重发
s->send = 0;
}
TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_DATA)
- //L0_uart2_sendstr("abcdefg");
- s_task_gm35_flow.conn_ok = 1;
L2_task_go(TTSS_TASK_GM35_FLOW_ST_DATA);
+
+
+
+
+
+
+/********************s->mode = W600_AP(按键进入)****************************** */
+
TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_SERVE)
if(s->send == 0)
{//发送
- L3_gm35_send_str(AT_INS_AP_SERVER_CLOSE);
+ L3_gm35_send_str(AT_INS_AP_SERVER_CLOSE); //关闭服务器
s->ins_ok = 0;
s->ins_stmp = s_nos_tick.t_1s;
s->send = 1;
@@ -423,7 +300,7 @@ void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s)
s->st_error = 0;
L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_CIPMODE0,D_Tdelay_300ms);
}
- else if((s->serve_ok == 1 )|| (s->ins_ok == 1)) //等待
+ else if((s->serve_ok == 1)|| (s->ins_ok == 1)) //等待
{
s->send = 0;
s->serve_ok = 0;
@@ -441,14 +318,14 @@ void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s)
s->ins_stmp = s_nos_tick.t_1s;
s->send = 1;
}
- else if(1 == s->ins_ok) //等待
+ else if(1 == s->ins_ok) //等待(等待过程中,进入AP模式)
{
s->send = 0;
L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_AP,D_Tdelay_300ms);
}
else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
- {//超时重发
+ {//超时重发(超时,设置单连接模式)
s->send = 0;
L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_AP_CIPMUX0,D_Tdelay_300ms);
}
@@ -548,7 +425,7 @@ void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s)
if(s->send == 0)
{//发送
L3_gm35_send_str(AT_INS_AP_TCP_TIME);
- LED2 = 0;
+// LED2 = 0;
s->ins_ok = 0;
s->ins_stmp = s_nos_tick.t_1s;
s->send = 1;
@@ -564,7 +441,7 @@ void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s)
{//超时重发
s->send = 0;
}
- TTSS_Task_step(TTSS_TASK_GM35_FLOW_AP_TCP_CONN_WAIT)
+ TTSS_Task_step(TTSS_TASK_GM35_FLOW_AP_TCP_CONN_WAIT) //等待TCP连接
if(1 == s->ap_tcp_ok)
{
s->ap_conn_ok = 0;
@@ -573,6 +450,7 @@ void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s)
s->ins_stmp = s_nos_tick.t_1s;
L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_AP_WIFI_DATA_STA_WAIT,0);
}
+
TTSS_Task_step(TTSS_TASK_GM35_FLOW_AP_WIFI_DATA_STA_WAIT)
if(1 == s->ap_rec_ok)//收到正确的数据才会ok=1
{//ok回复#ok$\r\n
@@ -600,7 +478,7 @@ void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s)
if(s->send == 0)
{//发送
L3_gm35_send_str("#OK$\r\n");
- LED2 = 1;
+// LED2 = 1;
s->ap_rec_ok = 0;
s->ins_ok = 0;
s->send = 1;
@@ -623,9 +501,9 @@ void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s)
else if(1 == s->ins_ok) //等待
{
s->send = 0;
- LED1 = 1;
- LED2 = 1;
- L3_task_gm35_flow_init(W600_ST);
+// LED1 = 1;
+// LED2 = 1;
+ L3_task_W600_flow_init(W600_ST);
}
else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
{//超时重发
diff --git a/source/app/task_w600.h b/source/app/task_w600.h
index 3f4f634..801db16 100644
--- a/source/app/task_w600.h
+++ b/source/app/task_w600.h
@@ -21,33 +21,35 @@
#include "../tpc/ccmodbus.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" //
-#define AT_INS_ST_TCP "AT+CIPSTART=\"TCP\",\"www.tall.wiki\",8195\r\n" //连接服务器
+#define AT_INS_ATE1 "ATE1\r\n" //模块查询+打开回显
+#define AT_INS_ATE0 "ATE0\r\n" //模块查询+关闭回显 1-1
+#define AT_INS_ST "AT+CWMODE=1\r\n" //进入station模式 1-2
+// #define AT_INS_ST_WIFI "AT+CWJAP_DEF=\"ccsens\",\"ccsens123\"\r\n" // 1-3
+#define AT_INS_ST_CIPMUX0 "AT+CIPMUX=0\r\n" // 单连接模式 1-4
+#define AT_INS_ST_TCP "AT+CIPSTART=\"TCP\",\"192.168.1.2\",777\r\n" //连接服务器 1-5
//#define AT_INS_ST_TCP "AT+CIPSTART=\"TCP\",\"192.168.0.81\",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" //
+#define AT_INS_ST_CIPMODE1 "AT+CIPMODE=1\r\n" //设置传输模式 0普通传输模式 1透传模式 1-6
+#define AT_INS_ST_CIPSEND "AT+CIPSEND\r\n" //发送数据 1-7
+#define AT_INS_ST_CIPMODE0 "AT+CIPMODE=0\r\n" //设置传输模式 0普通传输模式 1透传模式 2-2
+#define AT_INS_ST_STARTSMART "AT+CWSTARTSMART=2\r\n" //开启SmartConfig,类型为airkiss
+#define AT_INS_ST_STOPSMART "AT+CWSTOPSMART\r\n" //关闭SmartConfig
-
-#define AT_INS_AP "AT+CWMODE=2\r\n" //进入AP模式
-#define AT_INS_AP_WIFI "AT+CWSAP=\"ccsens_pen\",\"ccsens\",10,4,4,0\r\n" //设置AP参数
-#define AT_INS_AP_CIPMUX1 "AT+CIPMUX=1\r\n" //开启多连接
-#define AT_INS_AP_SERVER "AT+CIPSERVER=1,1001\r\n" //建立服务器
-#define AT_INS_AP_TCP_TIME "AT+CIPSTO=300\r\n"
+#define AT_INS_AP "AT+CWMODE=2\r\n" //进入AP模式 2-3
+#define AT_INS_AP_WIFI "AT+CWSAP=\"ccsens_pen\",\"ccsens\",10,4,4,0\r\n"//设置AP参数 2-4
+#define AT_INS_AP_CIPMUX1 "AT+CIPMUX=1\r\n" //开启多连接 2-5
+#define AT_INS_AP_SERVER "AT+CIPSERVER=1,1001\r\n" //建立服务器 2-6
+#define AT_INS_AP_TCP_TIME "AT+CIPSTO=300\r\n" //设置 TCP 服务器超时时间 2-7
#define AT_INS_AP_SEND "AT+CIPSENDEX=0,6\r\n" //
-#define AT_INS_AP_SERVER_CLOSE "AT+CIPSERVER=0\r\n" //关闭服务器
+#define AT_INS_AP_SERVER_CLOSE "AT+CIPSERVER=0\r\n" //关闭服务器 2-1
#define AT_INS_AP_CLOSE "AT+CWQAP\r\n" //断开AP连接
////<<<<<<<<<<<<<<<<<<<_s_task_test_<<<<<<<<<<<<<<<<<<<<<<<<
enum _s_w600_mode
{
W600_ST,W600_AP
};
-struct _s_task_gm35_gprs_
+struct _s_task_W600_Para
{
TS_task task;
vU8 send;
@@ -83,7 +85,7 @@ struct _s_task_gm35_gprs_
vU8 ack_flag;//下行数据ack
vU8 gm35_reboot_times; //gm35重启次数
};
-extern struct _s_task_gm35_gprs_ s_task_gm35_flow;
+extern struct _s_task_W600_Para _s_task_w600_para;
#define STATUS_GM35_INIT 0
#define STATUS_GM35_MODULE_OK 1
@@ -94,23 +96,13 @@ extern struct _s_task_gm35_gprs_ s_task_gm35_flow;
#define BUF_SIZE 5
#define BUF_MAX 32 //注意缓冲区的长度
-
-extern struct _s_task_gm35_gprs_ s_task_gm35_flow;
-
-
-
-
-
-extern struct _s_task_gm35_gprs_ s_task_gm35_flow;
extern void L3_gm35_send_str(U8 *str);
-extern void L3_gm35_send_data(U8 *buf , U16 len);
-extern void L3_gm35_rcv_data(U8* buf,U8 num);
-
-extern void L3_task_gm35_flow_init(U8 mode);
-extern void L2_task_gm35_flow_handle(struct _s_task_gm35_gprs_ *s);
-extern void L3_uart2_exp_protocol(struct _s_PC1_0D0A_ *p);
+extern void L3_task_W600_flow_init(U8 mode);
+extern void L2_task_W600_flow_handle(struct _s_task_W600_Para *s);
+// extern void L3_uart2_exp_protocol(struct _s_PC1_0D0A_ *p);
+ extern void L3_uart2_wifi_parse(void);
#endif
diff --git a/source/bsp/bsp_config.c b/source/bsp/bsp_config.c
index 75a9ca8..f52057d 100644
--- a/source/bsp/bsp_config.c
+++ b/source/bsp/bsp_config.c
@@ -59,7 +59,7 @@ void L0_board_config(void)
//LED
//D_stdIO_P1(BITN7);
- //D_stdIO_P5(BITN5);
+ D_stdIO_P5(BITN5);
//IO
diff --git a/source/bsp/bsp_config.h b/source/bsp/bsp_config.h
index b753abe..dee9f0e 100644
--- a/source/bsp/bsp_config.h
+++ b/source/bsp/bsp_config.h
@@ -160,7 +160,7 @@
//外设定义
#define LED1 P27 //D4
- //#define LED2 P55 //D4
+ #define LED2 P55 //D4
#define LED3 P02 //D4
//#define LED4 P26 //D4
diff --git a/source/clib/clib.c b/source/clib/clib.c
index 3ce59dc..1c0fd66 100644
--- a/source/clib/clib.c
+++ b/source/clib/clib.c
@@ -15,7 +15,11 @@
#include "../msp/uart0.h"
//#include "../msp/time.h"
-
+U8 Lc_strcmp(U8 *s1,U8 *s2)
+{
+ while(*s1 != 0 && *s2 != 0 && *s1++ == *s2++);
+ return *s1 - *s2;
+}
U8 Lc_strStartsWith(U8 *s1,U8 *s2)
{
while(*s1 && *s2)
diff --git a/source/clib/clib.h b/source/clib/clib.h
index b1c0f3d..8c76035 100644
--- a/source/clib/clib.h
+++ b/source/clib/clib.h
@@ -122,6 +122,7 @@ 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,U16 len);
extern U8 Lc_strStartsWith(U8 *s1,U8 *s2);
+extern U8 Lc_strcmp(U8 *s1,U8 *s2);
void Lc_memset8bits (void *s,unsigned char c,unsigned char n);
diff --git a/source/msp/UART0.C b/source/msp/UART0.C
index 60911da..f104a6b 100644
--- a/source/msp/UART0.C
+++ b/source/msp/UART0.C
@@ -33,7 +33,7 @@ void L0_uart0_buf_init(void)
ts_uart[uNum0].r.overtime_t = 0;
//定义接收处理协议
- ts_uart[uNum0].tp_handler = L0_uartN_overtime_callback;
+ ts_uart[uNum0].tp_handler = NULL;
ts_uart[uNum0].uartx = uNum0;
//串口初始化
diff --git a/source/msp/UART2.c b/source/msp/UART2.c
index df89efc..e306983 100644
--- a/source/msp/UART2.c
+++ b/source/msp/UART2.c
@@ -51,6 +51,10 @@ void L0_uart2_buf_init(void)
// D_UART2_485_RX()
}
+
+
+
+
/*************************************************
UART 中断
*************************************************/
diff --git a/source/msp/UART3.c b/source/msp/UART3.c
index d6bea23..1f392be 100644
--- a/source/msp/UART3.c
+++ b/source/msp/UART3.c
@@ -40,7 +40,8 @@ void L0_uart3_buf_init(void)
ts_uart[uNum3].r.overtime_t = 0;
//串口协议解析专用字段
- ts_uart[uNum3].tp_handler = L0_uartN_overtime_callback;
+ // ts_uart[uNum3].tp_handler = L0_uartN_overtime_callback;
+ ts_uart[uNum3].tp_handler = NULL;
ts_uart[uNum3].uartx = uNum3;
//串口初始化
diff --git a/source/msp/UART4.C b/source/msp/UART4.C
index b6549f4..4116189 100644
--- a/source/msp/UART4.C
+++ b/source/msp/UART4.C
@@ -49,7 +49,7 @@ void L0_uart4_buf_init(void)
ts_uart[uNum4].r.overtime_t = 0;
//串口协议解析专用字段
- ts_uart[uNum4].tp_handler = L0_uartN_overtime_callback;
+ ts_uart[uNum4].tp_handler = NULL;
ts_uart[uNum4].uartx = uNum4;
//串口初始化
diff --git a/source/msp/UARTX.h b/source/msp/UARTX.h
index c2bcf67..87896ef 100644
--- a/source/msp/UARTX.h
+++ b/source/msp/UARTX.h
@@ -13,16 +13,17 @@
#define D_BRT_COUNT(t,clk,uartBRT) (U16)(65536- (clk / (4 * uartBRT * t)))
/////可以依据实际使用独立定制
-#define D_send1_max 64
-#define D_send2_max 64
-#define D_send3_max 128
-#define D_send4_max 64
+// #define D_send1_max 64
+#define D_send1_max 32
+#define D_send2_max 32
+#define D_send3_max 32
+#define D_send4_max 32
/////可以依据实际使用独立定制
-#define D_recv1_max 64
-#define D_recv2_max 64
-#define D_recv3_max 128
-#define D_recv4_max 64
+#define D_recv1_max 32
+#define D_recv2_max 32
+#define D_recv3_max 32
+#define D_recv4_max 32
typedef struct
{