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