Add basic change for v1453

Change-Id: I9497a61bbc3717f66413794a4e7dee0347c0bc33
diff --git a/mbtk/include/ql_v2/ql_wifi.h b/mbtk/include/ql_v2/ql_wifi.h
new file mode 100755
index 0000000..90c6424
--- /dev/null
+++ b/mbtk/include/ql_v2/ql_wifi.h
@@ -0,0 +1,1172 @@
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @file ql_wifi.h
+  @brief  Wi-Fi service API
+
+  @detailes
+  Quectel  series module Wi-Fi service.
+
+  @htmlonly
+  <span style="font-weight: bold">History</span>
+  @endhtmlonly
+
+  when       |   who       |    what, where, why
+  --------   |   ---       |    ----------------------------------------------------------
+  2020-04-03 |   ewen.li   |    Created .
+  2021-11-08 |   ewen.li   |    Add Wi-Fi P2P API and callback function .
+
+  Copyright (c) 2019 Quectel Wireless Solution, Co., Ltd. All Rights Reserved.
+  Quectel Wireless Solution Proprietary and Confidential.
+-------------------------------------------------------------------------------------------------*/
+#ifndef __QL_WIFI_H__
+#define __QL_WIFI_H__
+
+#include "ql_wifi_common.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  Wi-Fi enable status callback function.
+
+  @param[in]  pre_status: The previous Wi-Fi enable status.
+  @param[in]  status: The current Wi-Fi enable status.
+
+  @retval  void
+  */
+/*-----------------------------------------------------------------------------------------------*/
+typedef void (*ql_wifi_enable_status_ind_cb_f)(QL_WIFI_ENABLE_STATUS_E pre_status, QL_WIFI_ENABLE_STATUS_E status);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  AP mode status callback function.
+
+  @param[in]  pre_status: The previous AP mode status.
+  @param[in]  p_msg: The current AP mode status information.
+
+  @retval  void
+  */
+/*-----------------------------------------------------------------------------------------------*/
+typedef void (*ql_wifi_ap_status_ind_cb_f)(QL_WIFI_AP_INDEX_E index, QL_WIFI_AP_STATUS_E pre_status, ql_wifi_ap_status_t *p_msg);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  STA mode status callback function.
+
+  @param[in]  pre_status: The previous STA mode status.
+  @param[in]  p_msg: The current STA mode status information.
+
+  @retval  void
+  */
+/*-----------------------------------------------------------------------------------------------*/
+typedef void (*ql_wifi_sta_status_ind_cb_f)(QL_WIFI_STA_STATUS_E pre_status, ql_wifi_sta_status_t *p_msg);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  STA scan results callback function.
+
+  @param[in]  p_msg: The information list of external hotspots.
+
+  @retval  void
+  */
+/*-----------------------------------------------------------------------------------------------*/
+typedef void (*ql_wifi_sta_scan_result_ind_cb_f)(ql_wifi_sta_scan_result_t *p_msg);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This is a callback function for status of connection between AP and STA device.
+
+  @param[in]  index: The index of AP mode.
+  @param[in]  p_msg: The status of connection between AP and STA device.
+
+  @retval  void
+  */
+/*-----------------------------------------------------------------------------------------------*/
+typedef void (*ql_wifi_ap_sta_connect_ind_cb_f)(QL_WIFI_AP_INDEX_E index, ql_wifi_sta_connect_status_t *p_msg);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  Wi-Fi service error callback function.
+
+  @param[in]  error: Error code.
+
+  @retval  void
+  */
+/*-----------------------------------------------------------------------------------------------*/
+typedef void (*ql_wifi_service_error_cb_f)(int error);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This is a callback function for status of P2P enable.
+
+  @param[in]  pre_status: The previous P2P enable status.
+  @param[in]  status: The current P2P enable status.
+
+  @retval  void
+  */
+/*-----------------------------------------------------------------------------------------------*/
+typedef void (*ql_wifi_p2p_enable_status_ind_cb_f)(QL_WIFI_P2P_ENABLE_STATUS_E pre_status, QL_WIFI_P2P_ENABLE_STATUS_E status);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  The found p2p device callback function.
+
+  @param[in]  p_msg: The information of p2p device 
+
+  @retval  void
+  */
+/*-----------------------------------------------------------------------------------------------*/
+typedef void (*ql_wifi_p2p_dev_found_ind_cb_f)(ql_wifi_p2p_found_dev_info_t *p_msg);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  Peer p2p device requesting connection callback function.
+
+  @param[in]  p_msg: The information of peer p2p device 
+
+  @retval  void
+  */
+/*-----------------------------------------------------------------------------------------------*/
+typedef void (*ql_wifi_p2p_peer_dev_req_ind_cb_f)(ql_wifi_p2p_req_peer_dev_info_t *pmsg);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  P2P status callback function.
+
+  @param[in]  pre_status: The previous P2P status.
+  @param[in]  status: The current P2P status information.
+
+  @retval  void
+  */
+/*-----------------------------------------------------------------------------------------------*/
+typedef void (*ql_wifi_p2p_status_ind_cb_f)(QL_WIFI_P2P_STATUS_E pre_status, ql_wifi_p2p_status_t *p_msg);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function initializes Wi-Fi service.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_SERVICE_NOT_READY: Wi-Fi service is not ready. It is recommended to try again.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+
+  @note  Before other Wi-Fi APIs are used, this function must be called to initialize the Wi-Fi service.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_init(void);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function deinitializes Wi-Fi service.
+
+  @retval  QL_ERR_OK: Successful execution.
+           Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_deinit(void);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function sets the country code of wlan driver
+
+  @param[in]  country_code: The country code to be set. The country code cannot exceed 2 bytes and is not empty. For example,  CN represents China.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+
+  @note  Before calling the ql_wifi_enable(), call this function firstly to set country code,
+         If this function is not called, The country code "CN" will be used by default.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_country_code_set(const char *country_code);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the country code of wlan driver.
+
+  @param[out]  country_code_buf: The buffer for storing the current country code. The buffer size is recommended to be 3 bytes.
+  @param[in]   The length of buffer.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_country_code_get(char *country_code_buf, int buf_len);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function enables Wi-Fi function.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_enable(void);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function disables Wi-Fi function.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_disable(void);
+
+
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function set bridge function.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_set_bridge(char *bridge);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function registers Wi-Fi enable status callback function.
+
+  @param[in]  cb: The Wi-Fi enable status callback function.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_set_enable_status_ind_cb(ql_wifi_enable_status_ind_cb_f cb);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function sets the Wi-Fi working mode.
+
+  @param[in]  mode: The Wi-Fi working mode to be set.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_work_mode_set(QL_WIFI_WORK_MODE_E mode);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the current Wi-Fi working mode.
+
+  @param[out]  p_mode: The current Wi-Fi working mode.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_work_mode_get(QL_WIFI_WORK_MODE_E *p_mode);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function sets the SSID in AP mode.
+
+  @param[in]  idx: The index of AP mode.
+  @param[in]  ssid: The SSID to be set. It should be within 32 bytes and is not empty.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_ssid_set(QL_WIFI_AP_INDEX_E idx, const char *ssid);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the SSID in AP mode.
+
+  @param[in]   idx: The index of AP mode.
+  @param[out]  ssid_buf: The buffer for storing the current SSID, the buffer size is recommended to be 33 bytes.
+  @param[in]   buf_len: The length of the buffer.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_ssid_get(QL_WIFI_AP_INDEX_E idx, char *ssid_buf, int buf_len);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function sets the SSID hiding status in AP mode.
+
+  @param[in]  idx: The index of AP mode.
+  @param[in]  ssid_hidden: The SSID hiding status to be set.
+                           0: The SSID is not hidden.
+                           1: The SSID is hidden.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_ssid_hidden_set(QL_WIFI_AP_INDEX_E idx, int ssid_hidden);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the SSID hiding status in AP mode.
+
+  @param[in]  idx: The index of AP mode.
+  @param[out]  p_ssid_hidden: The current SSID hiding status in AP mode.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_ssid_hidden_get(QL_WIFI_AP_INDEX_E idx, int *p_ssid_hidden);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function sets the working protocol mode in AP mode.
+
+  @param[in]  idx: The index of AP mode.
+  @param[in]  mode: The working protocol mode to be set.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_mode_set(QL_WIFI_AP_INDEX_E idx, QL_WIFI_AP_MODE_TYPE_E mode);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the working protocol mode in AP mode.
+
+  @param[in]   idx: The index of AP mode.
+  @param[out]  p_mode: The current working protocol mode in AP mode.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_mode_get(QL_WIFI_AP_INDEX_E idx, QL_WIFI_AP_MODE_TYPE_E *p_mode);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function sets the bandwidth in AP mode.
+
+  @param[in]  idx: The index of AP mode.
+  @param[in]  bandwidth: The bandwidth to be set.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_bandwidth_set(QL_WIFI_AP_INDEX_E idx, QL_WIFI_BANDWIDTH_E bandwidth);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the bandwidth in AP mode.
+
+  @param[in]   idx: The index of AP mode.
+  @param[out]  p_bandwidth: The current bandwidth in AP mode.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_bandwidth_get(QL_WIFI_AP_INDEX_E idx, QL_WIFI_BANDWIDTH_E *p_bandwidth);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function sets the channel in AP mode.
+
+  @param[in]  idx: The index of AP mode.
+  @param[in]  channel: The channel to be set.
+                       0: Adaptive
+                       1/2/3/4/5/6/7/8/9/10/11/12/13/14: 2.4G channel.
+                       36/40/44/48/52/56/60/64/100/104/108/112/116/120/124/128/132/136/140/144/149/153/157/161/165: 5GHZ channel.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_channel_set(QL_WIFI_AP_INDEX_E idx, int channel);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the channel in AP mode.
+
+  @param[in]  idx: The index of AP mode.
+  @param[out]  p_channel: The currently-used channel in AP mode.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_channel_get(QL_WIFI_AP_INDEX_E idx, int *p_channel);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function sets the maximum number of terminal connections in AP mode.
+
+  @param[in]  idx: The index of AP mode.
+  @param[in]  max_sta_num: The maximum number of terminal connections in AP mode to be set. Range: 1~32.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_max_sta_num_set(QL_WIFI_AP_INDEX_E idx, int max_sta_num);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the maximum number of terminal connections in AP mode.
+
+  @param[in]  idx: The index of AP mode.
+  @param[out]  p_max_sta_num: The current maximum number of terminal connections in AP mode.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_max_sta_num_get(QL_WIFI_AP_INDEX_E idx, int *p_max_sta_num);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function sets the country code in AP mode.
+
+  @param[in]  idx: The index of AP mode.
+  @param[in]  country_code: The country code to be set. The country code cannot exceed 2 bytes and is not empty. For example,  CN represents China.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_country_code_set(QL_WIFI_AP_INDEX_E idx, const char *country_code);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the country code in AP mode.
+
+  @param[in]   idx: The index of AP mode.
+  @param[out]  country_code_buf: The buffer for storing the current country code. The buffer size is recommended to be 3 bytes.
+  @param[in]   The length of buffer.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_country_code_get(QL_WIFI_AP_INDEX_E idx, char *country_code_buf, int buf_len);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function sets the AP isolation state.
+
+  @param[in]  idx: The index of AP mode.
+  @param[in]  isolate: AP isolation status to be set.
+                       0: AP is not isolated.
+                       1: AP is isolated.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_isolate_set(QL_WIFI_AP_INDEX_E idx, int isolate);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the AP isolation state.
+
+  @param[in]   idx: The index of AP mode.
+  @param[out]  p_isolate: The current AP isolation status.
+                          0: AP is not isolated.
+                          1: AP is isolated.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_isolate_get(QL_WIFI_AP_INDEX_E idx, int *p_isolate);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function sets MAC address access rules in AP mode.
+
+  @param[in]  idx: The index of AP mode.
+  @param[in]  acl_rule: MAC address access rules to be set.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_mac_acl_rule_set(QL_WIFI_AP_INDEX_E idx, QL_WIFI_MAC_ACL_RULE_E acl_rule);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets MAC address access rules in AP mode.
+
+  @param[in]   idx: The index of AP mode.
+  @param[out]  p_acl_rule: The current MAC address access rules.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_mac_acl_rule_get(QL_WIFI_AP_INDEX_E idx, QL_WIFI_MAC_ACL_RULE_E *p_acl_rule);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function adds or deletes the specified MAC address for the current MAC address access rule.
+
+  @param[in]  idx: The index of AP mode.
+  @param[in]  cmd: MAC address operation command.
+  @param[in]  macaddr: MAC address to be added or deleted., The format of MAC address 
+                       must be %02X:%02X:%02X:%02X:%02X:%02X, For example: 1A:2B:3C:4D:56:78.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_acl_mac_set(QL_WIFI_AP_INDEX_E idx, QL_WIFI_ACL_MAC_CMD_E cmd, const char *macaddr);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets all MAC addresses in the current MAC address access rule.
+
+  @param[in]   idx: The index of AP mode.
+  @param[out]  p_mac_list: MAC address list.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_acl_mac_get(QL_WIFI_AP_INDEX_E idx, ql_wifi_acl_mac_list_t *p_mac_list);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function sets the authentication in AP mode.
+
+  @param[in]  idx: The index of AP mode.
+  @param[in]  p_auth: The authentication information to be set.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_auth_set(QL_WIFI_AP_INDEX_E idx, ql_wifi_ap_auth_t *p_auth);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the authentication information in AP mode.
+
+  @param[in]   idx: The index of AP mode.
+  @param[out]  p_auth: The current authentication information.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_auth_get(QL_WIFI_AP_INDEX_E idx, ql_wifi_ap_auth_t *p_auth);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function registers the AP mode status callback function.
+
+  @param[in]  cb: The AP mode status callback function.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_set_status_ind_cb(ql_wifi_ap_status_ind_cb_f cb);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function starts the AP function.
+
+  @param[in]  index: The index of AP mode.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_start(QL_WIFI_AP_INDEX_E index);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function stops the AP function.
+
+  @param[in]  index: The index of AP mode.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_stop(QL_WIFI_AP_INDEX_E index);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the AP mode status information.
+
+  @param[in]   index: The index of AP mode.
+  @param[out]  p_sta: The current AP mode status information.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_ap_get_status(QL_WIFI_AP_INDEX_E index, ql_wifi_ap_status_t *p_sta);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function sets the SSID in STA mode.
+
+  @param[in]  ssid: The SSID to be set. The SSID cannot exceed 32 bytes and is not empty.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_sta_ssid_set(const char *ssid);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the SSID in STA mode.
+
+  @param[out]  ssid_buf: The buffer for storing the current SSID.
+  @param[in]   buf_len: The length of the buffer.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_sta_ssid_get(char *ssid_buf, int buf_len);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function sets the authentication in STA mode.
+
+  @param[in]  p_auth: The authentication information to be set.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_sta_auth_set(ql_wifi_sta_auth_t *p_auth);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the authentication information in STA mode.
+
+  @param[out]  p_auth: The current authentication information.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_sta_auth_get(ql_wifi_sta_auth_t *p_auth);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function registers the STA mode status callback function.
+
+  @param[in]  cb: The STA mode status callback function.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_sta_set_status_ind_cb(ql_wifi_sta_status_ind_cb_f cb);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function starts the STA function.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_sta_start(void);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function stops the STA function.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_sta_stop(void);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the STA mode status information.
+
+  @param[out]  p_sta: The current STA mode status information.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_sta_get_status(ql_wifi_sta_status_t *p_sta);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function scans for external hotspots in STA mode.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_sta_start_scan(void);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function registers the scan result callback function.
+
+  @param[in]  cb: The scan result callback function.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_sta_set_scan_result_ind_cb(ql_wifi_sta_scan_result_ind_cb_f cb);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function registers the callback function for status of connection between AP and STA device.
+
+  @param[in]  cb: The callback function for status of connection between AP and STA device.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_set_ap_sta_connect_ind_cb(ql_wifi_ap_sta_connect_ind_cb_f cb);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function registers the Wi-Fi service error callback function.
+
+  @param[in]  cb: Wi-Fi service error callback function, executed only when the Wi-Fi service exits abnormally.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_set_service_error_cb(ql_wifi_service_error_cb_f cb);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function sets the P2P device name.
+
+  @param[in]  dev_name: The device name to be set.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_dev_name_set(const char *dev_name);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the P2P device name.
+
+  @param[out]  dev_name_buf: The buffer for storing the current device name.
+  @param[in]   buf_len: The length of the buffer.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_dev_name_get(char *dev_name_buf, int buf_len);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function sets the P2P device type.
+
+  @param[in]  dev_type: The device type to be set.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_dev_type_set(const char *dev_type);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the P2P device type.
+
+  @param[out]  dev_type_buf: The buffer for storing the current device type.
+  @param[in]   buf_len: The length of the buffer.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_dev_type_get(char *dev_type_buf, int buf_len);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function sets the operating class and operating channel in P2P mode.
+
+  @param[in]  oper_class:   The operating class to be set.
+  @param[in]  oper_channel: The operating channel to be set.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+
+  @note  The operating class and operating channel can determine the center frequency,
+         The following are the corresponding values.
+     --------------------------------------------------------------------------------------------
+     |  oper_class  |       oper_channel        |          frequency          | channel spacing |
+     |-------------------------------------------------------------------------------------------
+     |      81      |           1-13            |   2407 + 5 * oper_channel   |      25MHz      |
+     |      82      |            14             |   2414 + 5 * oper_channel   |      25MHz      |
+     |      115     |        36,40,44,48        |   5000 + 5 * oper_channel   |      20MHz      |
+     |      116     |           36,44           |   5000 + 5 * oper_channel   |      40MHz      |
+     |      117     |           40,48           |   5000 + 5 * oper_channel   |      40MHz      |
+     |      124     |     149,153,157,161       |   5000 + 5 * oper_channel   |      20MHz      |
+     |      125     |    149,153,157,161,165    |   5000 + 5 * oper_channel   |      20MHz      |
+     |      126     |          149,157          |   5000 + 5 * oper_channel   |      40MHz      |
+     |      127     |          153,161          |   5000 + 5 * oper_channel   |      40MHz      |
+     --------------------------------------------------------------------------------------------
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_oper_class_channel_set(int oper_class, int oper_channel);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the operating class and operating channel in P2P mode.
+
+  @param[out]  p_oper_class:   The currently-used operating class in p2p mode.
+  @param[out]  p_oper_channel: The currently-used operating channel in p2p mode.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_oper_class_channel_get(int *p_oper_class, int *p_oper_channel);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function sets the suffix of ssid.
+
+  @param[in]  ssid_postfix: The suffix of ssid to be set.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_ssid_postfix_set(const char *ssid_postfix);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets the suffix of ssid.
+
+  @param[out]  ssid_postfix_buf: The buffer for storing the current suffix of ssid.
+  @param[in]   buf_len: The length of the buffer.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_ssid_postfix_get(char *ssid_postfix_buf, int buf_len);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function registers the P2P enable status callback function.
+
+  @param[in]  cb: P2P enable status callback function.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_set_enable_status_ind_cb(ql_wifi_p2p_enable_status_ind_cb_f cb);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function enables P2P function.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_enable(void);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function disables P2P function.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_disable(void);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function registers the found p2p device callback function.
+
+  @param[in]  cb: The found p2p device callback function.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_set_dev_found_ind_cb(ql_wifi_p2p_dev_found_ind_cb_f cb);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function start finding P2P device.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_dev_find_start(void);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function stop finding P2P device.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_dev_find_stop(void);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function gets P2P mode status information.
+
+  @param[out]  p_status: The current P2P mode status information.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_get_status(ql_wifi_p2p_status_t *p_status);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function registers the P2P status callback function.
+
+  @param[in]  cb: The P2P status callback function.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_set_status_ind_cb(ql_wifi_p2p_status_ind_cb_f cb);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function registers peer p2p device requesting connection callback function.
+
+  @param[in]  cb: Peer p2p device requesting connection callback function.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_set_peer_dev_req_ind_cb(ql_wifi_p2p_peer_dev_req_ind_cb_f cb);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function establishes a P2P connection.
+
+  @param[in]  macaddr: The MAC address of peer P2P device.
+  @param[in]  wps_method: key words: "pbc", "pin" and pin_code, The pin_code is a string that 
+                          dynamically generated random from peer display.
+  @param[in]  go_intent: Degree of desire to be GO, range: 0-15.
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  QL_ERR_INVALID_ARG: Failed execution due to illegal parameter.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_connect(const char *macaddr, const char *method, int go_intent);
+
+/*-----------------------------------------------------------------------------------------------*/
+/**
+  @brief  This function disconnects a P2P connection
+
+  @retval  QL_ERR_OK: Successful execution.
+  @retval  QL_ERR_NOT_INIT: Failed execution. The Wi-Fi service is not initialized.
+  @retval  QL_ERR_SERVICE_ABORT: Failed execution due to Wi-Fi service error.
+  @retval  Other value: Failed execution. See ql_type.h for the error code.
+  */
+/*-----------------------------------------------------------------------------------------------*/
+int ql_wifi_p2p_disconnect(void);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+