WS63 SDK 文档 7021f4f@fbb_ws63
ws63 和 ws63e 解决方案的 SDK 文档
载入中...
搜索中...
未找到
soc_wifi_service_api.c 文件参考
#include "soc_osal.h"
#include "soc_wifi_api.h"
#include "service_wifi_api.h"
#include "wifi_device.h"
#include "wifi_p2p.h"
#include "soc_wifi_p2p_api.h"
#include "securec.h"
#include "wifi_hotspot.h"
#include "wifi_alg.h"
#include "service_event.h"
#include "lwip/netifapi.h"
#include "lwip/dns.h"
#include "mac_addr.h"
#include "tsensor.h"
soc_wifi_service_api.c 的引用(Include)关系图:

宏定义

#define OAL_STATIC
 
#define OSAL_STATIC   static
 
#define service_is_freqs(freqs)
 
#define service_char_to_upper(ch)   (((ch) >= 'a' && (ch) <= 'z') ? ((ch) - 0x20) : (ch))
 
#define service_check_hex(ch)
 
#define WIFI_ACTIVE_VAP_MAX_NUM   2
 
#define WIFI_MAC_CONTRY_CODE_LEN   3
 
#define SERVICE_P2P_MAX_FIND_TIME   120
 
#define SERVICE_P2P_MIN_FIND_TIME   5
 
#define SERVICE_P2P_MAX_FIND_NUM   32
 
#define SERVICE_P2P_MAX_GC_NUM   4
 
#define SERVICE_P2P_DEFAULT_INTENT   7
 
#define SERVICE_P2P_MAX_INTENT   15
 
#define SERVICE_P2P_MAX_LISTEN_TIME   65535
 
#define SERVICE_BASE_FREQS   2412
 
#define SERVICE_MIN_PRIO   10
 
#define SERVICE_MIN_STACK   4096
 
#define SERVICE_FREQS_INTERVAL   5
 
#define SERVICE_LINKLOSS_PROBEREQ_RATIO_MIN   1
 
#define SERVICE_LINKLOSS_PROBEREQ_RATIO_MAX   10
 
#define SERVICE_LINKLOSS_THRESHOLD_MIN   50
 
#define SERVICE_LINKLOSS_THRESHOLD_MAX   500
 
#define WIFI_SENDPKT_MIN_LEN   10
 
#define WIFI_SENDPKT_MAX_LEN   1400
 
#define SERVICE_MAX_PERIOD_INTERVAL   65535
 
#define WIFI_CONN_SCAN_INTERVAL   5000
 
#define WIFI_USER_INPUT_KEY_LEN   (WIFI_MAX_KEY_LEN + 2) /* 关联时临时保存用户输入的密码信息,长度 = 64 + \0 + 2个双引号 */
 
#define service_is_freqs(freqs)
 
#define NL80211_IFTYPE_AP   3
 

函数

int32_t wifi_is_need_psk (wifi_security_enum security_type)
 
errcode_t wifi_register_event_cb (const wifi_event_stru *event)
 APP注册的事件处理接口。
 
errcode_t wifi_unregister_event_cb (const wifi_event_stru *event)
 APP去注册的事件处理接口。
 
errcode_t wifi_init (void)
 Wifi初始化。
 
errcode_t wifi_deinit (void)
 Wifi去初始化。
 
int32_t wifi_is_wifi_inited (void)
 获取WiFi初始化状态。
 
wifi_return_code get_ifname (wifi_device_type_enum type, unsigned int *name_bufsize, char *ifname)
 
errcode_t wifi_sta_enable (void)
 开启STA。
 
errcode_t wifi_sta_disable (void)
 关闭STA。
 
int32_t wifi_is_sta_enabled (void)
 获取sta使能状态。
 
wifi_dev_twifi_get_dev (wifi_iftype_t iftype)
 获取dev使能状态。
 
errcode_t wifi_sta_set_protocol_mode (protocol_mode_enum mode)
 设置Sta的协议模式。
 
protocol_mode_enum wifi_sta_get_protocol_mode (void)
 获取Sta的协议模式。
 
errcode_t wifi_sta_set_scan_policy (wifi_if_type_enum iftype, wifi_scan_strategy_stru *scan_strategy)
 station设置扫描参数。
 
errcode_t wifi_sta_scan_stop (void)
 强制停止Sta全信道扫描。
 
errcode_t wifi_ap_scan (void)
 
errcode_t wifi_raw_scan (wifi_scan_params_stru *scan_param, wifi_scan_no_save_cb cb)
 station执行带特定参数的原始扫描(不经过wpa,回调由用户指定)。
 
errcode_t wifi_sta_scan (void)
 station进行全信道基础扫描。
 
errcode_t wifi_sta_scan_advance (const wifi_scan_params_stru *scan_param)
 station执行带特定参数的扫描。
 
