picofuse

wifi.h
Go to the documentation of this file.
1 
35 #pragma once
36 #include <stdbool.h>
37 #include <stdint.h>
38 
40 // CONSTANTS
41 
46 #ifndef HW_WIFI_SSID_MAX_LENGTH
47 #define HW_WIFI_SSID_MAX_LENGTH 32
48 #endif
49 
51 // TYPES
52 
60 typedef enum {
61  hw_wifi_auth_open = (1 << 0),
62  hw_wifi_auth_wep = (1 << 1),
63  hw_wifi_auth_wpa_tkip = (1 << 2),
64  hw_wifi_auth_wpa_aes = (1 << 3),
66  hw_wifi_auth_wpa2_aes = (1 << 5),
67  hw_wifi_auth_wpa3_sae = (1 << 6),
70 
75 typedef enum {
76  hw_wifi_event_scan = (1 << 0),
77  hw_wifi_event_joining = (1 << 1),
80  hw_wifi_event_badauth = (1 << 4),
81  hw_wifi_event_notfound = (1 << 5),
83  hw_wifi_event_error = (1 << 6),
84  hw_wifi_event_status = (1 << 7),
92 
108 typedef struct {
109  char ssid[HW_WIFI_SSID_MAX_LENGTH +
110  1];
111  uint8_t bssid[6];
113  uint8_t channel;
114  int16_t rssi;
116 
122 typedef struct hw_wifi_t hw_wifi_t;
123 
138 typedef void (*hw_wifi_callback_t)(hw_wifi_t *wifi, hw_wifi_event_t event,
139  const hw_wifi_network_t *network,
140  void *userdata);
141 
143 // LIFECYCLE
144 
159 hw_wifi_t *hw_wifi_init_client(const char *country_code,
160  hw_wifi_callback_t callback, void *userdata);
161 
191 hw_wifi_t *hw_wifi_init_accesspoint(const char *country_code,
192  const char *ssid, const char *password,
193  hw_wifi_auth_t auth);
194 
211 hw_wifi_t *hw_wifi_init_device(const char *device, hw_wifi_callback_t callback,
212  void *userdata);
213 
227 void hw_wifi_deinit(hw_wifi_t *wifi);
228 
231 // METHODS
233 
254 bool hw_wifi_scan(hw_wifi_t *wifi);
255 
279 bool hw_wifi_connect(hw_wifi_t *wifi, const hw_wifi_network_t *network,
280  const char *password);
281 
303 bool hw_wifi_disconnect(hw_wifi_t *wifi);
304 
Open (no authentication)
Definition: wifi.h:61
Joining a network.
Definition: wifi.h:77
WPA3-SAE.
Definition: wifi.h:67
WPA-PSK CCMP/AES.
Definition: wifi.h:64
WEP (legacy)
Definition: wifi.h:62
WPA2-PSK CCMP/AES.
Definition: wifi.h:66
Network not found.
Definition: wifi.h:82
hw_wifi_auth_t
Authentication and cipher modes for Wi-Fi networks.
Definition: wifi.h:60
uint8_t channel
Primary channel number.
Definition: wifi.h:113
struct hw_wifi_t hw_wifi_t
Opaque Wi-Fi handle.
Definition: wifi.h:122
bool hw_wifi_connect(hw_wifi_t *wifi, const hw_wifi_network_t *network, const char *password)
Begin an asynchronous connection to a Wi-Fi network.
WPA-PSK TKIP.
Definition: wifi.h:63
Bad authentication during connection attempt.
Definition: wifi.h:80
Disconnected.
Definition: wifi.h:79
802.1X Enterprise (EAP)
Definition: wifi.h:68
Describes a discovered Wi-Fi network (scan result).
Definition: wifi.h:108
hw_wifi_auth_t auth
Authentication/cipher info (see hw_wifi_auth_t)
Definition: wifi.h:112
WPA2-PSK TKIP.
Definition: wifi.h:65
Other error occurred.
Definition: wifi.h:83
hw_wifi_t * hw_wifi_init_client(const char *country_code, hw_wifi_callback_t callback, void *userdata)
Initialize Wi-Fi as a client.
Successfully connected.
Definition: wifi.h:78
bool hw_wifi_disconnect(hw_wifi_t *wifi)
Disconnect from a previously-connected Wi-Fi network.
void(* hw_wifi_callback_t)(hw_wifi_t *wifi, hw_wifi_event_t event, const hw_wifi_network_t *network, void *userdata)
Callback invoked for Wi-Fi operation notifications.
Definition: wifi.h:138
hw_wifi_t * hw_wifi_init_accesspoint(const char *country_code, const char *ssid, const char *password, hw_wifi_auth_t auth)
Initialize Wi-Fi as an access point.
hw_wifi_event_t
Wi-Fi callback event flags.
Definition: wifi.h:75
void hw_wifi_deinit(hw_wifi_t *wifi)
Deinitialize and release a Wi-Fi handle.
int16_t rssi
Received signal strength (dBm)
Definition: wifi.h:114
Scan result available.
Definition: wifi.h:76
Periodic status refresh while already connected (updated RSSI, channel, BSSID) - not a new connection...
Definition: wifi.h:84
hw_wifi_t * hw_wifi_init_device(const char *device, hw_wifi_callback_t callback, void *userdata)
Initialize Wi-Fi from a WPA supplicant device.
#define HW_WIFI_SSID_MAX_LENGTH
Maximum SSID length in bytes, excluding the NULL terminator.
Definition: wifi.h:47
bool hw_wifi_scan(hw_wifi_t *wifi)
Begin an asynchronous scan for nearby Wi-Fi networks.