// wifi模块发送命令模块
// 杭州秒寻科技有限公司
// 周涛
// 2024-9-22

#ifndef __WIFI_CMD_H__
#define __WIFI_CMD_H__

#include "sysdef.h"

// WIFI命令
#define AT_WIFI_WMODE "AT+WMODE"      // 查询或设置WIFI工作模式
#define AT_WIFI_WSDHCP "AT+WSDHCP"    // 查询或设置STA模式下DHCP参数
#define AT_WIFI_WJAP "AT+WJAP"        // 连接 AP
#define AT_WIFI_WJAP_CHECK "AT+WJAP?" // 检查AP连接

// UDP命令
#define AT_WIFI_SOCKET "AT+SOCKET"        // 创建 socket 连接
#define AT_WIFI_SOCKET_CHECK "AT+SOCKET?" // 查询socket 连接
#define AT_WIFI_SOCKETTT "AT+SOCKETTT"    // 进入socket透传模式

// 消息重发次数
#define AT_WIFI_SEND_MAX_TIMES 5

// 模块管理结构
typedef struct
{
    uint8 abyApName[20];     // WiFi接入点名称
    uint8 abyApPassword[20]; // WiFi接入点密码
    uint8 abyMonitorIP[32];  // 网管中心IP或者域名
    uint8 abyMonitorPort[2]; // 网管中心端口
    uint8 bySwitch;          // 网管中心开关
} WIFI_PARAM_T;

// 外部接口
void wifi_cmd_set_param(WIFI_PARAM_T *pstParam);

void wifi_cmd_set_wmode();
void wifi_cmd_set_wsdhcp();
void wifi_cmd_connect_ap(char *pbySsid, char *pbyPwd);
void wifi_cmd_check_ap_connect_status();
void wifi_cmd_creat_udp_socket(char *pbyIp, uint16 wPort);
void wifi_cmd_check_socket_connect_status();
void wifi_cmd_socket_transparent();

#endif
