#include "tcp.h" #include "esp8266.h" //volatile u8 TcpClosedFlag = 0; /* void ESP8266_STA_TCPClient_Test(void) { u8 res; char str[100]={0}; ESP8266_AT_Test(); ESP8266_Net_Mode_Choose(STA); while(!ESP8266_JoinAP(User_ESP8266_SSID, User_ESP8266_PWD)); ESP8266_Enable_MultipleId ( DISABLE ); while(!ESP8266_Link_Server(enumTCP, User_ESP8266_TCPServer_IP, User_ESP8266_TCPServer_PORT)); while(!ESP8266_UnvarnishSend()); while ( 1 ) { sprintf (str,"深圳市安信可科技有限公司" );//格式化发送字符串到TCP服务器 //ESP8266_SendString ( ENABLE, str, 0, Single_ID_0 ); UART_PutStr(USART1,str); delay_ms(1000); if(TcpClosedFlag) //判断是否失去连接 { ESP8266_ExitUnvarnishSend(); //退出透传模式 do { res = ESP8266_Get_LinkStatus(); //获取连接状态 } while(!res); if(res != 3) //if(res == 4) 确认失去连接,重连 { while (!ESP8266_JoinAP(User_ESP8266_SSID, User_ESP8266_PWD ) ); while (!ESP8266_Link_Server(enumTCP, User_ESP8266_TCPServer_IP, User_ESP8266_TCPServer_PORT) ); } while(!ESP8266_UnvarnishSend()); } } } */ //void ESP8266_SendStr(char *str) //{ // u8 res=0; // do // { // res = ESP8266_Get_LinkStatus(); //获取连接状态 // } while(!res); // if(res != 3) //if(res == 4) 确认失去连接,重连 // { // // ESP8266_Net_Mode_Choose(STA); // while (!ESP8266_JoinAP(User_ESP8266_SSID, User_ESP8266_PWD ) ); // while (!ESP8266_Link_Server(enumTCP, User_ESP8266_TCPServer_IP, User_ESP8266_TCPServer_PORT) ); // } // while(!ESP8266_UnvarnishSend()); // UART_PutStr(USART1,str); // //} void ESP8266_AP_TCPServer_Config(char *ssid,char *pwd,char *port) { u8 i=0; // ESP8266_Send_AT_Cmd("AT+RESTORE","ready",NULL,500); PWR_CTRLTFWF_L; // PWR_CTRL3V3_L; delay_ms(1000); PWR_CTRLTFWF_H; // PWR_CTRL3V3_H; delay_ms(1000); ESP8266_AT_Test();//恢复出厂设置 while((!ESP8266_Send_AT_Cmd("ATE0","OK",NULL,500))&(i<100)) { i++; } i=0; while((!ESP8266_CWSAP_Set ( ssid, pwd,5, 3 ))&(i<100)) { i++; } i=0; while((!ESP8266_Net_Mode_Choose(AP))&(i<100)) { i++; } i=0; while((!ESP8266_Enable_MultipleId ( ENABLE ))&(i<10)) { i++; } i=0; while((!ESP8266_Server_Create( port,ENABLE ))&(i<100)) { i++; } } /*void Parse_ESP8266_Buffer(void) { char *subString; char *subStringNext; char i = 0; clear_Init_Data_Equipment(); for (i = 0 ; i <= 9 ; i++) { if (i == 0) { subString = strstr(ESP8266_Fram_Record_Struct.Data_RX_BUF, "CMD"); subString++; subString++; subString++;//找到,地址 } else { subString++; if ((subStringNext = strstr(subString, ",")) != NULL) { switch(i) { case 1:memcpy(Init_Data_Equipment.Bc25_Ip, subString, subStringNext - subString);break; //获取UTC时间 case 2:memcpy(Init_Data_Equipment.Bc25_Port, subString, subStringNext - subString);break; //获取UTC时间 case 3:memcpy(Init_Data_Equipment.ESP8266_AP_Ports, subString, subStringNext - subString);break; //获取纬度信息 case 4:memcpy(Init_Data_Equipment.ESP8266_AP_SSIDs, subString, subStringNext - subString);break; //获取N/S case 5:memcpy(Init_Data_Equipment.ESP8266_AP_PWDs, subString, subStringNext - subString);break; //获取经度信息 case 6:memcpy(Init_Data_Equipment.Measure_Interval, subString, subStringNext - subString);break; //获取E/W case 7:memcpy(Init_Data_Equipment.Pub_Mode, subString, subStringNext - subString);break; //获取E/W case 8:memcpy(Init_Data_Equipment.Pub_Time, subString, subStringNext - subString);break; //获取E/W case 9:memcpy(Init_Data_Equipment.Equipment_ID, subString, subStringNext - subString);break; //获取E/W default:break; } subString = subStringNext; } else { //解析错误 } } } Usart4_ReceiveBuff_Clear(); } */ void WIFI_Process(void) { u8 times=0; ESP8266_Init(115200); ESP8266_AP_TCPServer_Config(Init_Data_Equipment.ESP8266_AP_SSIDs, Init_Data_Equipment.ESP8266_AP_PWDs, Init_Data_Equipment.ESP8266_AP_Ports); while(times<60) //60S等待外部连接WIFI { times++; osDelay(1000); if(ESP8266_Get_LinkStatus()==2)times=61; } }