// #include "esp8266.h"
// ///////////////////////////////////////////////////////////////////////////////////////////////////////////
// //用户配置区

// //连接端口号:8086,可自行修改为其他端口.
// const uint8_t *portnum = "8086";

// // WIFI STA模式,设置要去连接的路由器无线参数,请根据你自己的路由器设置,自行修改.
// const uint8_t *wifista_ssid       = "FCC";         //路由器SSID号
// const uint8_t *wifista_encryption = "wpawpa2_aes"; // wpa/wpa2 aes加密方式
// const uint8_t *wifista_password   = "347470868";   //连接密码

// // WIFI AP模式,模块对外的无线参数,可自行修改.
// const uint8_t *wifiap_ssid       = "ATK-ESP8266"; //对外SSID号
// const uint8_t *wifiap_encryption = "wpawpa2_aes"; // wpa/wpa2 aes加密方式
// const uint8_t *wifiap_password   = "12345678";    //连接密码

// ///////////////////////////////////////////////////////////////////////////////////////////////////////////
// // 4个网络模式
// const uint8_t *ATK_ESP8266_CWMODE_TBL[3] = {"STA模式 ", "AP模式 ", "AP&STA模式 "}; // ATK-ESP8266,3种网络模式,默认为路由器(ROUTER)模式
// // 4种工作模式
// const uint8_t *ATK_ESP8266_WORKMODE_TBL[3] = {"TCP服务器", "TCP客户端", " UDP 模式"}; // ATK-ESP8266,4种工作模式
// // 5种加密方式
// const uint8_t *ATK_ESP8266_ECN_TBL[5] = {"OPEN", "WEP", "WPA_PSK", "WPA2_PSK", "WPA_WAP2_PSK"};
// ///////////////////////////////////////////////////////////////////////////////////////////////////////////

// //向ATK-ESP8266发送命令
// // cmd:发送的命令字符串
// // ack:期待的应答结果,如果为空,则表示不需要等待应答
// // waittime:等待时间(单位:10ms)
// //返回值:0,发送成功(得到了期待的应答结果)
// //       1,发送失败
// uint8_t atk_8266_send_cmd(uint8_t *cmd, uint8_t *ack, uint16_t waittime)
// {
//     uint8_t            res = 0;
//     INT8U              err = 0;
//     UartFrame_TypeDef *msg;
//     uart6_dma_send(cmd, sizeof(cmd));

