|
|
|
////////////////////////////////////////////////////////////////////////////
|
|
|
|
///@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 "../app/task_w600.h"
|
|
|
|
#include "../app/task_w600_ptc.h"
|
|
|
|
#include "app_config.h"
|
|
|
|
#include "../msp/uart0.h"
|
|
|
|
#include "../msp/uart2.h"
|
|
|
|
#include "../asp/asp_oid.h"
|
|
|
|
#include "../bsp/bsp_config.h"
|
|
|
|
#include "../bsp/bsp_WT2605B.h"
|
|
|
|
|
|
|
|
struct _s_task_W600_Para _s_task_w600_para;
|
|
|
|
|
|
|
|
void L3_gm35_send_str(U8 *str)
|
|
|
|
{
|
|
|
|
L0_uart2_sendstr(str);
|
|
|
|
if(G.debug)
|
|
|
|
{
|
|
|
|
L0_uart0_sendstr(str);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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[128], wifi_tmp[64];
|
|
|
|
U8 *wifi_rev_buf, 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.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;
|
|
|
|
if (_s_task_w600_para.st_cip_ok == 1)
|
|
|
|
{
|
|
|
|
// L0_uart0_uc('$');
|
|
|
|
// L0_uart0_sendArrayHex(wifi_rev_buf,ts_uart[uNum2].r.num);
|
|
|
|
// L0_uart0_0d0a();
|
|
|
|
// 获取今日训练内容
|
|
|
|
if (wifi_rev_buf[3] == 0xA2)
|
|
|
|
{
|
|
|
|
if (1 == parse_QueryAckPkg(wifi_rev_buf,ts_uart[uNum2].r.num))
|
|
|
|
{
|
|
|
|
_s_task_w600_para.Recieve_QueryAck_Flag = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (wifi_rev_buf[3] == 0xA0)
|
|
|
|
{
|
|
|
|
// 心跳包暂时不处理
|
|
|
|
}
|
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
tmp_num = 0;
|
|
|
|
while(*ptr != 0)
|
|
|
|
{
|
|
|
|
U8 curr = *ptr++;
|
|
|
|
U8 next = *ptr;
|
|
|
|
|
|
|
|
if(curr != '\r' && curr != '\n' && curr != '\0')
|
|
|
|
{
|
|
|
|
wifi_tmp[tmp_num++] = curr;
|
|
|
|
}
|
|
|
|
if((tmp_num > 0) && (next == '\r' || next == '\n' || next == '\0'))
|
|
|
|
{
|
|
|
|
//当前行结束
|
|
|
|
wifi_tmp[tmp_num] = 0;
|
|
|
|
|
|
|
|
L0_uart0_uc('#');
|
|
|
|
L0_uart0_sendstr(wifi_tmp);
|
|
|
|
L0_uart0_0d0a();
|
|
|
|
|
|
|
|
if(Lc_strcmp(wifi_tmp,"busy p...") == 0)
|
|
|
|
{
|
|
|
|
_s_task_w600_para.busy = 1;
|
|
|
|
}
|
|
|
|
else if(Lc_strcmp(wifi_tmp,"OK") == 0)
|
|
|
|
{
|
|
|
|
_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 || Lc_strcmp(wifi_tmp,"ALREADY CONNECTED") == 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,">") == 0)
|
|
|
|
{
|
|
|
|
_s_task_w600_para.st_cip_ok = 1;
|
|
|
|
}
|
|
|
|
else if(Lc_strStartsWith(wifi_tmp,"ssid:"))
|
|
|
|
{
|
|
|
|
Lc_strcpy(G.st_sid,wifi_tmp + 5);
|
|
|
|
}
|
|
|
|
else if(Lc_strStartsWith(wifi_tmp,"password:"))
|
|
|
|
{
|
|
|
|
Lc_strcpy(G.st_pwd,wifi_tmp + 9);
|
|
|
|
L0_Iap_Program_array(EEPROM_DATA_ADDR,(U8*)&G,sizeof(G));
|
|
|
|
}
|
|
|
|
tmp_num = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------------------------------------ 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;
|
|
|
|
_s_task_w600_para.last_send_seconds = 0;
|
|
|
|
_s_task_w600_para.st_cip_ok = 0;
|
|
|
|
// 放到TCP连接成功是初始化
|
|
|
|
// _s_task_w600_para.Send_Query_Flag = 1;
|
|
|
|
// _s_task_w600_para.Recieve_QueryAck_Flag = 0;
|
|
|
|
// _s_task_w600_para.Send_Submit_Flag = 0;
|
|
|
|
// _s_task_w600_para.queryackpkg.Plan_ID[0] = 0;
|
|
|
|
// _s_task_w600_para.queryackpkg.Plan_ID[1] = 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
//------------------------ 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 TTSS_TASK_GM35_FLOW_ST_CIPOFF 0x30
|
|
|
|
#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 TTSS_TASK_GM35_SEND_TPC 0x36
|
|
|
|
#define TTSS_TASK_GM35_SEND_HEARTBEAT 0x37
|
|
|
|
|
|
|
|
|
|
|
|
#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_ST_CIPOFF,D_Tdelay_5s);//上电等待5s
|
|
|
|
|
|
|
|
TTSS_Task_step(TTSS_TASK_GM35_FLOW_ST_CIPOFF)
|
|
|
|
if(s->send == 0)
|
|
|
|
{//发送
|
|
|
|
L3_gm35_send_str("+++"); //关闭CIP
|
|
|
|
s->ins_ok = 0;
|
|
|
|
s->ins_stmp = s_nos_tick.t_1s;
|
|
|
|
s->send = 0;
|
|
|
|
s->busy = 0;
|
|
|
|
L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ATEQV,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_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;
|
|
|
|
s->busy = 0;
|
|
|
|
}
|
|
|
|
else if(s->busy == 0 && 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_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)
|
|
|
|
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;
|
|
|
|
s->busy = 0;
|
|
|
|
}
|
|
|
|
else if(s->busy == 0 && 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;
|
|
|
|
s->busy = 0;
|
|
|
|
}
|
|
|
|
else if(s->busy == 0 && 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;
|
|
|
|
s->busy = 0;
|
|
|
|
}
|
|
|
|
else if(s->busy == 0 && 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->serve_ok = 0;
|
|
|
|
s->ins_stmp = s_nos_tick.t_1s;
|
|
|
|
s->send = 1;
|
|
|
|
s->busy = 0;
|
|
|
|
}
|
|
|
|
else if(s->busy == 0 && 1 == s->serve_ok) //等待
|
|
|
|
{
|
|
|
|
s->send = 0;
|
|
|
|
R.app_status = TCP_CONNECTED;
|
|
|
|
// 记录时间
|
|
|
|
|
|
|
|
_s_task_w600_para.Send_Query_Flag = 1;
|
|
|
|
_s_task_w600_para.Recieve_QueryAck_Flag = 0;
|
|
|
|
_s_task_w600_para.Send_Submit_Flag = 0;
|
|
|
|
_s_task_w600_para.queryackpkg.Plan_ID[0] = 0;
|
|
|
|
_s_task_w600_para.queryackpkg.Plan_ID[1] = 0;
|
|
|
|
|
|
|
|
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;
|
|
|
|
s->busy = 0;
|
|
|
|
}
|
|
|
|
else if(s->busy == 0 && 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_cip_ok = 0;
|
|
|
|
s->st_error = 0;
|
|
|
|
s->ins_stmp = s_nos_tick.t_1s;
|
|
|
|
s->send = 1;
|
|
|
|
s->busy = 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
else if(s->busy == 0 && s->st_cip_ok == 1)
|
|
|
|
{
|
|
|
|
s->send = 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)
|
|
|
|
if (s->Send_Query_Flag == 1)
|
|
|
|
{
|
|
|
|
U8 num = constructor_QueryTaskPkg();
|
|
|
|
s->Send_Query_Flag = 0;
|
|
|
|
_s_task_w600_para.last_send_seconds = s_nos_tick.t_1s;
|
|
|
|
L0_uart2_sendArray(&_s_task_w600_para.querytaskpkg,num);
|
|
|
|
// L0_uart0_uc('Q');
|
|
|
|
// L0_uart0_sendArray(&_s_task_w600_para.querytaskpkg,num);
|
|
|
|
}
|
|
|
|
else if (s->Send_Submit_Flag == 1)
|
|
|
|
{
|
|
|
|
U8 num = constructor_SubmitTaskPkg();
|
|
|
|
s->Send_Submit_Flag = 0;
|
|
|
|
_s_task_w600_para.last_send_seconds = s_nos_tick.t_1s;
|
|
|
|
L0_uart2_sendArray(&_s_task_w600_para.submittaskpkg,num);
|
|
|
|
// L0_uart0_uc('S');
|
|
|
|
// L0_uart0_sendArray(&_s_task_w600_para.submittaskpkg,num);
|
|
|
|
}
|
|
|
|
else if (s->Recieve_QueryAck_Flag == 1)
|
|
|
|
{
|
|
|
|
s->Recieve_QueryAck_Flag = 0;
|
|
|
|
// 正常训练
|
|
|
|
if (_s_task_w600_para.queryackpkg.Tranning_Status == 0)
|
|
|
|
{
|
|
|
|
L2_WT2605B_Broadcast_TPC(&s->queryackpkg.Game_ID);
|
|
|
|
L0_uart0_uchex('A');
|
|
|
|
L0_uart0_sendArray(&_s_task_w600_para.queryackpkg,15);
|
|
|
|
}
|
|
|
|
// 训练完成
|
|
|
|
else if (_s_task_w600_para.queryackpkg.Tranning_Status == 1)
|
|
|
|
{
|
|
|
|
L2_WT2605B_Broadcast(&audio_tcp_complete);
|
|
|
|
L0_uart0_uchex('A');
|
|
|
|
L0_uart0_sendArray(&_s_task_w600_para.queryackpkg,15);
|
|
|
|
}
|
|
|
|
// 无训练任务
|
|
|
|
else if (_s_task_w600_para.queryackpkg.Tranning_Status == 2)
|
|
|
|
{
|
|
|
|
L2_WT2605B_Broadcast(&audio_tcp_noplan);
|
|
|
|
L0_uart0_uchex('A');
|
|
|
|
L0_uart0_sendArray(&_s_task_w600_para.queryackpkg,15);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
L2_task_go_Tdelay(TTSS_TASK_GM35_SEND_HEARTBEAT,D_Tdelay_100ms);
|
|
|
|
TTSS_Task_step(TTSS_TASK_GM35_SEND_HEARTBEAT)
|
|
|
|
if (s_nos_tick.t_1s - _s_task_w600_para.last_send_seconds > 60)
|
|
|
|
{
|
|
|
|
U8 num = constructor_HeartBeatPkg();
|
|
|
|
L0_uart2_sendArray(&_s_task_w600_para.heartbeatpkg,num);
|
|
|
|
// L0_uart0_sendArray(&_s_task_w600_para.heartbeatpkg,num);
|
|
|
|
_s_task_w600_para.last_send_seconds = s_nos_tick.t_1s;
|
|
|
|
}
|
|
|
|
L2_task_go_Tdelay(TTSS_TASK_GM35_FLOW_ST_DATA,D_Tdelay_100ms);
|
|
|
|
|
|
|
|
/*******************************************s->mode = W600_SC(按键进入)********************************************** */
|
|
|
|
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;
|
|
|
|
s->busy = 0;
|
|
|
|
}
|
|
|
|
else if(s->busy == 0 && 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;
|
|
|
|
s->busy = 0;
|
|
|
|
}
|
|
|
|
else if(s->busy == 0 && 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();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|