objc

wifi.h
Go to the documentation of this file.
1 
26 #pragma once
27 #include <stdbool.h>
28 #include <stdint.h>
29 
31 // GLOBALS
32 
33 #define HW_WIFI_SSID_MAX_LENGTH 32
34 
36 // TYPES
37 
45 typedef enum {
46  hw_wifi_auth_open = (1 << 0),
47  hw_wifi_auth_wep = (1 << 1),
48  hw_wifi_auth_wpa_tkip = (1 << 2),
49  hw_wifi_auth_wpa_aes = (1 << 3),
51  hw_wifi_auth_wpa2_aes = (1 << 5),
52  hw_wifi_auth_wpa3_sae = (1 << 6),
55 
60 typedef enum {
61  hw_wifi_event_scan = (1 << 0),
62  hw_wifi_event_joining = (1 << 1),
66  (1 << 4),
68  hw_wifi_event_error = (1 << 6)
70 
86 typedef struct {
87  char ssid[HW_WIFI_SSID_MAX_LENGTH +
88  1];
89  uint8_t bssid[6];
91  uint8_t channel;
92  int16_t rssi;
94 
95 // Opaque Wi‑Fi handle type
96 typedef struct hw_wifi_t hw_wifi_t;
97 
110 typedef void (*hw_wifi_callback_t)(hw_wifi_t *wifi, hw_wifi_event_t event,
111  const hw_wifi_network_t *network,
112  void *user_data);
113 
115 // LIFECYCLE
116 
131 hw_wifi_t *hw_wifi_init(const char *country_code, hw_wifi_callback_t callback,
132  void *user_data);
133 
140 bool hw_wifi_valid(hw_wifi_t *wifi);
141 
150 void hw_wifi_finalize(hw_wifi_t *wifi);
151 
153 // METHODS
154 
169 bool hw_wifi_scan(hw_wifi_t *wifi);
170 
195 bool hw_wifi_connect(hw_wifi_t *wifi, const hw_wifi_network_t *network,
196  const char *password);
197 
209 bool hw_wifi_disconnect(hw_wifi_t *wifi);
void hw_wifi_finalize(hw_wifi_t *wifi)
Finalize and release any resources.
Open (no authentication)
Definition: wifi.h:46
Joining a network.
Definition: wifi.h:62
WPA3‑SAE.
Definition: wifi.h:52
WPA‑PSK CCMP/AES.
Definition: wifi.h:49
WEP (legacy)
Definition: wifi.h:47
WPA2‑PSK CCMP/AES.
Definition: wifi.h:51
Network not found.
Definition: wifi.h:67
hw_wifi_t * hw_wifi_init(const char *country_code, hw_wifi_callback_t callback, void *user_data)
Initialize Wi-Fi management.
hw_wifi_auth_t
Authentication and cipher modes for Wi‑Fi networks.
Definition: wifi.h:45
uint8_t channel
Primary channel number.
Definition: wifi.h:91
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:48
bool hw_wifi_valid(hw_wifi_t *wifi)
Determine if the Wi-Fi handle is initialized and usable.
Bad authentication during connection attempt.
Definition: wifi.h:65
Disconnected.
Definition: wifi.h:64
802.1X Enterprise (EAP)
Definition: wifi.h:53
Describes a discovered Wi‑Fi network (scan result).
Definition: wifi.h:86
hw_wifi_auth_t auth
Authentication/cipher info (see hw_wifi_auth_t)
Definition: wifi.h:90
WPA2‑PSK TKIP.
Definition: wifi.h:50
Other error occurred.
Definition: wifi.h:68
Successfully connected.
Definition: wifi.h:63
bool hw_wifi_disconnect(hw_wifi_t *wifi)
Disconnect from a previously-connected Wi‑Fi network.
hw_wifi_event_t
Callback events.
Definition: wifi.h:60
int16_t rssi
Received signal strength (dBm)
Definition: wifi.h:92
Scan result available.
Definition: wifi.h:61
bool hw_wifi_scan(hw_wifi_t *wifi)
Begin an asynchronous scan for nearby Wi‑Fi networks.
void(* hw_wifi_callback_t)(hw_wifi_t *wifi, hw_wifi_event_t event, const hw_wifi_network_t *network, void *user_data)
Callback invoked for Wi‑Fi operation notifications.
Definition: wifi.h:110