| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009 |
- /**
- ******************************************************************************
- * @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.
- *
- * <h2><center>© COPYRIGHT 2011 STMicroelectronics</center></h2>
- ******************************************************************************
- */
- /* 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
- }
|