11bd4fe43Sopenharmony_ci/* 21bd4fe43Sopenharmony_ci * @file hi_any_api.h 31bd4fe43Sopenharmony_ci * 41bd4fe43Sopenharmony_ci * Copyright (c) 2020 HiSilicon (Shanghai) Technologies CO., LIMITED. 51bd4fe43Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 61bd4fe43Sopenharmony_ci * you may not use this file except in compliance with the License. 71bd4fe43Sopenharmony_ci * You may obtain a copy of the License at 81bd4fe43Sopenharmony_ci * 91bd4fe43Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 101bd4fe43Sopenharmony_ci * 111bd4fe43Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 121bd4fe43Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 131bd4fe43Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 141bd4fe43Sopenharmony_ci * See the License for the specific language governing permissions and 151bd4fe43Sopenharmony_ci * limitations under the License. 161bd4fe43Sopenharmony_ci */ 171bd4fe43Sopenharmony_ci 181bd4fe43Sopenharmony_ci/** 191bd4fe43Sopenharmony_ci * @defgroup hi_wifi_any ANY API 201bd4fe43Sopenharmony_ci * @ingroup hi_wifi 211bd4fe43Sopenharmony_ci */ 221bd4fe43Sopenharmony_ci 231bd4fe43Sopenharmony_ci#ifndef __HI_ANY_API_H__ 241bd4fe43Sopenharmony_ci#define __HI_ANY_API_H__ 251bd4fe43Sopenharmony_ci 261bd4fe43Sopenharmony_ci#ifdef __cplusplus 271bd4fe43Sopenharmony_ci#if __cplusplus 281bd4fe43Sopenharmony_ciextern "C" { 291bd4fe43Sopenharmony_ci#endif 301bd4fe43Sopenharmony_ci#endif 311bd4fe43Sopenharmony_ci 321bd4fe43Sopenharmony_ci/** 331bd4fe43Sopenharmony_ci * @ingroup hi_wifi_any 341bd4fe43Sopenharmony_ci * 351bd4fe43Sopenharmony_ci * Max length of data for a single ANY transmit.CNcomment:单次ANY发送允许的最大数据长度。CNend 361bd4fe43Sopenharmony_ci */ 371bd4fe43Sopenharmony_ci#define WIFI_ANY_MAX_USER_DATA 250 381bd4fe43Sopenharmony_ci/** 391bd4fe43Sopenharmony_ci * @ingroup hi_wifi_any 401bd4fe43Sopenharmony_ci * 411bd4fe43Sopenharmony_ci * Length of key in octets used in ANY communication.CNcomment:ANY加密通信的密钥长度,固定为16字节。CNend 421bd4fe43Sopenharmony_ci */ 431bd4fe43Sopenharmony_ci#define WIFI_ANY_KEY_LEN 16 441bd4fe43Sopenharmony_ci/** 451bd4fe43Sopenharmony_ci * @ingroup hi_wifi_any 461bd4fe43Sopenharmony_ci * 471bd4fe43Sopenharmony_ci * Length of MAC address.CNcomment:MAC地址长度定义CNend 481bd4fe43Sopenharmony_ci */ 491bd4fe43Sopenharmony_ci#define WIFI_ANY_MAC_LEN 6 501bd4fe43Sopenharmony_ci/** 511bd4fe43Sopenharmony_ci * @ingroup hi_wifi_any 521bd4fe43Sopenharmony_ci * 531bd4fe43Sopenharmony_ci * Max length of wlan ssid(for driver).CNcomment:wifi驱动SSID最大长度,+1为\0预留空间CNend 541bd4fe43Sopenharmony_ci */ 551bd4fe43Sopenharmony_ci#define WIFI_ANY_MAX_SSID_LEN (32 + 1) 561bd4fe43Sopenharmony_ci 571bd4fe43Sopenharmony_ci/** 581bd4fe43Sopenharmony_ci * @ingroup hi_wifi_any 591bd4fe43Sopenharmony_ci * 601bd4fe43Sopenharmony_ci * Struct of peer's information.CNcomment:用户向驱动配置的对端设备信息数据CNend 611bd4fe43Sopenharmony_ci */ 621bd4fe43Sopenharmony_citypedef struct { 631bd4fe43Sopenharmony_ci unsigned char mac[WIFI_ANY_MAC_LEN]; /**< the MAC address for peer device. */ 641bd4fe43Sopenharmony_ci /**< CNcomment: 收发操作的对端MAC地址 */ 651bd4fe43Sopenharmony_ci unsigned char channel; /**< the channel number of peer device,the value 661bd4fe43Sopenharmony_ci 0xFF means current channel. */ 671bd4fe43Sopenharmony_ci /**< CNcomment: 对端所在信道号,驱动对该信息仅做存储,0xFF表示当前信道 */ 681bd4fe43Sopenharmony_ci bool has_key; /**< whether need key for packet encryption,if true,key shall be specified. */ 691bd4fe43Sopenharmony_ci /**< CNcomment: 是否配置通信密钥,是则填true,并在key中传入密钥,否则填false */ 701bd4fe43Sopenharmony_ci unsigned char key[WIFI_ANY_KEY_LEN]; /**< the key for packet encryption,it consists of 16 bytes. */ 711bd4fe43Sopenharmony_ci /**< CNcomment: 用于加密通信的密钥,填充的密钥固定为16字节长度 */ 721bd4fe43Sopenharmony_ci} hi_wifi_any_peer_info; 731bd4fe43Sopenharmony_ci 741bd4fe43Sopenharmony_ci/** 751bd4fe43Sopenharmony_ci * @ingroup hi_wifi_any 761bd4fe43Sopenharmony_ci * 771bd4fe43Sopenharmony_ci * Struct of information of ANY device discovered.CNcomment:扫描发现的ANY设备的参数定义CNend 781bd4fe43Sopenharmony_ci */ 791bd4fe43Sopenharmony_citypedef struct { 801bd4fe43Sopenharmony_ci unsigned char bssid[WIFI_ANY_MAC_LEN]; /**< the MAC address of peer device. */ 811bd4fe43Sopenharmony_ci /**< CNcomment: BSSID,若对端为STA则为其MAC地址 */ 821bd4fe43Sopenharmony_ci unsigned char channel; /**< the channel number of peer device. */ 831bd4fe43Sopenharmony_ci /**< CNcomment: 信道号,取值范围1-14,不同区域取值范围有差异 */ 841bd4fe43Sopenharmony_ci unsigned char sta_flag; /**< if peer device is a STA,the value is true,otherwise false. */ 851bd4fe43Sopenharmony_ci /**< CNcomment: true表示对端是STA,否则为普通AP */ 861bd4fe43Sopenharmony_ci unsigned char ssid[WIFI_ANY_MAX_SSID_LEN]; /**< SSID. *//**< CNcomment: SSID */ 871bd4fe43Sopenharmony_ci unsigned char ssid_len; /**< the string length of SSID. *//**< CNcomment: SSID字符串长度 */ 881bd4fe43Sopenharmony_ci char rssi; /**< RSSI value of peer device. *//**< CNcomment: 信号强度 */ 891bd4fe43Sopenharmony_ci unsigned char resv; /**< Reserved. *//**< CNcomment: 保留 */ 901bd4fe43Sopenharmony_ci} hi_wifi_any_device; 911bd4fe43Sopenharmony_ci 921bd4fe43Sopenharmony_ci/** 931bd4fe43Sopenharmony_ci* @ingroup hi_wifi_any 941bd4fe43Sopenharmony_ci* @brief Callback function invoked when ANY scan is finished.CNcomment:ANY扫描完成回调函数CNend 951bd4fe43Sopenharmony_ci* 961bd4fe43Sopenharmony_ci* @par Description: 971bd4fe43Sopenharmony_ci* When registered,the driver uses this callback to deliver ANY devices found after an ANY scan. \n 981bd4fe43Sopenharmony_ci* CNcomment:注册该回调函数之后,驱动每次完成ANY扫描调用该接口反馈结果给上层.CNend 991bd4fe43Sopenharmony_ci* 1001bd4fe43Sopenharmony_ci* @attention 1. This function is called in driver context,should not be blocked or do long time waiting.\n 1011bd4fe43Sopenharmony_ci CNcomment:1. 该回调函数运行于驱动线程,不能阻塞或长时间等待.CNend \n 1021bd4fe43Sopenharmony_ci* 2. The memories of <devices> are requested and freed by the driver automatically.\n 1031bd4fe43Sopenharmony_ci* CNcomment:2. <devices>由驱动申请内存,也由驱动释放,回调中不应释放.CNend 1041bd4fe43Sopenharmony_ci* @param devices [IN] Type #hi_wifi_any_device *, array of poniter of ANY devices found.CNcomment:发现的ANY设备信息, 1051bd4fe43Sopenharmony_ci* 该参数为指针类型的数组。CNend 1061bd4fe43Sopenharmony_ci* @param num [IN] Type #unsigned char, the number of ANY devices found, maximum is 32.CNcomment:发现的设备数量, 1071bd4fe43Sopenharmony_ci* 最大不超过32.CNend 1081bd4fe43Sopenharmony_ci* 1091bd4fe43Sopenharmony_ci* @retval #void no return value.CNcomment:无返回值.CNend 1101bd4fe43Sopenharmony_ci* @par Dependency: 1111bd4fe43Sopenharmony_ci* @li hi_any_api.h: ANY API 1121bd4fe43Sopenharmony_ci* @see hi_wifi_any_discover_peer 1131bd4fe43Sopenharmony_ci*/ 1141bd4fe43Sopenharmony_citypedef void (*hi_wifi_any_scan_result_cb)(hi_wifi_any_device *devices[], unsigned char num); 1151bd4fe43Sopenharmony_ci 1161bd4fe43Sopenharmony_ci/** 1171bd4fe43Sopenharmony_ci* @ingroup hi_wifi_any 1181bd4fe43Sopenharmony_ci* @brief Callback function for ANY RX.CNcomment:ANY驱动接收回调函数CNend 1191bd4fe43Sopenharmony_ci* 1201bd4fe43Sopenharmony_ci* @par Description: 1211bd4fe43Sopenharmony_ci* When registered,the driver uses this callback to deliver data received. \n 1221bd4fe43Sopenharmony_ci* CNcomment:注册该回调函数之后,驱动收到ANY报文则调用该回调函数传递给上层应用.CNend 1231bd4fe43Sopenharmony_ci* 1241bd4fe43Sopenharmony_ci* @attention 1. This function is called in driver context,should not be blocked or do long time waiting.\n 1251bd4fe43Sopenharmony_ci CNcomment:1. 该回调函数运行于驱动线程,不能阻塞或长时间等待.CNend\n 1261bd4fe43Sopenharmony_ci* 2. The memories of <mac> and <data> are requested and freed by the driver.\n 1271bd4fe43Sopenharmony_ci* CNcomment:2. <mac>和<data>由驱动申请内存,也由驱动释放,回调中不应释放.CNend 1281bd4fe43Sopenharmony_ci* @param mac [IN] Type #unsigned char *, MAC address with 6 octets length.CNcomment:6字节长度MAC地址.CNend 1291bd4fe43Sopenharmony_ci* @param data [IN] Type #unsigned char *, the address of data received.CNcomment:接收到数据的缓存地址.CNend 1301bd4fe43Sopenharmony_ci* @param len [IN] Type #unsigned short, the length in octet of data received.CNcomment:接收的数据长度, 1311bd4fe43Sopenharmony_ci* 最大为250字节.CNend 1321bd4fe43Sopenharmony_ci* @param seqnum [IN] Type #unsigned char, the sequence number of the ANY frame, range [0-255]. 1331bd4fe43Sopenharmony_ci* CNcomment:接收到的ANY帧的序列号,范围0-255.CNend 1341bd4fe43Sopenharmony_ci* 1351bd4fe43Sopenharmony_ci* @retval #void no return value.CNcomment:无返回值.CNend 1361bd4fe43Sopenharmony_ci* @par Dependency: 1371bd4fe43Sopenharmony_ci* @li hi_any_api.h: ANY API 1381bd4fe43Sopenharmony_ci* @see hi_wifi_any_set_callback 1391bd4fe43Sopenharmony_ci*/ 1401bd4fe43Sopenharmony_citypedef void (*hi_wifi_any_recv_cb)(unsigned char *mac, unsigned char *data, unsigned short len, unsigned char seqnum); 1411bd4fe43Sopenharmony_ci 1421bd4fe43Sopenharmony_ci/** 1431bd4fe43Sopenharmony_ci* @ingroup hi_wifi_any 1441bd4fe43Sopenharmony_ci* @brief Callback function for ANY TX.CNcomment:ANY驱动发送回调函数CNend 1451bd4fe43Sopenharmony_ci* 1461bd4fe43Sopenharmony_ci* @par Description: 1471bd4fe43Sopenharmony_ci* When registered,the driver uses this callback to notify whether an ACK has received. \n 1481bd4fe43Sopenharmony_ci* CNcomment:注册该回调函数之后,驱动将发送结果(是否收到ACK)反馈给上层应用.CNend 1491bd4fe43Sopenharmony_ci* 1501bd4fe43Sopenharmony_ci* @attention 1. This function is called in driver context,should not be blocked or do long time waiting.\n 1511bd4fe43Sopenharmony_ci CNcomment:1. 该回调函数运行于驱动线程,不能阻塞或长时间等待.CNend \n 1521bd4fe43Sopenharmony_ci* 2. The memories of <mac> are requested and freed by the driver.\n 1531bd4fe43Sopenharmony_ci* CNcomment:2. <mac>由驱动申请内存,也由驱动释放,回调中不应释放.CNend 1541bd4fe43Sopenharmony_ci* @param mac [IN] Type #unsigned char *, MAC address with 6 octets length.CNcomment:6字节长度MAC地址.CNend 1551bd4fe43Sopenharmony_ci* @param status [IN] Type #unsigned char, the result of a single transmit,return 1 if transmitted successfully. 1561bd4fe43Sopenharmony_ci CNcomment:单次发送的结果, 值为1代表发送成功,其他值代表发送失败.CNend 1571bd4fe43Sopenharmony_ci* @param seqnum [IN] Type #unsigned char, the sequence number of the ANY frame, range [0-255]. 1581bd4fe43Sopenharmony_ci* CNcomment:接收到的ANY帧的序列号,范围0-255.CNend 1591bd4fe43Sopenharmony_ci* 1601bd4fe43Sopenharmony_ci* @retval #void no return value.CNcomment:无返回值.CNend 1611bd4fe43Sopenharmony_ci* @par Dependency: 1621bd4fe43Sopenharmony_ci* @li hi_any_api.h: ANY API 1631bd4fe43Sopenharmony_ci* @see hi_wifi_any_set_callback 1641bd4fe43Sopenharmony_ci*/ 1651bd4fe43Sopenharmony_citypedef void (*hi_wifi_any_send_complete_cb)(unsigned char *mac, unsigned char status, unsigned char seqnum); 1661bd4fe43Sopenharmony_ci 1671bd4fe43Sopenharmony_ci/** 1681bd4fe43Sopenharmony_ci * @ingroup hi_wifi_any 1691bd4fe43Sopenharmony_ci * 1701bd4fe43Sopenharmony_ci * Struct of ANY callback function.CNcomment:ANY收发回调接口定义CNend 1711bd4fe43Sopenharmony_ci */ 1721bd4fe43Sopenharmony_citypedef struct { 1731bd4fe43Sopenharmony_ci hi_wifi_any_send_complete_cb send_cb; /**< the callback function invoked when an ANY frame is sent. */ 1741bd4fe43Sopenharmony_ci /**< CNcomment: ANY发送完成驱动回调函数,用于将驱动发送结果反馈给上层 */ 1751bd4fe43Sopenharmony_ci hi_wifi_any_recv_cb recv_cb; /**< the callback function invoked when an ANY frame is received. */ 1761bd4fe43Sopenharmony_ci /**< CNcomment: ANY接收数据驱动回调函数,用于将驱动接收的数据传递给上层 */ 1771bd4fe43Sopenharmony_ci} hi_wifi_any_callback; 1781bd4fe43Sopenharmony_ci 1791bd4fe43Sopenharmony_ci/** 1801bd4fe43Sopenharmony_ci* @ingroup hi_wifi_any 1811bd4fe43Sopenharmony_ci* @brief Use this funtion to initialize ANY feature.CNcomment:ANY功能初始化函数CNend 1821bd4fe43Sopenharmony_ci* 1831bd4fe43Sopenharmony_ci* @par Description: 1841bd4fe43Sopenharmony_ci* Use this funtion to initialize ANY feature.CNcomment:ANY功能初始化函数CNend 1851bd4fe43Sopenharmony_ci* 1861bd4fe43Sopenharmony_ci* @attention A device shall be intialized only once, do de-initialzing first before perform a new initialization.\n 1871bd4fe43Sopenharmony_ci CNcomment:一个设备只允许一次初始化,重新初始化之前需要先调用去ANY初始化.CNend \n 1881bd4fe43Sopenharmony_ci* @param seqnum [IN] Type #const char *, the interface name used to TX/RX ANY frames, eg.wlan0/ap0/mesh0. 1891bd4fe43Sopenharmony_ci* CNcomment:用于收发ANY报文的接口名称,常用值为"wlan0","ap0"或"mesh0".CNend 1901bd4fe43Sopenharmony_ci* 1911bd4fe43Sopenharmony_ci* @retval #HISI_OK Excute successfully 1921bd4fe43Sopenharmony_ci* @retval #Other Error code 1931bd4fe43Sopenharmony_ci* @par Dependency: 1941bd4fe43Sopenharmony_ci* @li hi_any_api.h: ANY API 1951bd4fe43Sopenharmony_ci* @see NULL 1961bd4fe43Sopenharmony_ci*/ 1971bd4fe43Sopenharmony_ciint hi_wifi_any_init(const char *ifname); 1981bd4fe43Sopenharmony_ci 1991bd4fe43Sopenharmony_ci/** 2001bd4fe43Sopenharmony_ci* @ingroup hi_wifi_any 2011bd4fe43Sopenharmony_ci* @brief Use this funtion to de-initialize ANY feature.CNcomment:ANY功能去初始化函数CNend 2021bd4fe43Sopenharmony_ci* 2031bd4fe43Sopenharmony_ci* @par Description: 2041bd4fe43Sopenharmony_ci* Use this funtion to de-initialize ANY feature.CNcomment:ANY功能去初始化函数CNend 2051bd4fe43Sopenharmony_ci* 2061bd4fe43Sopenharmony_ci* @attention NULL 2071bd4fe43Sopenharmony_ci* @param NULL 2081bd4fe43Sopenharmony_ci* 2091bd4fe43Sopenharmony_ci* @retval #HISI_OK Excute successfully 2101bd4fe43Sopenharmony_ci* @retval #Other Error code 2111bd4fe43Sopenharmony_ci* @par Dependency: 2121bd4fe43Sopenharmony_ci* @li hi_any_api.h: ANY API 2131bd4fe43Sopenharmony_ci* @see NULL 2141bd4fe43Sopenharmony_ci*/ 2151bd4fe43Sopenharmony_ciint hi_wifi_any_deinit(void); 2161bd4fe43Sopenharmony_ci 2171bd4fe43Sopenharmony_ci/** 2181bd4fe43Sopenharmony_ci* @ingroup hi_wifi_any 2191bd4fe43Sopenharmony_ci* @brief Register callback functions for ANY TX and RX.CNcomment:注册ANY驱动发送回调函数和接收回调函数CNend 2201bd4fe43Sopenharmony_ci* 2211bd4fe43Sopenharmony_ci* @par Description: 2221bd4fe43Sopenharmony_ci* Register callback functions for ANY TX and RX.CNcomment:注册ANY驱动发送回调函数和接收回调函数CNend 2231bd4fe43Sopenharmony_ci* 2241bd4fe43Sopenharmony_ci* @attention APP shall implement the TX/RX callbacks and register them to driver through this function.\n 2251bd4fe43Sopenharmony_ci CNcomment:需要用户自己实现该回调函数功能并通过上述接口注册给驱动.CNend 2261bd4fe43Sopenharmony_ci* @param send_cb [IN] Type #hi_wifi_any_send_complete_cb, callback function for ANY TX. 2271bd4fe43Sopenharmony_ci* CNcomment:ANY驱动发送回调函数.CNend 2281bd4fe43Sopenharmony_ci* @param recv_cb [IN] Type #hi_wifi_any_recv_cb, callback function for ANY RX. 2291bd4fe43Sopenharmony_ci* CNcomment:ANY驱动接收回调函数.CNend 2301bd4fe43Sopenharmony_ci* 2311bd4fe43Sopenharmony_ci* @retval #void no return value.CNcomment:无返回值.CNend 2321bd4fe43Sopenharmony_ci* @par Dependency: 2331bd4fe43Sopenharmony_ci* @li hi_any_api.h: ANY API 2341bd4fe43Sopenharmony_ci* @see hi_wifi_any_send_complete_cb | hi_wifi_any_recv_cb 2351bd4fe43Sopenharmony_ci*/ 2361bd4fe43Sopenharmony_civoid hi_wifi_any_set_callback(hi_wifi_any_send_complete_cb send_cb, hi_wifi_any_recv_cb recv_cb); 2371bd4fe43Sopenharmony_ci 2381bd4fe43Sopenharmony_ci/** 2391bd4fe43Sopenharmony_ci* @ingroup hi_wifi_any 2401bd4fe43Sopenharmony_ci* @brief Send ANY frame to specific mac address.CNcomment:向指定MAC地址的设备发送ANY数据。CNend 2411bd4fe43Sopenharmony_ci* 2421bd4fe43Sopenharmony_ci* @par Description: 2431bd4fe43Sopenharmony_ci* Frame TX interface of ANY, specify frame's sequece number by seq. \n 2441bd4fe43Sopenharmony_ci* the mac_len shall be constant 6 and data_len for a frame should not exceed 250 octets. \n 2451bd4fe43Sopenharmony_ci* CNcomment:ANY报文发送接口,可以通过seq指定该报文的发送序列号。\n 2461bd4fe43Sopenharmony_ci* 其中MAC地址长度固定填6字节,待发送的数据长度data_len不能超过250字节 CNend 2471bd4fe43Sopenharmony_ci* 2481bd4fe43Sopenharmony_ci* @attention The memories of <mac> and <data> are requested and freed by user APP.\n 2491bd4fe43Sopenharmony_ci* CNcomment:<mac>和<data>内存由用户申请和管理,执行完成后驱动不会释放.CNend 2501bd4fe43Sopenharmony_ci* @param mac [IN] Type #const unsigned char *, destination MAC address, it may be unicast or broadcast. 2511bd4fe43Sopenharmony_ci* CNcomment:6字节长度目的MAC地址, 可为单播或者广播地址, 不支持组播地址.CNend 2521bd4fe43Sopenharmony_ci* @param mac_len [IN] Type #unsigned char, length of MAC address which shall be 6 in octet. 2531bd4fe43Sopenharmony_ci* CNcomment:MAC地址长度, 需为6字节.CNend 2541bd4fe43Sopenharmony_ci* @param data [IN] Type #unsigned char *, the address of data.CNcomment:待发送数据的缓存地址.CNend 2551bd4fe43Sopenharmony_ci* @param len [IN] Type #unsigned short, the length in octet of data, maximum is 250. 2561bd4fe43Sopenharmony_ci* CNcomment:待发送的数据长度, 最大为250字节.CNend 2571bd4fe43Sopenharmony_ci* @param seqnum [IN] Type #unsigned char, the sequence number of the ANY frame, range [0-255]. 2581bd4fe43Sopenharmony_ci* CNcomment:待发送的ANY帧的序列号,范围0-255.CNend 2591bd4fe43Sopenharmony_ci* 2601bd4fe43Sopenharmony_ci* @retval #HISI_OK Excute successfully 2611bd4fe43Sopenharmony_ci* @retval #Other Error code 2621bd4fe43Sopenharmony_ci* @par Dependency: 2631bd4fe43Sopenharmony_ci* @li hi_any_api.h: ANY API 2641bd4fe43Sopenharmony_ci* @see hi_wifi_any_send_complete_cb 2651bd4fe43Sopenharmony_ci*/ 2661bd4fe43Sopenharmony_ciint hi_wifi_any_send(const unsigned char *mac, unsigned char mac_len, unsigned char *data, 2671bd4fe43Sopenharmony_ci unsigned short data_len, unsigned char seq); 2681bd4fe43Sopenharmony_ci 2691bd4fe43Sopenharmony_ci/** 2701bd4fe43Sopenharmony_ci* @ingroup hi_wifi_any 2711bd4fe43Sopenharmony_ci* @brief Add information of ANY peer device.CNcomment:添加ANY对端设备信息。CNend 2721bd4fe43Sopenharmony_ci* 2731bd4fe43Sopenharmony_ci* @par Description: 2741bd4fe43Sopenharmony_ci* Add information of ANY peer device(mac address, channel and key). \n 2751bd4fe43Sopenharmony_ci* the number of peer devices must not exceed 16, among which the encrypted must not exceed 6. \n 2761bd4fe43Sopenharmony_ci* CNcomment:添加对端设备的MAC地址,所在信道信息和用于加密通信的密钥。\n 2771bd4fe43Sopenharmony_ci* 对端设备总数最多16个,其中加密通信的对端个数最多6个。CNend 2781bd4fe43Sopenharmony_ci* 2791bd4fe43Sopenharmony_ci* @attention 1. The driver just stores the channels of peer devices.\n 2801bd4fe43Sopenharmony_ci* It will not switch to a channel automatically which differs with the current channel. \n 2811bd4fe43Sopenharmony_ci* CNcomment:1. 驱动仅保存对端设备的信道号,通信过程不会自动切到对应信道.CNend \n 2821bd4fe43Sopenharmony_ci* 2. The memories of <peer_info> are requested and freed by user APP.\n 2831bd4fe43Sopenharmony_ci* CNcomment:2. <peer_info>内存由用户管理,驱动接口中不会释放.CNend 2841bd4fe43Sopenharmony_ci* @param peer_info [IN] Type #hi_wifi_any_peer_info *, information of peer device. 2851bd4fe43Sopenharmony_ci* CNcomment:对端设备的信息.CNend 2861bd4fe43Sopenharmony_ci* 2871bd4fe43Sopenharmony_ci* @retval #HISI_OK Excute successfully 2881bd4fe43Sopenharmony_ci* @retval #Other Error code 2891bd4fe43Sopenharmony_ci* @par Dependency: 2901bd4fe43Sopenharmony_ci* @li hi_any_api.h: ANY API 2911bd4fe43Sopenharmony_ci* @see NULL 2921bd4fe43Sopenharmony_ci*/ 2931bd4fe43Sopenharmony_ciint hi_wifi_any_add_peer(const hi_wifi_any_peer_info *peer_info); 2941bd4fe43Sopenharmony_ci 2951bd4fe43Sopenharmony_ci/** 2961bd4fe43Sopenharmony_ci* @ingroup hi_wifi_any 2971bd4fe43Sopenharmony_ci* @brief Delete specific peer device.CNcomment:删除指定MAC地址的对端设备信息。CNend 2981bd4fe43Sopenharmony_ci* 2991bd4fe43Sopenharmony_ci* @par Description: 3001bd4fe43Sopenharmony_ci* Delete peer device specified by MAC address, the <len> should be constant 6. \n 3011bd4fe43Sopenharmony_ci* CNcomment:删除指定MAC地址的对端设备信息,MAC地址长度需固定填6字节。CNend 3021bd4fe43Sopenharmony_ci* 3031bd4fe43Sopenharmony_ci* @attention The memories of <mac> are requested and freed by user APP. \n 3041bd4fe43Sopenharmony_ci* CNcomment:<mac>内存由用户申请和管理,执行完成后驱动不会释放.CNend 3051bd4fe43Sopenharmony_ci* @param mac [IN] Type #const unsigned char *, peer device's MAC address. 3061bd4fe43Sopenharmony_ci* CNcomment:待删除的对端设备的MAC地址.CNend 3071bd4fe43Sopenharmony_ci* @param len [IN] Type #unsigned char, length of MAC address which shall be constant 6. 3081bd4fe43Sopenharmony_ci* CNcomment:对端设备的MAC地址长度,固定填6字节.CNend 3091bd4fe43Sopenharmony_ci* 3101bd4fe43Sopenharmony_ci* @retval #HISI_OK Excute successfully 3111bd4fe43Sopenharmony_ci* @retval #Other Error code 3121bd4fe43Sopenharmony_ci* @par Dependency: 3131bd4fe43Sopenharmony_ci* @li hi_any_api.h: ANY API 3141bd4fe43Sopenharmony_ci* @see NULL 3151bd4fe43Sopenharmony_ci*/ 3161bd4fe43Sopenharmony_ciint hi_wifi_any_del_peer(const unsigned char *mac, unsigned char len); 3171bd4fe43Sopenharmony_ci 3181bd4fe43Sopenharmony_ci/** 3191bd4fe43Sopenharmony_ci* @ingroup hi_wifi_any 3201bd4fe43Sopenharmony_ci* @brief Get ANY peer device's information by index.CNcomment:获取指定索引的对端设备信息。CNend 3211bd4fe43Sopenharmony_ci* 3221bd4fe43Sopenharmony_ci* @par Description: 3231bd4fe43Sopenharmony_ci* Get ANY peer device's information by index.Index starts from 0 and should not exceed 15. \n 3241bd4fe43Sopenharmony_ci* CNcomment:获取指定索引的对端设备信息。其中传入的index从0开始指定查询第几个对端,最大不能超过15。CNend 3251bd4fe43Sopenharmony_ci* 3261bd4fe43Sopenharmony_ci* @attention The memories of <peer> are requested and freed by user APP. \n 3271bd4fe43Sopenharmony_ci* CNcomment:<peer>内存由用户申请和管理,由驱动填充查询到的信息.CNend 3281bd4fe43Sopenharmony_ci* @param index [IN] Type #unsigned char, peer device's index, start from 0. 3291bd4fe43Sopenharmony_ci* CNcomment:待查询的对端设备的索引,从0开始.CNend 3301bd4fe43Sopenharmony_ci* @param peer [OUT] Type #hi_wifi_any_peer_info *, peer device's information. 3311bd4fe43Sopenharmony_ci* CNcomment:查询到的对端设备的信息.CNend 3321bd4fe43Sopenharmony_ci* 3331bd4fe43Sopenharmony_ci* @retval #HISI_OK Excute successfully 3341bd4fe43Sopenharmony_ci* @retval #Other Error code 3351bd4fe43Sopenharmony_ci* @par Dependency: 3361bd4fe43Sopenharmony_ci* @li hi_any_api.h: ANY API 3371bd4fe43Sopenharmony_ci* @see NULL 3381bd4fe43Sopenharmony_ci*/ 3391bd4fe43Sopenharmony_ciint hi_wifi_any_fetch_peer(unsigned char index, hi_wifi_any_peer_info *peer); 3401bd4fe43Sopenharmony_ci 3411bd4fe43Sopenharmony_ci/** 3421bd4fe43Sopenharmony_ci* @ingroup hi_wifi_any 3431bd4fe43Sopenharmony_ci* @brief Start ANY scan and register callback to handle scan results. \n 3441bd4fe43Sopenharmony_ci* CNcomment:发起ANY扫描并注册回调函数处理扫描完成之后的结果。CNend 3451bd4fe43Sopenharmony_ci* 3461bd4fe43Sopenharmony_ci* @par Description: 3471bd4fe43Sopenharmony_ci* Start ANY scan and register callback to handle scan results. \n 3481bd4fe43Sopenharmony_ci* The limit to the number of peers discoverd is 32 for a single scan. \n 3491bd4fe43Sopenharmony_ci* CNcomment:发起ANY扫描并注册回调函数处理扫描完成之后的结果,单次扫描最多返回32个对端设备信息。CNend 3501bd4fe43Sopenharmony_ci* 3511bd4fe43Sopenharmony_ci* @attention NULL 3521bd4fe43Sopenharmony_ci* @param p_fn_cb [IN] Type #hi_wifi_any_scan_result_cb, callback function to handle scan results. 3531bd4fe43Sopenharmony_ci* CNcomment:由用户实现的回调函数, 扫描完成之后驱动调用该回调处理扫描结果.CNend 3541bd4fe43Sopenharmony_ci* 3551bd4fe43Sopenharmony_ci* @retval #HISI_OK Excute successfully 3561bd4fe43Sopenharmony_ci* @retval #Other Error code 3571bd4fe43Sopenharmony_ci* @par Dependency: 3581bd4fe43Sopenharmony_ci* @li hi_any_api.h: ANY API 3591bd4fe43Sopenharmony_ci* @see hi_wifi_any_scan_result_cb 3601bd4fe43Sopenharmony_ci*/ 3611bd4fe43Sopenharmony_ciint hi_wifi_any_discover_peer(hi_wifi_any_scan_result_cb p_fn_cb); 3621bd4fe43Sopenharmony_ci 3631bd4fe43Sopenharmony_ci#ifdef __cplusplus 3641bd4fe43Sopenharmony_ci#if __cplusplus 3651bd4fe43Sopenharmony_ci } 3661bd4fe43Sopenharmony_ci#endif 3671bd4fe43Sopenharmony_ci#endif 3681bd4fe43Sopenharmony_ci 3691bd4fe43Sopenharmony_ci#endif /* end of hi_any_api.h */ 3701bd4fe43Sopenharmony_ci 371