Browse Source

feature: 1.在原有task中增加Smartconfig分支任务

issu01
Zhangwen 4 months ago
parent
commit
b4c179b0a1
  1. 12
      source/app/app_config.h
  2. 42
      source/app/main.c
  3. 82
      source/app/task_SmartConfig.c
  4. 37
      source/app/task_appstatus.c
  5. 1
      source/app/task_keystatus.c
  6. 421
      source/app/task_w600 copy.c
  7. 334
      source/app/task_w600.c
  8. 4
      source/app/task_w600.h
  9. 6
      source/bsp/bsp_WT2605B.c
  10. 3
      source/bsp/bsp_WT2605B.h

12
source/app/app_config.h

@ -35,11 +35,13 @@ typedef struct pen_point
typedef enum
{
POW_OFF = 0, //关机状态
POW_ON = 1, //开机状态
WIFI_CONFIG = 2, //WIFI配置连接中
WIFI_CONNECTED = 3, //WIFI连接成功
TCP_CONNECTED = 4, //TCP连接成
POW_OFF = 0, //关机状态
POW_ON = 1, //开机状态
WIFI_CONFIG = 2, //WIFI配网模式
WIFI_CONFIG_Phone = 3, //WIFI配网——手机APP配置连接中
WIFI_CONFIG_COMPLETE = 4, //WIFI配网成功
WIFI_CONNECTED = 5, //WIFI连接成功
TCP_CONNECTED = 6, //TCP连接成功
}APP_STATUS;

42
source/app/main.c

@ -72,7 +72,7 @@ void L0_TASK_init(void)
//===============================================
void main(void)
{
int i;
// int i;
// u8 voice_30[6] = {0x7E,0x04,0xAE,0x1E,0xD0,0xEF};
// u8 voice_13[6] = {0x7E,0x04,0xAE,0x0D,0xBF,0xEF};
@ -93,8 +93,6 @@ void main(void)
L0_uart0_sendArray("PEN_V2",6);
L0_uart0_0d0a();
//Lc_delay_ms(3000);
//L0_uart3_sendArray((U8 *)&voice_30,6);
@ -116,25 +114,10 @@ void main(void)
if(1 == s_nos_tick.t1s_heartbeat)//1s
{
s_nos_tick.t1s_heartbeat = 0;//置0清空
// L0_uart0_sendstr("_s_task_w600_para.serve_ok = ");
// L0_uart0_uchex(_s_task_w600_para.serve_ok);
// L0_uart0_0d0a();
// D_print_heartbeat()
// L0_uart0_uc('.');
// L0_uart0_sendstr("eeprom test :");
// L0_uart0_0d0a();
// for (i = 0; i < DATA_SAVE_LEN; i++)
// {
// L0_uart0_uchex(i);
// L0_uart0_uc('=');
// L0_uart0_uchex(data_save_arr[i].val);
// L0_uart0_0d0a();
// }
// L0_uart0_sendstr("R.app_status = ");
// L0_uart0_uchex(R.app_status);
// L0_uart0_0d0a();
// L0_uart0_uc('@');
// L0_uart0_ulhex((U32)&task_smartconfig);
L0_uart0_uc('.');
L0_uart0_sendstr("_s_w600_mode =");
L0_uart0_uchex(_s_task_w600_para.mode);
}
L3_task_appstatus_handler(&_s_task_appstatus);
@ -145,15 +128,16 @@ void main(void)
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)
// if (R.app_status == POW_ON)
// {
// ts_uart[uNum2].r.ok = 0;
// L0_uart0_sendArray(ts_uart[uNum2].r.buf, D_recv2_max);
// L3_uart2_wifi_parse();
// L2_task_W600_flow_handle(&_s_task_w600_para);
// }
// if (R.app_status == WIFI_CONFIG)
// {
// L2_task_W600_flow_handle(&_s_task_w600_para);
// }
#if 0
// 串口3的 接收数据 测试
if(ts_uart[uNum3].r.ok == 1)

82
source/app/task_SmartConfig.c

@ -29,8 +29,7 @@ void L3_task_SmartConfig_init(void)
L3_task_s_go(task_smartconfig,D_task_init);
}
#define D_task_DETECTCHANGE 0x50
#define D_task_SAMRTCONFIG 0x51
#define D_task_SAMRTCONFIG 0x50
#define D_task_SMARTCSUCCESS 0x52
#define D_task_SAMRTCSTOP 0x53
#define D_task_SAMRTCSTOPPED 0x54
@ -38,51 +37,42 @@ void L3_task_SmartConfig_init(void)
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_init()
// L2_task_go(D_task_SAMRTCONFIG);
// // 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)
{
// TTSS_Task_step(D_task_SAMRTCONFIG)
// 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);
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_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();
// TTSS_Task_end();
}

37
source/app/task_appstatus.c