errcode_t wifi_sta_get_scan_info (wifi_scan_info_stru *result, uint32_t *size)
 获取station扫描结果。
 
errcode_t wifi_sta_scan_result_clear (void)
 清空station扫描结果。
 
errcode_t wifi_set_channel (wifi_if_type_enum iftype, int32_t channel)
 切换信道。
 
errcode_t wifi_get_channel (wifi_if_type_enum iftype, int32_t *channel)
 获取信道。
 
errcode_t wifi_sta_connect (const wifi_sta_config_stru *config)
 station进行连接网络。
 
errcode_t wifi_sta_disconnect (void)
 station断开相连的网络。
 
errcode_t wifi_sta_get_ap_info (wifi_linked_info_stru *result)
 获取station连接的网络状态。
 
errcode_t wifi_sta_set_reconnect_policy (int32_t enable, uint32_t seconds, uint32_t period, uint32_t max_try_count)
 station设置重新连接网络机制。
 
errcode_t wifi_sta_set_pmf_mode (wifi_pmf_option_enum pmf)
 配置station的pmf。
 
wifi_pmf_option_enum wifi_sta_get_pmf_mode (void)
 获取station的pmf设置。
 
int16_t wifi_sta_get_connect_status_code (void)
 查询Authentication与Association帧status code。
 
errcode_t wifi_set_mgmt_frame_rx_cb (wifi_rx_mgmt_cb data_cb, uint8_t mode)
 注册管理帧收包回调函数。
 
errcode_t wifi_set_promis_mode (wifi_if_type_enum iftype, int32_t enable, const wifi_ptype_filter_stru *filter)
 设置混杂模式。
 
errcode_t wifi_set_promis_rx_pkt_cb (wifi_promis_cb data_cb)
 注册混杂模式的收包回调函数。
 
errcode_t wifi_sta_fast_connect (const wifi_fast_connect_stru *fast_request)
 station进行快速连接网络。
 
errcode_t wifi_send_custom_pkt (const wifi_if_type_enum iftype, const uint8_t *data, uint32_t len)
 发送用户定制报文,报文须按照802.11协议格式封装。
 
errcode_t wifi_set_softap_config_advance (const softap_config_advance_stru *config)
 开启SoftAP。
 
errcode_t wifi_softap_enable (const softap_config_stru *config)
 开启SoftAP。
 
errcode_t wifi_softap_disable (void)
 关闭SoftAP。
 
errcode_t wifi_softap_get_sta_list (wifi_sta_info_stru *result, uint32_t *size)
 softap获取已连接的station的信息。
 
int32_t wifi_is_softap_enabled (void)
 获取hotspot使能状态。
 
errcode_t wifi_get_softap_config (softap_config_stru *result)
 获取SoftAP配置。
 
errcode_t wifi_get_softap_config_advance (softap_config_advance_stru *result)
 获取SoftAP扩展配置。
 
errcode_t wifi_softap_deauth_sta (const uint8_t *mac, int32_t mac_len)
 softap指定断开连接的station网络。
 
errcode_t wifi_set_app_ie (wifi_if_type_enum iftype, ie_index_enmu ie_index, uint8_t frame_type_bitmap, const uint8_t *ie, uint16_t ie_len)
 在管理帧中添加用户IE字段。
 
errcode_t wifi_del_app_ie (wifi_if_type_enum iftype, ie_index_enmu ie_index, uint8_t frame_type_bitmap)
 在管理帧中删除用户IE字段。
 
errcode_t wifi_set_country_code (const int8_t *country_code, uint8_t len)
 设置国家码。
 
errcode_t wifi_get_country_code (int8_t *country_code, uint8_t *len)
 获取国家码。
 
errcode_t wifi_set_pkt_retry_policy (uint8_t type, uint8_t limit)
 设置数据帧和管理帧的最大软件重传次数。
 
errcode_t wifi_reset_mac_phy (void)
 复位MAC和PHY接口,解决MAC,PHY挂死问题。
 
errcode_t wifi_sta_set_pm (uint8_t ps_switch)
 设置低功耗模式。
 
errcode_t wifi_sta_set_pm_param (uint8_t pm_timeout, uint8_t pm_timer_cnt, uint8_t bcn_timeout, uint8_t mcast_timeout, uint16_t sleep_time)
 
errcode_t wifi_set_psd_mode (ext_psd_option_param *psd_option)
 设置PSD模式。
 
errcode_t wifi_set_psd_cb (wifi_psd_cb data_cb)
 设置PSD回调接口。
 
errcode_t wifi_set_rts_mode (uint8_t mode, uint16_t pkt_length)
 设置RTS模式。
 
errcode_t wifi_set_cca_threshold (uint8_t mode, int8_t threshold)
 设置CCA门限。
 
