物联网操作系统AliOS Things 3.3
netmgr.h
浏览该文件的文档.
1 /*
2  * Copyright (C) 2019-2020 Alibaba Group Holding Limited
3  */
4 
5 #ifndef NETMGR_H
6 #define NETMGR_H
7 #ifdef CONFIG_LWIP_V200
8 #include <network/network.h>
9 #else
10 #include <sys/socket.h>
11 #endif
12 #include <stdbool.h>
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
18 #include <uservice/uservice.h>
19 
26 typedef enum {
31 
33 typedef enum {
37 
38 #define IPADDR_STR_LEN 16
40 typedef struct netmgr_ifconfig_info {
41  bool dhcp_en;
46  char mac[6];
47  int rssi;
49 
50 #define NETMGR_SSID_MAX_LEN (32)
51 #define NETMGR_PWD_MAX_LEN (64)
52 #ifdef ETH_ALEN
53 #define NETMGR_BSSID_MAX_LEN (ETH_ALEN)
54 #else
55 #define NETMGR_BSSID_MAX_LEN (6)
56 #endif
57 
59 typedef enum {
63 
64 #define MAX_AP_CONFIG_NUM (3)
65 
67 typedef struct {
68  char ssid[NETMGR_SSID_MAX_LEN+1];
69  uint8_t pwd[NETMGR_PWD_MAX_LEN+1];
70  uint8_t bssid[NETMGR_BSSID_MAX_LEN];
71  int8_t ap_power;
72  uint8_t channel;
73  uint8_t sec_type;
76  char gbk_ssid[NETMGR_SSID_MAX_LEN+1];
78 
80 typedef struct {
81  int ap_num;
82  int used_ap;
85 
87 typedef enum {
94 
96 typedef enum {
105 
107 typedef struct netmgr_config {
108  union {
110  //netmgr_gprs_config_t gprs_config;
111  //netmgr_nbiot_config_t nbiot_config;
112  //netmgr_eth_config_t eth_config;
115 
117 typedef struct netmgr_del_config {
118  union {
122 
128  int timeout;
130 
132 typedef struct netmgr_connect_params {
133  union {
137 
138 #define NETMGR_WIFI_METHOD_MAX_LENGTH (32)
139 #define NETMGR_WIFI_STATUS_MAX_LENGTH (32)
140 #define NETMGR_WIFI_SSID_MAX_LENGTH (32)
141 #define NETMGR_WIFI_PASSWORD_MAX_LENGTH (64)
142 
144 typedef struct {
146  int quantity;
150  uint8_t reason_code;
152 
154 typedef struct {
156  union {
157  int status;
159  void *trace;
160  } data;
161 } netmgr_msg_t;
162 
164 typedef void (*netmgr_msg_cb_t)(netmgr_msg_t* msg);
165 
166 typedef int netmgr_hdl_t;
167 
169 typedef struct {
170  char ssid[NETMGR_SSID_MAX_LEN+1];
171  int8_t ap_power;
172  uint8_t bssid[NETMGR_BSSID_MAX_LEN];
173  uint8_t channel;
174  uint8_t sec_type;
176 
184 int netmgr_service_init(utask_t *task);
185 
190 
198 int netmgr_add_dev(const char* name);
199 
207 netmgr_hdl_t netmgr_get_dev(const char* name);
208 
218 
228 
236 
246 
256 
265 
275 
284 
293 
303 
313 
323 
324 #ifdef AOS_NETWORK_WITH_WIFI
332 void* netmgr_wifi_get_netif(netmgr_hdl_t hdl);
333 
344 int netmgr_wifi_scan_result(netmgr_hdl_t hdl, netmgr_wifi_ap_list_t* ap_info, int num, netmgr_wifi_scan_type type);
345 
351 void netmgr_wifi_start_monitor(netmgr_hdl_t hdl);
352 
358 void netmgr_wifi_stop_monitor(netmgr_hdl_t hdl);
359 
365 void netmgr_wifi_start_mgnt_monitor(netmgr_hdl_t hdl);
366 
372 void netmgr_wifi_stop_mgnt_monitor(netmgr_hdl_t hdl);
373 
380 void netmgr_wifi_register_mgnt_monitor_cb(netmgr_hdl_t hdl, monitor_data_cb_t fn);
381 
391 int netmgr_wifi_send_80211_raw_frame(netmgr_hdl_t hdl, uint8_t *buf, int len);
392 #endif
393 
398 #ifdef __cplusplus
399 }
400 #endif
401 
402 #endif
403 
netmgr_ssid_format_e
ssid string format
Definition: netmgr.h:59
int netmgr_service_init(utask_t *task)
net manager init.
#define IPADDR_STR_LEN
Definition: netmgr.h:38
#define NETMGR_WIFI_PASSWORD_MAX_LENGTH
Definition: netmgr.h:141
eth_mac_duplex_e
ethernet duplex type
Definition: netmgr.h:33
int netmgr_add_dev(const char *name)
add netmgr dev
struct netmgr_ifconfig_info netmgr_ifconfig_info_t
this struct defines netmgr ifconfig info
int netmgr_connect(netmgr_hdl_t hdl, netmgr_connect_params_t *params)
netmgr connect network
void netmgr_service_deinit()
net manager deinit
netmgr_hdl_t netmgr_get_dev(const char *name)
get netmgr handler
#define NETMGR_WIFI_METHOD_MAX_LENGTH
Definition: netmgr.h:138
int netmgr_hdl_t
Definition: netmgr.h:166
struct netmgr_wifi_ap_config_t netmgr_wifi_config_t
int netmgr_save_config(netmgr_hdl_t hdl)
netmgr save config
void netmgr_set_auto_reconnect(netmgr_hdl_t hdl, bool enable)
set auto reconnect flag
netmgr_msgid_t
netmgr message type
Definition: netmgr.h:96
void(* netmgr_msg_cb_t)(netmgr_msg_t *msg)
this struct defines netmgr message callback function
Definition: netmgr.h:164
#define NETMGR_PWD_MAX_LEN
Definition: netmgr.h:51
int netmgr_disconnect(netmgr_hdl_t hdl)
netmgr disconnect network
int netmgr_get_state(netmgr_hdl_t hdl)
get state of hdl
int netmgr_set_connect_params(netmgr_hdl_t hdl, netmgr_connect_params_t *params)
netmgr set connect params
#define MAX_AP_CONFIG_NUM
Definition: netmgr.h:64
int netmgr_set_ifconfig(netmgr_hdl_t hdl, netmgr_ifconfig_info_t *info)
set if config information
int netmgr_get_ifconfig(netmgr_hdl_t hdl, netmgr_ifconfig_info_t *info)
get if config information
int netmgr_del_msg_cb(netmgr_hdl_t hdl, netmgr_msg_cb_t cb)
netmgr delete message callback
int netmgr_get_config(netmgr_hdl_t hdl, netmgr_config_t *config)
get config information
int netmgr_del_config(netmgr_hdl_t, netmgr_del_config_t *config)
delete config information
struct netmgr_connect_params netmgr_connect_params_t
netmgr connect params
eth_mac_speed_e
ethernet speed type
Definition: netmgr.h:26
struct netmgr_wifi_conenct_params netmgr_wifi_connect_params_t
netmgr wifi connect params
#define NETMGR_BSSID_MAX_LEN
Definition: netmgr.h:55
#define NETMGR_WIFI_SSID_MAX_LENGTH
Definition: netmgr.h:140
netmgr_type_t
wireless network type
Definition: netmgr.h:87
int netmgr_set_msg_cb(netmgr_hdl_t hdl, netmgr_msg_cb_t cb)
netmgr set message callback
#define NETMGR_WIFI_STATUS_MAX_LENGTH
Definition: netmgr.h:139
struct netmgr_del_config netmgr_del_config_t
netmgr delete config
struct netmgr_config netmgr_config_t
netmgr config struct
#define NETMGR_SSID_MAX_LEN
Definition: netmgr.h:50
@ NETMGR_SSID_FORMAT_GBK
Definition: netmgr.h:61
@ NETMGR_SSID_FORMAT_UTF8
Definition: netmgr.h:60
@ ETH_MAC_DUPLEX_HALF
Definition: netmgr.h:34
@ ETH_MAC_DUPLEX_FULL
Definition: netmgr.h:35
@ NETMGR_MSGID_WIFI_STATUS_FROM_IMPL
Definition: netmgr.h:99
@ NETMGR_MSGID_MIN
Definition: netmgr.h:97
@ NETMGR_MSGID_ETH_STATUS_FROM_IMPL
Definition: netmgr.h:102
@ NETMGR_MSGID_WIFI_TRACE_FROM_IMPL
Definition: netmgr.h:100
@ NETMGR_MSGID_WIFI_STATUS
Definition: netmgr.h:98
@ NETMGR_MSGID_MAX
Definition: netmgr.h:103
@ NETMGR_MSGID_NETWORK_STATUS
Definition: netmgr.h:101
@ ETH_MAC_SPEED_1000M
Definition: netmgr.h:29
@ ETH_MAC_SPEED_100M
Definition: netmgr.h:28
@ ETH_MAC_SPEED_10M
Definition: netmgr.h:27
@ NETMGR_TYPE_WIFI
Definition: netmgr.h:88
@ NETMGR_TYPE_MAX
Definition: netmgr.h:92
@ NETMGR_TYPE_GPRS
Definition: netmgr.h:89
@ NETMGR_TYPE_NBIOT
Definition: netmgr.h:90
@ NETMGR_TYPE_ETH
Definition: netmgr.h:91
netmgr config struct
Definition: netmgr.h:107
union netmgr_config::@0 config
netmgr_wifi_config_t wifi_config
Definition: netmgr.h:109
netmgr connect params
Definition: netmgr.h:132
netmgr_wifi_connect_params_t wifi_params
Definition: netmgr.h:134
union netmgr_connect_params::@2 params
netmgr delete config
Definition: netmgr.h:117
union netmgr_del_config::@1 config
char ssid[NETMGR_SSID_MAX_LEN+1]
Definition: netmgr.h:119
this struct defines netmgr ifconfig info
Definition: netmgr.h:40
char mask[IPADDR_STR_LEN]
Definition: netmgr.h:43
char gw[IPADDR_STR_LEN]
Definition: netmgr.h:44
char dns_server[IPADDR_STR_LEN]
Definition: netmgr.h:45
char ip_addr[IPADDR_STR_LEN]
Definition: netmgr.h:42
this struct defines netmgr message
Definition: netmgr.h:154
void * trace
Definition: netmgr.h:159
int status
Definition: netmgr.h:157
netmgr_msgid_t id
Definition: netmgr.h:155
void * network_status_change
Definition: netmgr.h:158
this struct defines wifi ap config
Definition: netmgr.h:80
this struct defines wifi ap info
Definition: netmgr.h:67
uint8_t sec_type
Definition: netmgr.h:73
netmgr_ssid_format_e ssid_format
Definition: netmgr.h:75
this struct defines netmgr message callback function
Definition: netmgr.h:169
netmgr wifi connect params
Definition: netmgr.h:124
char pwd[NETMGR_PWD_MAX_LEN+1]
Definition: netmgr.h:126
char ssid[NETMGR_SSID_MAX_LEN+1]
Definition: netmgr.h:125
char bssid[NETMGR_BSSID_MAX_LEN]
Definition: netmgr.h:127
this struct defines netmgr wifi status change info
Definition: netmgr.h:144