@ -10,7 +10,7 @@
/// @note cc_AS_stc02
//////////////////////////////////////////////////////////////////////////////
#include "task_appstatus.h"
#include "../app/task_appstatus.h"
#include "../bsp/bsp_led.h"
#include "../bsp/bsp_key.h"
#include "../bsp/bsp_WT2605B.h"
@ -18,6 +18,7 @@
#include "../bsp/bsp_config.h"
#include "../msp/uart0.h"
#include "../bsp/bsp_led.h"
#include "../app/task_w600.h"
S_TASK_APPSTATUS _s_task_appstatus;
@ -85,36 +86,40 @@ void L3_task_appstatus_handler(S_TASK_APPSTATUS *s)
{
// 灯灭
L2_LED_OFF();
// // 音频播放
// L2_WT2605B_PWRON();
// Lc_delay_ms(1000);
// 音频播放
L2_WT2605B_broadcast(&audio_config_mode);
// // OID和WIFI通电
// L0_PW_3V3_ON();
// 配网任务初始化,进入配网
L3_gm35_send_str("+++");
L3_task_W600_flow_init(W600_SC);
}
else if (s->status == WIFI_CONFIG_Phone)
{
L2_WT2605B_broadcast(&audio_config_phone);
}else if (s->status == WIFI_CONFIG_COMPLETE)
{
L2_WT2605B_broadcast(&audio_config_complete);
// 配网成功,进入STAION模式
L3_task_W600_flow_init(W600_ST);
}
else if (s->status == WIFI_CONNECTED)
{
// 灯灭
L2_LED_OFF();
// 音频播放
// L2_WT2605B_PWRON();
// Lc_delay_ms(1000);
L2_WT2605B_broadcast(&audio_wifi_connected);
// // OID和WIFI通电
// L0_PW_3V3_ON();
}
else if (s->status == TCP_CONNECTED)
{
// LED红灯灭,LED绿灯常亮
L2_GREEN_LED_ON();
// // 音频播放
// L2_WT2605B_PWRON();
// Lc_delay_ms(1000);
// 音频播放
L2_WT2605B_broadcast(&audio_TCP_connected);
// // OID和WIFI通电
// L0_PW_3V3_ON();
}
L2_task_go_Tdelay(D_task_DETECTCHANGE,D_Tdelay_300ms);

1
source/app/task_keystatus.c

@ -14,6 +14,7 @@
#include "../bsp/bsp_key.h"
#include "../app/app_config.h"
#include "../msp/uart0.h"
#include "../app/task_w600.h"
S_TASK_KEYSTATUS _s_task_keystatus;

421
source/app/task_w600 copy.c

@ -505,241 +505,190 @@ void L2_task_W600_flow_handle(struct _s_task_W600_Para *s)
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();
}
// 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;
// }

334
source/app/task_w600.c