errcode_t wifi_set_tpc_mode (uint32_t tpc_value)
 设置TPC模式。
 
errcode_t wifi_set_fixed_tx_rate (unsigned char auto_rate, alg_param_stru *alg_param)
 设置TX方向发送报文的速率模式。
 
errcode_t wifi_get_negotiated_rate (const uint8_t *mac, int32_t mac_len, uint32_t *tx_best_rate)
 获取用户当前的最优速率。
 
errcode_t wifi_set_linkloss_config (linkloss_paras_stru *linkloss_paras)
 设置Linkloss的参数。
 
errcode_t wifi_set_base_mac_addr (const int8_t *mac_addr, uint8_t mac_len)
 设置基础mac地址。
 
errcode_t wifi_get_base_mac_addr (int8_t *mac_addr, uint8_t mac_len)
 获取基础mac地址。
 
errcode_t wifi_softap_set_mac_addr (const int8_t *mac_addr, uint8_t mac_len)
 设置softap mac地址。
 
errcode_t wifi_softap_get_mac_addr (int8_t *mac_addr, uint8_t mac_len)
 获取softap mac地址。
 
errcode_t wifi_set_mac_derivation_ptr (wifi_mac_derivation_ptr ptr)
 设置mac派生策略。
 
errcode_t wifi_set_low_current_boot_mode (uint8_t flag)
 设置低启动电流模式。
 
errcode_t wifi_brctl_setbr (const char *oper)
 
errcode_t wifi_brctl_setif (const char *oper, const char *if_name)
 
errcode_t wifi_brctl_show (const char *oper)
 
errcode_t wifi_set_tx_pwr_offset (const int8_t *ifname, int16_t offset)
 

变量

softap_config_stru g_softap_config = {0}
 
softap_config_advance_stru g_softap_advance_config = {100, 2, 86400, 1, 1, WIFI_MODE_11B_G_N_AX}
 
char g_sta_ifname [WIFI_IFNAME_MAX_SIZE+1]
 
char g_hotspot_ifname [WIFI_IFNAME_MAX_SIZE+1]
 
char g_p2p_ifname [WIFI_IFNAME_MAX_SIZE+1]
 
int g_drop_disconnect = 0
 
int g_sta_enble_flag = 0
 
int g_softap_enble_flag = 0
 
int g_p2p_enable_flag = 0
 
int g_softap_hidden = 1
 
dl_list g_api_cb_node
 
int g_api_cb_init = 0
 
int g_p2p_isgo = 0
 

宏定义说明

◆ NL80211_IFTYPE_AP

#define NL80211_IFTYPE_AP   3

◆ OAL_STATIC

#define OAL_STATIC

◆ OSAL_STATIC

#define OSAL_STATIC   static

◆ SERVICE_BASE_FREQS

#define SERVICE_BASE_FREQS   2412

◆ service_char_to_upper

#define service_char_to_upper (   ch)    (((ch) >= 'a' && (ch) <= 'z') ? ((ch) - 0x20) : (ch))

◆ service_check_hex

#define service_check_hex (   ch)
值:
((((ch) >= '0') && ((ch) <= '9')) || (((ch) >= 'A') && ((ch) <= 'F')) || \
(((ch) >= 'a') && ((ch) <= 'f')) ? 1 : 0)
#define ch(x, y, z)
Definition sha256.c:18

◆ SERVICE_FREQS_INTERVAL

#define SERVICE_FREQS_INTERVAL   5

◆ service_is_freqs [1/2]

#define service_is_freqs (   freqs)
值:
(((freqs) == 2412 || (freqs) == 2417 || (freqs) == 2422 || (freqs) == 2427 || \
(freqs) == 2432 || (freqs) == 2437 || (freqs) == 2442 || (freqs) == 2447 || \
(freqs) == 2452 || (freqs) == 2457 || (freqs) == 2462 || (freqs) == 2467 || \
(freqs) == 2472 || (freqs) == 2484) ? (freqs) : 0)

◆ service_is_freqs [2/2]

#define service_is_freqs (   freqs)
值:
(((freqs) == 2412 || (freqs) == 2417 || (freqs) == 2422 || (freqs) == 2427 || \
(freqs) == 2432 || (freqs) == 2437 || (freqs) == 2442 || (freqs) == 2447 || \
(freqs) == 2452 || (freqs) == 2457 || (freqs) == 2462 || (freqs) == 2467 || \
(freqs) == 2472 || (freqs) == 2484) ? (freqs) : 0)

◆ SERVICE_LINKLOSS_PROBEREQ_RATIO_MAX

#define SERVICE_LINKLOSS_PROBEREQ_RATIO_MAX   10

◆ SERVICE_LINKLOSS_PROBEREQ_RATIO_MIN

