/**
******************************************************************************
* @file USART/Interrupt/main.c
* @author MCD Application Team
* @version V3.5.0
* @date 08-April-2011
* @brief Main program body
******************************************************************************
* @attention
*
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
* TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*
*
© COPYRIGHT 2011 STMicroelectronics
******************************************************************************
*/
/* Includes ------------------------------------------------------------------*/
#include "wifi9113.h"
#include "wifi_gpio_conf.h"
#include "ds1302.h"
#include "Delay.h"
#define FALSE false
#define TRUE true
char bAtSentBuff[255];
char DoByteBuffer[255];
char bAtRecBuff[255];
unsigned char TxCounterWifi = 0x00;
unsigned char RxCounterWifi = 0x00;
unsigned char WifiDataToXmt = 0x00;
//unsigned long wifi_start_time;
unsigned char Mac_Addr[6];
unsigned char Mac_Temp_Buff[17];
unsigned char Wifi_Rec_Buff[255];
unsigned char WifiCheckStep = 0;
unsigned char WifiProcessStep = 0;
unsigned char WifiConnectStep = 0;
unsigned char WifiConnectNext = 0;
unsigned long WifiTimeReset = 0; // Rec9113_time=0;
unsigned long WifiTimeLed = 0; // Rec9113_time=0;
unsigned char start = 0;
unsigned char TOTAL_MAC_LENGTH = 0;
bool WifiHaveRecFlag = false;
unsigned char WifiDatCome = 0;
unsigned char TotalRecvBytes = 0; //REC NUMBER
unsigned char SERVER_IP_ADDRESS[] = SERVER_IP_ADDRESS_DEFAULT;
unsigned char WIFI_LED_FLAG;
unsigned int WIFI_ERROR_NUM;
//unsigned char WIFI_ERROR_TIME;
char sent_data_buf[255];
u16 sent_data_size = 0;
static uint8_t outBuffer[256];
u8 Packaging_wifi_sendbuffer ( u8 type, u8 *inBuffer, u8 inSize )
{
uint8_t i, check_num;
outBuffer[0] = 0x4B;
outBuffer[1] = 0x52;
outBuffer[2] = inSize + 3;
outBuffer[3] = type;
for ( i = 0; i < inSize; i++ )
{
outBuffer[4 + i] = inBuffer[i];
}
check_num = outBuffer[2];
for ( i = 3; i < 4 + inSize; i++ )
{
check_num ^= outBuffer[i];
}
outBuffer[4 + inSize] = check_num;
outBuffer[4 + inSize + 1] = 0x55;
memcpy ( inBuffer, outBuffer, inSize + 6 );
return ( inSize + 6 );
}
void AtSent ( char *SendBuff, unsigned int BuffCount )
{
#if 0
unsigned char i;
for ( i = 0; i < BuffCount; i++ )
{
USART_SendData ( USART9113, SendBuff[i] );
// while( USART_GetFlagStatus(USART9113,USART_FLAG_TC)!= 1);
while ( USART_GetFlagStatus ( USART9113, USART_FLAG_TC ) == RESET );
}
#else
// Wait for previous xmt to complete
while ( TxCounterWifi < WifiDataToXmt );
// Setup next XMT
memcpy ( bAtSentBuff, SendBuff, BuffCount );
TxCounterWifi = 0;
WifiDataToXmt = BuffCount;
//USART_ITConfig(USART9113, USART_IT_RXNE, DISABLE); //发送前,关接收中断
USART_ITConfig ( Wifi_UART, USART_IT_TXE, ENABLE );
#endif
}
int HighBytetoASCII ( unsigned char Data_Byte_in )
{
unsigned char Data_Temp1;
// byte Data_Temp2;
Data_Temp1 = Data_Byte_in >> 4 & 0x0f;
// Data_temp2=Data_Byte_in&0x0f;
if ( Data_Temp1 > 9 )
{
Data_Temp1 = ( Data_Temp1 - 10 ) + 0x61;
}
else
Data_Temp1 = Data_Temp1 + 0x30;
return Data_Temp1;
}
int LowBytetoASCII ( unsigned char Data_Byte_in )
{
// byte Data_Temp1;
unsigned char Data_temp2;
// Data_Temp1=Data_Byte_in>>4&0x0f;
Data_temp2 = Data_Byte_in & 0x0f;
if ( Data_temp2 > 9 )
{
Data_temp2 = ( Data_temp2 - 10 ) + 0x61;
}
else
Data_temp2 = Data_temp2 + 0x30;
return Data_temp2;
}
void clear_bAtRecBuff ( void )
{
memset ( bAtRecBuff, 0, start );
start = 0;
}
void clear_bAtSentBuff ( void )
{
memset ( bAtSentBuff, 0, WifiDataToXmt );
}
/*
查找字符串位置
<=255bit
*/
char *FindStrPos ( char *socStr, u8 socSize, char *findStr, u8 findSize )
{
u8 i, j, t;
for ( i = 0; i < socSize; i++ )
{
for ( j = 0, t = 0; j < findSize; j++ )
{
if ( findStr[j] == socStr[i + j] )
{
t++;
if ( t == findSize )
{
return ( &socStr[i] );
}
}
else
{
break;
}
}
}
return NULL;
}
char *FindATcommd ( char *findStr )
{
char *p = NULL;
p = FindStrPos ( bAtRecBuff, start, findStr, strlen ( findStr ) );
return p;
}
bool CheckOK ( char *Cvalue )
{
#if 0
if ( ( ( NULL != strstr ( bAtRecBuff, AT_REPLY_OK ) ) || ( NULL != strstr ( bAtRecBuff, AT_REPLY_NO_CHANGE ) ) ) )
{
return true;
}
else
{
return false;
}
#else
if ( FindATcommd ( AT_REPLY_OK ) )
{
return true;
}
else
{
return false;
}
#endif
}
bool CheckERROR ( char *Cvalue )
{
char *p;
#if 0
if ( NULL != ( p = strstr ( bAtRecBuff, AT_REPLY_ERROR ) ) )
{
WIFI_ERROR_NUM = ( * ( p + 5 ) ) | ( * ( p + 5 + 1 ) << 8 );
return true;
}
else
{
return false;
}
#else
if ( p = FindATcommd ( AT_REPLY_ERROR ) )
{
WIFI_ERROR_NUM = ( * ( p + 5 ) ) | ( * ( p + 5 + 1 ) << 8 );
return true;
}
else
{
return false;
}
#endif
}
bool AtCmp ( char *str0, char *str1 )
{
unsigned char i;
for ( i = 0; i < 100; i++ )
{
if ( str0[i] != str1[i] )
{
return true;
}
else
{
if ( str0[i] == 0 )
{
return false;
}
}
}
return true;
}
bool ABCcompare ( char *Cvalue0, unsigned char *Cvalue1 )
{
unsigned char i;
for ( i = 0; i < 100; i++ )
{
if ( Cvalue1[i] != 0 )
{
if ( Cvalue0[i] != Cvalue1[i] )
return false;
}
}
return true;
}
int iByteStuffing = 0;
int DoByteStuffing ( char *data_out, char *data_in, int data_in_size )
{
int i = 0, j = 0;
int TotalSize = 0;
int iSet0x0A = 0;
unsigned char bValue = 0;
for ( i = 0; i < data_in_size; i++ )
{
//if ((data_in[i] == 0x0D) && (data_in_size != (i - 2)))
if ( data_in[i] == 0x0D )
{
if ( data_in[i + 1] == 0x0A )
{
bValue = 0xDB;
iSet0x0A = 1;
}
else
{
bValue = data_in[i];
}
}
else if ( ( data_in[i] == 0x0A ) && ( iSet0x0A == 1 ) )
{
bValue = 0xDC;
iSet0x0A = 0;
if ( iByteStuffing < 65535 )
iByteStuffing++;
}
else if ( data_in[i] == 0xDB )
{
data_out[j++] = 0xDB;
bValue = 0xDD;
if ( iByteStuffing < 65535 )
iByteStuffing++;
}
else
{
bValue = data_in[i];
}
data_out[j++] = bValue;
}
#if 0
if ( i != j )
{
if ( iByteStuffing < 65535 )
iByteStuffing++;
}
#endif
TotalSize = j;
return TotalSize;
}
int DoByteStrSize = 0;
void AT_command_send ( char *str, int handle, unsigned char n )
{
int DataSize, iTotal;
int i;
#if 0
DataSize = n;
sprintf ( ( char * ) bAtSentBuff, "%#s%#d,%#d,0,0,", AT_COMMAND_SND_CMD,
handle, DataSize );
iTotal = strlen ( bAtSentBuff );
for ( i = 0; i < DataSize; i++ )
{
bAtSentBuff[iTotal + i] = str[i];
}
bAtSentBuff[DataSize + iTotal] = 0x0D;
bAtSentBuff[DataSize + iTotal + 1] = 0x0A;
bAtSentBuff[DataSize + iTotal + 2] = 0x00;
iTotal += DataSize + 2;
AtSent ( bAtSentBuff, iTotal );
#else
// 发送处理
memset ( DoByteBuffer, 0, DoByteStrSize );
DoByteStrSize = DoByteStuffing ( DoByteBuffer, str, n );
DataSize = DoByteStrSize;
sprintf ( ( char * ) bAtSentBuff, "%#s%#d,%#d,0,0,", AT_COMMAND_SND_CMD,
handle, DataSize );
iTotal = strlen ( bAtSentBuff );
for ( i = 0; i < DataSize; i++ )
{
bAtSentBuff[iTotal + i] = DoByteBuffer[i];
}
bAtSentBuff[DataSize + iTotal] = 0x0D;
bAtSentBuff[DataSize + iTotal + 1] = 0x0A;
bAtSentBuff[DataSize + iTotal + 2] = 0x00;
iTotal += DataSize + 2;
AtSent ( bAtSentBuff, iTotal );
#endif
}
void wifi_sent ( void )
{
char sendstring[50];
unsigned char i;
for ( i = 0; i < 6; i++ )
{
sendstring[i] = Mac_Addr[i];
}
sendstring[6] = 0x00;
AT_command_send ( sendstring, 1, 6 );
}
char KeyString[100] = {0};
char *pStr = NULL;
void wifi_connect ( void )
{
switch ( WifiConnectStep )
{
case 0:
clear_bAtRecBuff();
WifiSoftReset();
WifiConnectStep = 1;
break;
case 1:
if ( FindATcommd ( CHECK_REPLY_Ready ) )
{
//net close
WifiConnectStep = 2;
WifiTimeReset = 0;
}
else if ( ( WifiTimeReset % 3000 ) == 0 ) //需要1241
{
WifiConnectStep = 0;
}
else if ( CheckERROR ( bAtRecBuff ) || ( WifiTimeReset > 6000 ) )
{
WifiHardReset(); //硬件没做
WifiProcessStep = WIFI_STEP_CHECK;
WifiCheckStep = 0;
WifiTimeReset = 0;
}
break;
case 2:
clear_bAtRecBuff();
strcpy ( bAtSentBuff, CONNECT_CWMODE );
AtSent ( bAtSentBuff, strlen ( bAtSentBuff ) );
WifiConnectStep = 3;
break;
case 3:
if ( CheckOK ( bAtRecBuff ) ) //AtCmp(bAtRecBuff,AT_COMMAND_OK_ONLY)==0
{
WifiConnectStep = 4;
WifiTimeReset = 0;
}
else if ( ( WifiTimeReset % 1000 ) == 0 )
{
WifiConnectStep = 2;
}
else if ( CheckERROR ( bAtRecBuff ) || ( WifiTimeReset > 2000 ) ) //0x3fff//需要3
{
WifiConnectStep = 0;
WifiTimeReset = 0;
}
break;
case 4:
clear_bAtRecBuff();
strcpy ( bAtSentBuff, CONNECT_CWJAP );
AtSent ( bAtSentBuff, strlen ( bAtSentBuff ) );
WifiConnectStep = 5;
break;
case 5:
if ( CheckOK ( bAtRecBuff ) )
{
WifiConnectStep = 6;
WifiTimeReset = 0;
}
else if ( ( WifiTimeReset % 5000 ) == 0 )
{
WifiConnectStep = 4;
}
else if ( CheckERROR ( bAtRecBuff ) || ( WifiTimeReset > 10000 ) ) //0x3fff//需要3043
{
WifiConnectStep = 0;
WifiTimeReset = 0;
}
break;
case 6:
clear_bAtRecBuff();
strcpy ( bAtSentBuff, CONNECT_CWJAP_CX );
AtSent ( bAtSentBuff, strlen ( bAtSentBuff ) );
WifiConnectStep = 7;
break;
case 7:
if ( CheckOK ( bAtRecBuff ) ) //NULL != strstr(bAtRecBuff,CONNECT_CWJAP_CX_REPLY)
{
WIFI_LED_FLAG = WIFI_JOIN_ROUTE_OK_FLAG;
WifiConnectStep = 8;
WifiTimeReset = 0;
}
else if ( ( WifiTimeReset % 1000 ) == 0 ) //1500
{
WifiConnectStep = 6;
}
else if ( CheckERROR ( bAtRecBuff ) || ( WifiTimeReset > 2000 ) ) //0x17ffff//需要1132
{
WifiConnectStep = 0;
WifiTimeReset = 0;
}
break;
case 8:
clear_bAtRecBuff();
strcpy ( bAtSentBuff, CONNECT_CIPMUX );
AtSent ( bAtSentBuff, strlen ( bAtSentBuff ) ); //AT_COMMAND_PSK_LENGTH+10
//GetDis(bAtSentBuff);
WifiConnectStep = 9;
break;
case 9:
if ( CheckOK ( bAtRecBuff ) )
{
WifiConnectStep = 10;
WifiTimeReset = 0;
}
else if ( ( WifiTimeReset % 1000 ) == 0 )
{
WifiConnectStep = 8;
}
else if ( CheckERROR ( bAtRecBuff ) || ( WifiTimeReset > 2000 ) ) //0xffff//需要11
{
WifiConnectStep = 0;
WifiTimeReset = 0;
}
break;
case 10:
clear_bAtRecBuff();
strcpy ( bAtSentBuff, CONNECT_CIPSTART );
AtSent ( bAtSentBuff, strlen ( bAtSentBuff ) ); //USB_AT_COMMAND_JOIN_LENGTH+14
//GetDis(bAtSentBuff);
WifiConnectStep = 11;
break;
case 11:
if ( FindATcommd ( CONNECT_CIPSTART_Port ) && \
( pStr = FindATcommd ( CONNECT_CIPSTART_NOWis ) ) )
{
Refresh_DS1302_Time ( pStr );
WifiConnectStep = 20;
WifiTimeReset = 0;
}
else if ( ( WifiTimeReset % 6000 ) == 0 ) //7500//8244
{
WifiConnectStep = 10;
}
else if ( CheckERROR ( bAtRecBuff ) || ( WifiTimeReset > 12000 ) ) //0x1fffff//需要7127
{
WifiConnectStep = 0;
WifiTimeReset = 0;
}
break;
/*
//作为服务端
12.配置IP
14.打开端口
*/
case 20:
clear_bAtRecBuff();
strcpy ( bAtSentBuff, CONNECT_CIFSR );
AtSent ( bAtSentBuff, sizeof ( CONNECT_CIFSR ) );
// GetDis(bAtSentBuff);
WifiConnectStep = 21;
break;
case 21:
//if(NULL != (p = strstr(bAtRecBuff,CONNECT_STAMAC)))
if ( NULL != ( pStr = FindATcommd ( CONNECT_STAMAC ) ) )
{
memcpy ( Mac_Temp_Buff, &pStr[strlen ( CONNECT_STAMAC )], sizeof ( Mac_Temp_Buff ) );
WifiConnectStep = 22;
WifiTimeReset = 0;
}
else if ( ( WifiTimeReset % 4000 ) == 0 ) //7500//8244
{
WifiConnectStep = 20;
}
else if ( CheckERROR ( bAtRecBuff ) || ( WifiTimeReset > 8000 ) ) //0x1fffff//需要7127
{
WifiConnectStep = 0;
WifiTimeReset = 0;
}
break;
case 22:
clear_bAtRecBuff();
reg_server0824 ( REGMY_ID, Mac_Temp_Buff, sizeof ( Mac_Temp_Buff ) );
//GetDis(bAtSentBuff);
WifiConnectStep = 23;
break;
case 23:
if ( FindATcommd ( "OK:reg" ) )
{
WIFI_LED_FLAG = WIFI_LOAD_DONE_FLAG;
WifiProcessStep = WIFI_STEP_CHAT;
WifiTimeReset = 0;
clear_bAtRecBuff();
}
else if ( ( WifiTimeReset % 4000 ) == 0 ) //7500//8244
{
WifiConnectStep = 22;
}
else if ( CheckERROR ( bAtRecBuff ) || ( WifiTimeReset > 8000 ) ) //0x1fffff//需要7127
{
WifiConnectStep = 0;
WifiTimeReset = 0;
}
break;
default:
WifiConnectStep = 0;
break;
}
}
char get_mac ( char *wifi_data )
{
char *str_p;
if ( NULL != ( str_p = strstr ( wifi_data, CONNECT_STAMAC ) ) )
{
memcpy ( Mac_Temp_Buff, &str_p[8], sizeof ( Mac_Temp_Buff ) );
return 1;
}
else
{
return 0;
}
}
unsigned char scan_wifi ( char *wifi_data )
{
unsigned char count;
count = 0;
//if(wifi_data[0]!= 0xab || wifi_data[0] != 0xaa)
// return 0;
for ( count = 0; count < 60; count++ )
{
if ( wifi_data[count] == 0x00 )
{
break;
}
}
if ( count == 60 )
return 0;
return count;
}
void receive_deal ( char * Rdata, char Totalbytes )
{
}
void wifi_check ( void )
{
//char commd;
switch ( WifiCheckStep )
{
case 0:
WifiCheckStep = 1;
WifiTimeReset = 0;
WifiLedOff;
break;
case 1:
if ( WifiTimeReset > 100 ) //等待100ms
{
WifiCheckStep = 2;
}
break;
case 2:
if ( WifiHaveRecFlag )
{
WifiHaveRecFlag = false;
if ( FindATcommd ( CHECK_REPLY_Ready ) )
{
WifiCheckStep = 3;
}
else if ( CheckERROR ( bAtRecBuff ) )
{
WifiCheckStep = 3;
}
}
else
{
if ( WifiTimeReset > 1000 ) //8000
{
WifiCheckStep = 3;
}
}
break;
case 3: //正常启动,或超时启动
WifiTimeReset = 0;
WifiProcessStep = WIFI_STEP_CONNECT;
WifiConnectStep = 2;
clear_bAtRecBuff();
break;
default:
WifiCheckStep = 0;
break;
}
}
/*
Now is: 2015-07-26 17:37:35
去掉Now is: 20
15-07-26 17:37:35
星期计算:
最著名的是蔡勒(Zeller)公式。
即w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
以2049年10月1日(100周年国庆)为例,用蔡勒(Zeller)公式进行计算,过程如下:
蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
=49+[49/4]+[20/4]-2×20+[26× (10+1)/10]+1-1
=49+[12.25]+5-40+[28.6]
=49+12+5-40+28
=54 (除以7余5)
即2049年10月1日(100周年国庆)是星期5。
*/
#define CalDay(y,c,m,d) ((y+y/4+c/4-2*c+26*(m+1)/10+d-1)%7)
void Refresh_DS1302_Time ( char data[] )
{
char *p;
char dataBuff[18] = {0};
memcpy ( dataBuff, &data[10], sizeof ( dataBuff ) - 1 );
p = strtok ( dataBuff, "-" );
DS1302_DateTime.Year = atoi ( dataBuff );
p = strtok ( NULL, "-" );
DS1302_DateTime.Month = atoi ( p );
p = strtok ( NULL, " " );
DS1302_DateTime.Date = atoi ( p );
p = strtok ( NULL, ":" );
DS1302_DateTime.Hour = atoi ( p );
p = strtok ( NULL, ":" );
DS1302_DateTime.Minute = atoi ( p );
p = strtok ( NULL, " " );
DS1302_DateTime.Second = atoi ( p );
DS1302_DateTime.Day = GetDayFromDate ( DS1302_DateTime.Year, DS1302_DateTime.Month, DS1302_DateTime.Date );
DS1302_DateTime.HourMode = _24_hours;
DS1302_DateTime.AM_PM = pm;
sys_rtc_time = Date_TO_Sec ( DS1302_DateTime.Year, DS1302_DateTime.Month, DS1302_DateTime.Date, DS1302_DateTime.Hour, DS1302_DateTime.Minute, DS1302_DateTime.Second );
#if DS1302_def
DS1302_SetDateTime();
#endif
}
void esp8266_send ( void )
{
u8 delayTime;
#ifndef CONNECT_Multiple_DEF
sprintf ( bAtSentBuff, "%s%d\r\n", CONNECT_CIPSEND_N, sent_data_size );
#else
sprintf ( bAtSentBuff, "%s,%d\r\n", CONNECT_CIPSEND_N, sent_data_size );
#endif
AtSent ( bAtSentBuff, strlen ( bAtSentBuff ) );
if ( sent_data_size < 64 ) delayTime = 5;
else if ( sent_data_size < 128 ) delayTime = 10;
else if ( sent_data_size < 256 ) delayTime = 15;
else if ( sent_data_size < 512 ) delayTime = 20;
else if ( sent_data_size < 1024 ) delayTime = 25;
delay_ms ( delayTime );
AtSent ( sent_data_buf, sent_data_size );
}
void reg_server0824 ( u8 regID, u8 *inBuffer, u8 inSize )
{
memset ( sent_data_buf, 0, 255 );
memset ( DoByteBuffer, 0, 255 );
//实际数据
sent_data_buf[0] = regID;
sent_data_buf[1] = regID;
memcpy ( &sent_data_buf[2], inBuffer, inSize );
sent_data_size = Packaging_wifi_sendbuffer ( COMMD_REG, ( u8 * ) sent_data_buf, inSize + 2 );
//特殊处理
memcpy ( DoByteBuffer, sent_data_buf, sent_data_size );
sent_data_size = DoByteStuffing ( sent_data_buf, DoByteBuffer, sent_data_size );
//加后缀
sent_data_buf[sent_data_size + 0] = 0x0D;
sent_data_buf[sent_data_size + 1] = 0x0A;
sent_data_size = sent_data_size + 2;
//发送
esp8266_send();
}
void sendto_server0824 ( u8 aimID, u8 myID, u8 *inBuffer, u8 inSize )
{
memset ( sent_data_buf, 0, 255 );
memset ( DoByteBuffer, 0, 255 );
//实际数据
sent_data_buf[0] = aimID;
sent_data_buf[1] = myID;
memcpy ( &sent_data_buf[2], inBuffer, inSize );
sent_data_size = Packaging_wifi_sendbuffer ( COMMD_TRANSMIT, ( u8 * ) sent_data_buf, inSize + 2 );
//特殊处理
memcpy ( DoByteBuffer, sent_data_buf, sent_data_size );
sent_data_size = DoByteStuffing ( sent_data_buf, DoByteBuffer, sent_data_size );
//加后缀
sent_data_buf[sent_data_size + 0] = 0x0D;
sent_data_buf[sent_data_size + 1] = 0x0A;
sent_data_size = sent_data_size + 2;
//发送
esp8266_send();
}
void wifi_chat ( void )
{
char *p;
if ( WifiHaveRecFlag )
{
WifiHaveRecFlag = false;
//if(NULL != FindATcommd(AT_COMMAND_READ))
//符合krain格式,则进入处理
if ( NULL != ( p = FindATcommd ( "KR" ) ) )
{
TotalRecvBytes = p[2] + 3;
if ( 0x55 == p[TotalRecvBytes - 1] )
{
memcpy ( Wifi_Rec_Buff, p, TotalRecvBytes );
WifiDatCome = 1;
WIFI_LED_FLAG = WIFI_DATA_COME_FLAG;
}
}
else if ( FindATcommd ( AT_COMMAND_CLOSE ) || \
FindATcommd ( AT_COMMAND_LINK_ERROR ) || \
FindATcommd ( AT_COMMAND_REGID_ERROR )
)
{
WifiProcessStep = WIFI_STEP_CONNECT;
WifiConnectStep = 10;
}
clear_bAtRecBuff();
WifiTimeLed = 0;
WifiTimeReset = 0;
}
/*else if((WifiTimeReset > 20000) && (WifiTimeReset%2000==0))
{
WIFI_LED_FLAG = WIFI_CLOSE_FLAG;
sendto_server0824(AIM_ID, REGMY_ID, "Msg Test!", 10);
}*/
}
void LED_Flash_State ( void )
{
switch ( WIFI_LED_FLAG )
{
case WIFI_JOIN_ROUTE_OK_FLAG:
if ( WifiTimeLed % 2000 == 0 ) WifiLedOn; //50ms
else if ( WifiTimeLed % 2000 == 1000 ) WifiLedOff; //150ms
break;
case WIFI_LOAD_DONE_FLAG:
WifiLedOn;
WIFI_LED_FLAG = WIFI_MAX_FLAG;
break;
case WIFI_LTCP_CONNECT_FLAG:
if ( WifiTimeLed < 50 ) WifiLedOn; //50ms
else if ( WifiTimeLed < 200 ) WifiLedOff; //150ms
else if ( WifiTimeLed < 250 ) WifiLedOn; //50ms
else if ( WifiTimeLed < 550 ) WifiLedOff; //300ms
else if ( WifiTimeLed < 600 ) WifiLedOn; //50ms
else if ( WifiTimeLed < 750 ) WifiLedOff; //150ms
else if ( WifiTimeLed < 800 ) WifiLedOn; //50ms
else if ( WifiTimeLed < 850 ) WIFI_LED_FLAG = WIFI_LOAD_DONE_FLAG; //50ms
break;
case WIFI_DATA_COME_FLAG:
if ( WifiTimeLed < 50 ) WifiLedOn; //50ms
else if ( WifiTimeLed < 200 ) WifiLedOff; //150ms
else if ( WifiTimeLed < 250 ) WifiLedOn; //50ms
else if ( WifiTimeLed < 300 ) WIFI_LED_FLAG = WIFI_LOAD_DONE_FLAG; //50ms
break;
case WIFI_CLOSE_FLAG:
WifiLedOff;
WIFI_LED_FLAG = WIFI_MAX_FLAG;
break;
default:
break;
}
}
void wifi_main ( void )
{
#if WIFI_Uart1_def
switch ( WifiProcessStep )
{
case WIFI_STEP_CHECK:
wifi_check();
break;
case WIFI_STEP_CONNECT:
wifi_connect();
break;
case WIFI_STEP_CHAT:
wifi_chat();
break;
default:
WifiProcessStep = WIFI_STEP_CONNECT;
break;
}
LED_Flash_State();
#endif
}