//     if (ack && waittime) //需要等待应答
//     {
//         while (--waittime) //等待倒计时
//         {
//             ms_delay(10);
//             // iwdg_feed(UART6_DOG);
//             msg = (UartFrame_TypeDef *)OSMboxPend(uart6_mbox, 50, &err);
//             if ((err == OS_ERR_NONE) && (msg->len >= 2)) //接收到期待的应答结果
//             {
//                 printf(msg);
//                 // if (msg->buf)
//                 //     if (atk_8266_check_cmd(ack))
//                 //     {
//                 //         printf("ack:%s\r\n", (uint8_t *)ack);
//                 //         break; //得到有效数据
//                 //     }
//             }
//         }
//         if (waittime == 0)
//             res = 1;
//     }
//     return res;
// }
// //向ATK-ESP8266发送指定数据
// // data:发送的数据(不需要添加回车了)
// // ack:期待的应答结果,如果为空,则表示不需要等待应答
// // waittime:等待时间(单位:10ms)
// //返回值:0,发送成功(得到了期待的应答结果)luojian
// uint8_t atk_8266_send_data(uint8_t *data, uint8_t *ack, uint16_t waittime)
// {
//     uint8_t            res = 0;
//     INT8U              err = 0;
//     UartFrame_TypeDef *msg;
//     uart6_dma_send(data, sizeof(data)); //发送命令
//     if (ack && waittime)                //需要等待应答
//     {
//         while (--waittime) //等待倒计时
//         {
//             ms_delay(10);
//             msg = (UartFrame_TypeDef *)OSMboxPend(uart6_mbox, 50, &err);
//             if ((err == OS_ERR_NONE) && (msg->len >= 2)) //接收到期待的应答结果
//             {
//                 printf(msg);
//                 // if (atk_8266_check_cmd(ack))
//                 // {
//                 //     printf("ack:%s\r\n", (uint8_t *)ack);
//                 //     break; //得到有效数据
//                 // }
//             }
//         }
//         if (waittime == 0)
//             res = 1;
//     }
//     return res;
// }
// // ATK-ESP8266退出透传模式
// //返回值:0,退出成功;
// //        1,退出失败
// uint8_t atk_8266_quit_trans(void)
// {
//     while ((USART6->SR & 0X40) == 0)
//         ; //等待发送空
//     USART6->DR = '+';
//     ms_delay(15); //大于串口组帧时间(10ms)
//     while ((USART6->SR & 0X40) == 0)
//         ; //等待发送空
//     USART6->DR = '+';
//     ms_delay(15); //大于串口组帧时间(10ms)
//     while ((USART6->SR & 0X40) == 0)
//         ; //等待发送空
//     USART6->DR = '+';
//     ms_delay(500);                            //等待500ms
//     return atk_8266_send_cmd("AT", "OK", 20); //退出透传判断.
// }
// //获取ATK-ESP8266模块的AP+STA连接状态
// //返回值:0，未连接;1,连接成功
// uint8_t atk_8266_apsta_check(void)
// {
//     if (atk_8266_quit_trans())
//         return 0;                               //退出透传
//     atk_8266_send_cmd("AT+CIPSTATUS", ":", 50); //发送AT+CIPSTATUS指令,查询连接状态
//     if (atk_8266_check_cmd("+CIPSTATUS:0") &&
//         atk_8266_check_cmd("+CIPSTATUS:1") &&
//         atk_8266_check_cmd("+CIPSTATUS:2") &&
//         atk_8266_check_cmd("+CIPSTATUS:4"))
//         return 0;
//     else
//         return 1;
// }
// // //获取ATK-ESP8266模块的连接状态
// // //返回值:0,未连接;1,连接成功.
// // uint8_t atk_8266_consta_check(void)
// // {
// //     uint8_t *p;
// //     uint8_t  res;
// //     if (atk_8266_quit_trans())
// //         return 0;                               //退出透传
// //     atk_8266_send_cmd("AT+CIPSTATUS", ":", 50); //发送AT+CIPSTATUS指令,查询连接状态
// //     p   = atk_8266_check_cmd("+CIPSTATUS:");
// //     res = *p; //得到连接状态
// //     return res;
// // }

// //获取Client ip地址
// // ipbuf:ip地址输出缓存区
// void atk_8266_get_wanip(uint8_t *ipbuf)
// {
//     uint8_t *p, *p1;
//     if (atk_8266_send_cmd("AT+CIFSR", "OK", 50)) //获取WAN IP地址失败
//     {
//         ipbuf[0] = 0;
//         return;
//     }
//     p   = atk_8266_check_cmd("\"");
//     p1  = (uint8_t *)strstr((const char *)(p + 1), "\"");
//     *p1 = 0;
//     sprintf((char *)ipbuf, "%s", p + 1);
// }

// // ATK-ESP8266模块测试主函数
// void esp_8266_task(void)
// {
//     //	uint16_t rlen=0;
//     uint8_t key;
//     uint8_t timex;

//     while (atk_8266_send_cmd("AT", "OK", 20)) //检查WIFI模块是否在线
//     {
//         atk_8266_quit_trans();                        //退出透传
//         atk_8266_send_cmd("AT+CIPMODE=0", "OK", 200); //关闭透传模式
//     }
//     while (atk_8266_send_cmd("ATE0", "OK", 20))
//         ; //关闭回显
//     while (1)
//     {
//         ms_delay(10);
//         // atk_8266_at_response(1); //检查ATK-ESP8266模块发送过来的数据,及时上传给电脑
//     }
// }
