/************************************************* * Copyright (C), Xiongmai Information Technologies Co., Ltd. 2018-2019. All rights reserved. * 文件名: maque_wlan.h * 作者@编号: XM R&D @02479 * 版本: V1.00 * 创建日期: 2019.04.12 * 功能描述: 声明无线操作相关对外接口。 * * 修改历史: ** 1.日期: 2019.04.12 ** 修改者: XM R&D @02479 ** 修改内容: 首次创建 。 ** 2.日期: 2019.04.12 ** 修改者: XM R&D @02479 ** 修改内容: 完成了基础版。 *************************************************/ #ifndef MAQUE_WLAN_H #define MAQUE_WLAN_H #ifdef __cplusplus extern "C" { #endif /// 注意::: 本文件提供的接口需要配合后台配网业务一起实现,进程间通信主要涉及3个文件: /// 1. notifyToChangeWIFIMODEFIFO : wifi 状态切换交互文件,如AP -->STA,STA-->AP。通信值参考: MaQueWLanSwitchState_e /// 2. WIFIConfigInfo : ap 热点信息描述,参考: MaQueConfigWlan_s /// 3. stareadyfifo : station 模式就绪通知文件,参考: MaQueWpaState_e // 以下文件路径由LibXmMaQue_System_startUp 中的stStartParam.aWritableDir 指定 #define FILE_NOTIFY_TO_CHANGE_WIFI_MODE_FIFO "notifyToChangeWIFIMODEFIFO" #define FILE_WIFI_CONFIG_INFO "WIFIConfigInfo" #define FILE_STA_READY_FIFO "stareadyfifo" #define IW_ENCODING_TOKEN_MAX 128 //该枚举 从wpa_supplicant 工具中拷贝过来. typedef enum { WPA_DISCONNECTED, WPA_INTERFACE_DISABLED, WPA_INACTIVE, WPA_SCANNING, WPA_AUTHENTICATING, WPA_ASSOCIATING, WPA_ASSOCIATED, WPA_4WAY_HANDSHAKE, WPA_GROUP_HANDSHAKE, WPA_COMPLETED } MaQueWpaState_e; typedef enum { MAQUE_SWITCH_NONE, MAQUE_SWITCH_TO_AP, MAQUE_SWITCH_TO_STA, MAQUE_SWITCH_TO_SEARCH, MAQUE_SWITCH_NR } MaQueWLanSwitchState_e; typedef enum { MAQUE_WPA_NOT_EXIST = -1, MAQUE_WPA_UNLINK = 0, MAQUE_WPA_LINK = 1, MAQUE_WPA_NR } MaQueWpaLinkState_e; typedef enum { MAQUE_ENCRY_NONE, MAQUE_ENCRY_WEP_OPEN, MAQUE_ENCRY_AES, MAQUE_ENCRY_TKIP, MAQUE_ENCRY_NR } MaQueEncrypType_e; typedef enum { MAQUE_KEY_HEX, MAQUE_KEY_ASCII, MAQUE_KEY_NR } MaQueKeyType_e; typedef struct { XM_CHAR aSsid[32]; XM_S32 auth; MaQueEncrypType_e eEncryp; MaQueKeyType_e keyType; //0:Hex 1:ASCII XM_CHAR aPasswd[IW_ENCODING_TOKEN_MAX]; XM_CHAR aMac[8]; XM_S32 chn; XM_S32 rssi; XM_S32 aReserved[3]; } MaQueConfigWlan_s; typedef struct { XM_S32 count; //搜寻到的wifi网络数量 MaQueConfigWlan_s aNet[128];//每个wifi网络的相关信息 } MaQueWlanSearchInfo_s; /* 【功能描述】 搜索wifi 热点。注意: 该接口主要先通知后台配网进程发起搜索功能并且将搜索结果写到/var/tmp/iwlistinfo 文件, 之后由本接口解析。往文件FILE_NOTIFY_TO_CHANGE_WIFI_MODE_FIFO 写入枚举MAQUE_SWITCH_TO_SEARCH 即为通知配网进程 发起搜索功能,配网进程需要做相应处理。 【参数】 参数名称 描述 pstWlanSearchInfo [out] wifi 热点描述,参考MaQueWlanSearchInfo_s。 len [out] 暂时无效。 【返回值】 XM_SUCCESS 成功。 其它 失败,请参考错误码。 */ XM_S32 LibXmMaQue_Wlan_searchWIFI(MaQueWlanSearchInfo_s *pstWlanSearchInfo, XM_S32 len); /* 【功能描述】 获取AP 连接状态。注意: 配网后台进程需要将wpa 的配网状态(MaQueWpaState_e) 写入文件: /var/tmp/wpa_state 。 【参数】 参数名称 描述 pEthName [in] 网络接口名,默认eth2 。 【返回值】 AP 连接状态,参考MaQueWpaLinkState_e 。 */ MaQueWpaLinkState_e LibXmMaQue_Wlan_getWpaStatus(XM_CHAR *pEthName); /* 【功能描述】 wifi 切换到AP 模式。注意: 该接口主要先把AP 热点描述信息写入文件FILE_WIFI_CONFIG_INFO,再通过管 道FILE_NOTIFY_TO_CHANGE_WIFI_MODE_FIFO 写入枚举MAQUE_SWITCH_TO_AP 通知配网进程做相应处理。 【参数】 参数名称 描述 pstWlan [in] wifi 热点描述,参考MaQueConfigWlan_s。 【返回值】 XM_SUCCESS 成功。 其它 失败,请参考错误码。 */ XM_S32 LibXmMaQue_Wlan_switch2AP(MaQueConfigWlan_s *pstWlan); /* 【功能描述】 wifi 切换到STA 模式。注意: 该接口主要先把AP 热点描述信息写入文件FILE_WIFI_CONFIG_INFO,再通过管 道FILE_NOTIFY_TO_CHANGE_WIFI_MODE_FIFO 写入枚举MAQUE_SWITCH_TO_STA 通知配网进程做相应处理。 【参数】 参数名称 描述 pstWlan [in] wifi 热点描述,参考MaQueConfigWlan_s。 【返回值】 XM_SUCCESS 成功。 其它 失败,请参考错误码。 */ XM_S32 LibXmMaQue_Wlan_switch2STA(MaQueConfigWlan_s *pstWlan); #ifdef __cplusplus } #endif #endif //MAQUE_TIME_H