@ -82,10 +82,10 @@ void L3_uart2_wifi_parse(void)
{
_s_task_w600_para.serve_ok = 1;
}
// else if(Lc_strcmp(wifi_tmp,"CONNECT") == 0 )
// {
// _s_task_w600_para.serve_ok = 1;
// }
else if(Lc_strcmp(wifi_tmp,"smartconfig connected wifi") == 0 )
{
_s_task_w600_para.smartc_ok = 1;
}
// else if(Lc_strcmp(wifi_tmp,"ALREADY CONNECTED") == 0 )
// {
// _s_task_w600_para.serve_ok = 1;
@ -140,6 +140,15 @@ void L3_task_W600_flow_init(U8 mode)
#define TTSS_TASK_MODE_CONFIG_WAIT 0x2A
#define TTSS_TASK_MODE_SERVER_CLOSE 0x2B
#define TTSS_TASK_GM35_FLOW_ST_CIPOFF 0x30
#define TTSS_TASK_GM35_FLOW_ATE0QV 0x31
#define TTSS_TASK_GM35_FLOW_ST_SMARTCONFIG 0x32
#define TTSS_TASK_GM35_FLOW_ST_SMARTCWATING 0x33
#define TTSS_TASK_GM35_FLOW_ST_SAMRTCSTOP 0x34
#define TTSS_TASK_GM35_FLOW_ST_SAMRTCSTOPPED 0x35
#define INS_TIMEOUT 5
#define GM35_SEND_DATA_INTERVAL 300
#define GM35_SEND_HEART_INTERVAL 60
@ -152,6 +161,7 @@ void L2_task_W600_flow_handle(struct _s_task_W600_Para *s)
TTSS_Task_step(TTSS_TASK_GM35_FLOW_ATEQV)
if(s->send == 0)
{//发送
L0_uart0_uc('#');
L3_gm35_send_str(AT_INS_ATE0); //"ATE0\r\n" //模块查询+关闭回显
s->ins_ok = 0;
s->ins_stmp = s_nos_tick.t_1s;
@ -161,8 +171,9 @@ void L2_task_W600_flow_handle(struct _s_task_W600_Para *s)
{
s->send = 0;
s->serve_ok = 0;
L0_uart0_uc(')');
L2_task_go_Tdelay(s->mode == W600_ST ? TTSS_TASK_GM35_FLOW_ST
:TTSS_TASK_GM35_FLOW_ST_SERVE,D_Tdelay_1s);
:TTSS_TASK_GM35_FLOW_ST_CIPOFF,D_Tdelay_1s);
}
else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
{//超时重发
@ -282,6 +293,88 @@ void L2_task_W600_flow_handle(struct _s_task_W600_Para *s)
TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_DATA)
L2_task_go(TTSS_TASK_GM35_FLOW_ST_DATA);
/********************s->mode = W600_SC(按键进入)****************************** */
TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_CIPOFF)
if(s->send == 0)
{//发送
L0_uart0_uc('~');
L3_gm35_send_str("+++"); //关闭CIP
s->ins_ok = 0;
s->ins_stmp = s_nos_tick.t_1s;
s->send = 0;
L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ATE0QV,D_Tdelay_1s);
}
// else if(1 == s->ins_ok)
// {
// s->send = 0;
// s->st_error = 0;
// L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_SMARTCONFIG,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_ATE0QV)
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(s->ins_ok == 1) //等待
{
s->send = 0;
L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_SMARTCONFIG,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_SMARTCONFIG)
if(s->send == 0)
{//发送
L3_gm35_send_str(AT_INS_ST_STARTSMART); //发送SmartConfig模式控制指令,开启SmartConfig模式
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->smartc_ok = 0;
R.app_status = WIFI_CONFIG_Phone;
L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_SMARTCWATING,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_SMARTCWATING)
if(s->smartc_ok == 1)
{
L0_uart0_sendstr("SmartConfig Success!");
L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_SAMRTCSTOP,D_Tdelay_1s);
}
TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_SAMRTCSTOP)
if(s->send == 0)
{//发送
L3_gm35_send_str(AT_INS_ST_STOPSMART); //发送SmartConfig模式控制指令,退出SmartConfig模式
s->ins_ok = 0;
s->ins_stmp = s_nos_tick.t_1s;
s->send = 1;
}
else if(1 == s->ins_ok)
{
s->send = 1;
R.app_status = WIFI_CONFIG_COMPLETE;
}
else if(s_nos_tick.t_1s - s->ins_stmp > INS_TIMEOUT)
{//超时重发
s->send = 0;
}
TTSS_Task_end();
}
@ -290,234 +383,3 @@ void L2_task_W600_flow_handle(struct _s_task_W600_Para *s)
/********************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();
}

4
source/app/task_w600.h

@ -47,7 +47,7 @@
////<<<<<<<<<<<<<<<<<<<_s_task_test_<<<<<<<<<<<<<<<<<<<<<<<<
enum _s_w600_mode
{
W600_ST,W600_AP
W600_ST,W600_AP,W600_SC
};
struct _s_task_W600_Para
{
@ -84,6 +84,8 @@ struct _s_task_W600_Para
vU8 sign_flag; //发送登录数据标志
vU8 ack_flag;//下行数据ack
vU8 gm35_reboot_times; //gm35重启次数
vU8 smartc_ok; //smartconfig是否成功
};
extern struct _s_task_W600_Para _s_task_w600_para;

6
source/bsp/bsp_WT2605B.c

@ -7,12 +7,14 @@ TS_SPEECH_AUDIO audio_poweron = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x32,0x90,
TS_SPEECH_AUDIO audio_wifi_connected = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x33,0x91,0xEF};
TS_SPEECH_AUDIO audio_TCP_connected = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x34,0x92,0xEF};
TS_SPEECH_AUDIO audio_config_mode = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x35,0x93,0xEF};
TS_SPEECH_AUDIO audio_config_success = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x36,0x94,0xEF};
TS_SPEECH_AUDIO audio_config_complete = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x36,0x94,0xEF};
TS_SPEECH_AUDIO audio_config_phone = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x37,0x95,0xEF};
TS_SPEECH_AUDIO audio_select = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x37,0x95,0xEF};
TS_SPEECH_AUDIO audio_begin = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x38,0x96,0xEF};
TS_SPEECH_AUDIO audio_tip = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x39,0x97,0xEF};
//TS_SPEECH_AUDIO audio_powerdown = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x3A,0x98,0xEF};
TS_SPEECH_AUDIO audio_zmg_again = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x3B,0x99,0xEF};
TS_SPEECH_AUDIO audio_zmg_success = {0x7E,0x07,0xA3,0x54,0x30,0x30,0x3C,0x9A,0xEF};

3
source/bsp/bsp_WT2605B.h

@ -30,7 +30,8 @@ extern TS_SPEECH_AUDIO audio_poweron;
extern TS_SPEECH_AUDIO audio_wifi_connected;
extern TS_SPEECH_AUDIO audio_TCP_connected;
extern TS_SPEECH_AUDIO audio_config_mode;
extern TS_SPEECH_AUDIO audio_config_success;
extern TS_SPEECH_AUDIO audio_config_complete;
extern TS_SPEECH_AUDIO audio_config_phone;
extern TS_SPEECH_AUDIO audio_select;
extern TS_SPEECH_AUDIO audio_begin;

Loading…
Cancel
Save