#define SERVICE_LINKLOSS_PROBEREQ_RATIO_MIN   1

◆ SERVICE_LINKLOSS_THRESHOLD_MAX

#define SERVICE_LINKLOSS_THRESHOLD_MAX   500

◆ SERVICE_LINKLOSS_THRESHOLD_MIN

#define SERVICE_LINKLOSS_THRESHOLD_MIN   50

◆ SERVICE_MAX_PERIOD_INTERVAL

#define SERVICE_MAX_PERIOD_INTERVAL   65535

◆ SERVICE_MIN_PRIO

#define SERVICE_MIN_PRIO   10

◆ SERVICE_MIN_STACK

#define SERVICE_MIN_STACK   4096

◆ SERVICE_P2P_DEFAULT_INTENT

#define SERVICE_P2P_DEFAULT_INTENT   7

◆ SERVICE_P2P_MAX_FIND_NUM

#define SERVICE_P2P_MAX_FIND_NUM   32

◆ SERVICE_P2P_MAX_FIND_TIME

#define SERVICE_P2P_MAX_FIND_TIME   120

◆ SERVICE_P2P_MAX_GC_NUM

#define SERVICE_P2P_MAX_GC_NUM   4

◆ SERVICE_P2P_MAX_INTENT

#define SERVICE_P2P_MAX_INTENT   15

◆ SERVICE_P2P_MAX_LISTEN_TIME

#define SERVICE_P2P_MAX_LISTEN_TIME   65535

◆ SERVICE_P2P_MIN_FIND_TIME

#define SERVICE_P2P_MIN_FIND_TIME   5

◆ WIFI_ACTIVE_VAP_MAX_NUM

#define WIFI_ACTIVE_VAP_MAX_NUM   2

◆ WIFI_CONN_SCAN_INTERVAL

#define WIFI_CONN_SCAN_INTERVAL   5000

◆ WIFI_MAC_CONTRY_CODE_LEN

#define WIFI_MAC_CONTRY_CODE_LEN   3

◆ WIFI_SENDPKT_MAX_LEN

#define WIFI_SENDPKT_MAX_LEN   1400

◆ WIFI_SENDPKT_MIN_LEN

#define WIFI_SENDPKT_MIN_LEN   10

◆ WIFI_USER_INPUT_KEY_LEN

#define WIFI_USER_INPUT_KEY_LEN   (WIFI_MAX_KEY_LEN + 2) /* 关联时临时保存用户输入的密码信息,长度 = 64 + \0 + 2个双引号 */

函数说明

◆ get_ifname()

wifi_return_code get_ifname ( wifi_device_type_enum  type,
unsigned int *  name_bufsize,
char *  ifname 
)

◆ wifi_ap_scan()

errcode_t wifi_ap_scan ( void  )

◆ wifi_brctl_setbr()

errcode_t wifi_brctl_setbr ( const char *  oper)

◆ wifi_brctl_setif()

errcode_t wifi_brctl_setif ( const char *  oper,
const char *  if_name 
)

◆ wifi_brctl_show()

errcode_t wifi_brctl_show ( const char *  oper)

◆ wifi_is_need_psk()

int32_t wifi_is_need_psk ( wifi_security_enum  security_type)

◆ wifi_set_tx_pwr_offset()

errcode_t wifi_set_tx_pwr_offset ( const int8_t *  ifname,
int16_t  offset 
)

◆ wifi_sta_set_pm_param()

errcode_t wifi_sta_set_pm_param ( uint8_t  pm_timeout,
uint8_t  pm_timer_cnt,
uint8_t  bcn_timeout,
uint8_t  mcast_timeout,
uint16_t  sleep_time 
)

变量说明

◆ g_api_cb_init

int g_api_cb_init = 0

◆ g_api_cb_node

dl_list g_api_cb_node

◆ g_drop_disconnect

int g_drop_disconnect = 0

◆ g_hotspot_ifname

char g_hotspot_ifname[WIFI_IFNAME_MAX_SIZE+1]

◆ g_p2p_enable_flag

int g_p2p_enable_flag = 0

◆ g_p2p_ifname

char g_p2p_ifname[WIFI_IFNAME_MAX_SIZE+1]

◆ g_p2p_isgo

int g_p2p_isgo = 0

◆ g_softap_advance_config

softap_config_advance_stru g_softap_advance_config = {100, 2, 86400, 1, 1, WIFI_MODE_11B_G_N_AX}

◆ g_softap_config

softap_config_stru g_softap_config = {0}

◆ g_softap_enble_flag

int g_softap_enble_flag = 0

◆ g_softap_hidden

int g_softap_hidden = 1

◆ g_sta_enble_flag

int g_sta_enble_flag = 0

◆ g_sta_ifname

char g_sta_ifname[WIFI_IFNAME_MAX_SIZE+1]