#ifndef __ESP8266_H
#define __ESP8266_H	 

#include "sys.h"
#include "myQueue.h"




#define _ESP8266_DEBUG_		1 				//串口调试开关
/////////////////////////////////////////////////////////////////////////////////////////////
#define ESP8266_UART   		USART2
#define ESP8266_uart_init(x)   uart2_init(x)
#define ESP8266_RX_BUF		USART2_RX_BUF
#define ESP8266_RX_LEN		USART2_RX_LEN
#define ESP8266_CLEAR()   USART2_Clear()

//#define ESP8266_RST	 		PBout(5) 
#define ESP8266_POWER	 	PBout(6) 

#define ESP8266_PWOERON  	ESP8266_POWER=0
#define ESP8266_PWOEROFF	ESP8266_POWER=1
/////////////////////////////////////////////////////////////////////////////////////////////
//WIFI数据接收
#define ADS129x_WIFI_REC_EN				0	//WiFi接收使能
#define WIFI_REC_LENGTH				1460	//接收缓冲区
//匿名上位机
#define WIFI_SEND_LENGTH	1443	//发送缓冲区 一帧数据长度39一帧`次采样 39*37=1444
#define WIFI_QUEUE_LENGTH	888	//（队列容量）缓冲区有效数据长度24*37=888
#define WIFI_QUEUE_SIZE	10	//队列大小
/////////////////////////////////////////////////////////////////////////////////////////////
//发送数据格式
typedef struct {
		u16 datalength; 
		u8 *sendbuf;				//发送缓冲区
		u8 *recbuf;					//接收缓冲区
	
		QueueInfo *WIFI_Queue; //队列结构
}_WIFI_Info;
extern  _WIFI_Info *WIFI_Info ; //上传数据结构
////////////////////////////////////////////////////////////////////////////////
//串口DEBUG
#if _ESP8266_DEBUG_ == 1 
		#define ESP8266_DEBUG(...)    Main_printf(__VA_ARGS__)
#else
		#define ESP8266_DEBUG(...)		
#endif
////////////////////////////////////////////////////////////////////////////////
#define AT          "AT\r\n"	
#define CWMODE      "AT+CWMODE_DEF=1\r\n"		//设置STA模式
#define CWAUTOCONN	"AT+CWAUTOCONN=1\r\n" //开机进入透传
#define RST         "AT+RST\r\n"

#define CIPMUX      "AT+CIPMUX=0\r\n"		//设置单链接模式，用于透传，开机默认单链接
#define CIFSR       "AT+CIFSR\r\n"				//查询本地IP地址，只有连上AP后才能查询，返回OK 或者ERR
#define CIPMODE   	 "AT+CIPMODE=1\r\n"	//设置透传模式
#define CIPSEND     "AT+CIPSEND\r\n"	//发送数据，必须开启透传及单链接，换行返回>

//#define ESP_BAUD     	460800	//波特率
////#define ESP_USARTDEF     "AT+UART_DEF=460800,8,1,0,0\r\n"	//修改波特率	无流控 保存到flash
//#define ESP_USARTDEF     "AT+UART_DEF=460800,8,1,0,1\r\n"	//修改波特率	使能RTS流控 保存到flash

#define ESP_BAUD     921600	//波特率
//#define ESP_USARTDEF     "AT+UART_DEF=921600,8,1,0,0\r\n"	//修改波特率	无流控 保存到flash
#define ESP_USARTDEF     "AT+UART_DEF=921600,8,1,0,1\r\n"	//修改波特率	使能RTS流控 保存到flash

////////////////////////////////////////////////////////////////////////////////
//TCP传输需要手动设置 WIFI名称 密码  IP地址 端口
extern	u8 M8266_CWJAP[60];		//连接AP ssid: xxx  密码：xxx
extern	u8 M8266_SAVETRANSLINK[60];//保存配网信息
extern  u8 ESP8266_SET_FLAG;

s16 ESP8266_SendCmd(u8* cmd, u8* result, u16 timeOut);
s16 ESP8266_SendData(u8* cmd, int iLen);

void ESP8266_IO_Init(void);
void ESP8266_Goto_Cmd(void);
void ESP8266_out_Cmd(void);
void ESP8266_Init(void);

void ESP8266_Config(void);

void ESP8266_SET(void); //配网检测
void Set_WIFI(void);//配网设置

u8 Wifi_Sendbuf_Init(void);

	 				    
#endif
