roo_wifi
API Documentation for roo_wifi
Loading...
Searching...
No Matches
interface.h
Go to the documentation of this file.
1#pragma once
2
3#include <inttypes.h>
4
5#include <string>
6#include <vector>
7
8namespace roo_wifi {
9
10/// Wi-Fi authentication modes.
12 WIFI_AUTH_OPEN = 0, ///< Open.
13 WIFI_AUTH_WEP, ///< WEP.
14 WIFI_AUTH_WPA_PSK, ///< WPA-PSK.
15 WIFI_AUTH_WPA2_PSK, ///< WPA2-PSK.
16 WIFI_AUTH_WPA_WPA2_PSK, ///< WPA/WPA2-PSK.
17 WIFI_AUTH_WPA2_ENTERPRISE, ///< WPA2-Enterprise.
18 WIFI_AUTH_WPA3_PSK, ///< WPA3-PSK.
19 WIFI_AUTH_WPA2_WPA3_PSK, ///< WPA2/WPA3-PSK.
20 WIFI_AUTH_WAPI_PSK, ///< WAPI-PSK.
21 WIFI_AUTH_UNKNOWN ///< Unknown.
22};
23
24/// Wi-Fi cipher types.
40
41/// Wi-Fi connection status.
51
52/// Detailed network information reported by the interface.
54 uint8_t bssid[6]; ///< MAC address of AP.
55 uint8_t ssid[33]; ///< SSID of AP.
56 uint8_t primary; ///< Channel of AP.
57 int8_t rssi; ///< Signal strength of AP.
58 AuthMode authmode; ///< Auth mode of AP.
59 CipherType pairwise_cipher; ///< Pairwise cipher of AP.
60 CipherType group_cipher; ///< Group cipher of AP.
61 bool use_11b;
62 bool use_11g;
63 bool use_11n;
65
67};
68
69/// Abstraction for interacting with the hardware Wi-Fi interface.
70class Interface {
71 public:
72 /// Interface event types.
82
83 /// Listener for interface events.
85 public:
86 virtual ~EventListener() {}
87 virtual void onEvent(EventType type) {}
88 };
89
90 /// Registers an interface event listener.
91 virtual void addEventListener(EventListener* listener) = 0;
92 /// Unregisters an interface event listener.
93 virtual void removeEventListener(EventListener* listener) = 0;
94
95 /// Returns current AP information; false if not connected.
96 virtual bool getApInfo(NetworkDetails* info) const = 0;
97 /// Starts a scan.
98 virtual bool startScan() = 0;
99 /// Returns true if the last scan has completed.
100 virtual bool scanCompleted() const = 0;
101
102 /// Disconnects from the current network.
103 virtual void disconnect() = 0;
104 /// Connects to the specified SSID/password.
105 virtual bool connect(const std::string& ssid, const std::string& passwd) = 0;
106 /// Returns the current connection status.
108
109 /// Returns scan results, up to max_count entries.
110 virtual bool getScanResults(std::vector<NetworkDetails>* list,
111 int max_count) const = 0;
112 /// Virtual destructor.
113 virtual ~Interface() {}
114};
115
116} // namespace roo_wifi
Listener for interface events.
Definition interface.h:84
virtual void onEvent(EventType type)
Definition interface.h:87
Abstraction for interacting with the hardware Wi-Fi interface.
Definition interface.h:70
virtual void removeEventListener(EventListener *listener)=0
Unregisters an interface event listener.
virtual void disconnect()=0
Disconnects from the current network.
virtual ConnectionStatus getStatus()=0
Returns the current connection status.
EventType
Interface event types.
Definition interface.h:73
virtual bool getApInfo(NetworkDetails *info) const =0
Returns current AP information; false if not connected.
virtual bool startScan()=0
Starts a scan.
virtual void addEventListener(EventListener *listener)=0
Registers an interface event listener.
virtual bool getScanResults(std::vector< NetworkDetails > *list, int max_count) const =0
Returns scan results, up to max_count entries.
virtual ~Interface()
Virtual destructor.
Definition interface.h:113
virtual bool scanCompleted() const =0
Returns true if the last scan has completed.
virtual bool connect(const std::string &ssid, const std::string &passwd)=0
Connects to the specified SSID/password.
ConnectionStatus
Wi-Fi connection status.
Definition interface.h:42
@ WL_IDLE_STATUS
Definition interface.h:43
@ WL_DISCONNECTED
Definition interface.h:49
@ WL_CONNECTION_LOST
Definition interface.h:48
@ WL_CONNECT_FAILED
Definition interface.h:47
@ WL_CONNECTED
Definition interface.h:46
@ WL_SCAN_COMPLETED
Definition interface.h:45
@ WL_NO_SSID_AVAIL
Definition interface.h:44
AuthMode
Wi-Fi authentication modes.
Definition interface.h:11
@ WIFI_AUTH_WPA3_PSK
WPA3-PSK.
Definition interface.h:18
@ WIFI_AUTH_WPA2_PSK
WPA2-PSK.
Definition interface.h:15
@ WIFI_AUTH_UNKNOWN
Unknown.
Definition interface.h:21
@ WIFI_AUTH_WPA2_ENTERPRISE
WPA2-Enterprise.
Definition interface.h:17
@ WIFI_AUTH_WPA_PSK
WPA-PSK.
Definition interface.h:14
@ WIFI_AUTH_WAPI_PSK
WAPI-PSK.
Definition interface.h:20
@ WIFI_AUTH_OPEN
Open.
Definition interface.h:12
@ WIFI_AUTH_WPA_WPA2_PSK
WPA/WPA2-PSK.
Definition interface.h:16
@ WIFI_AUTH_WPA2_WPA3_PSK
WPA2/WPA3-PSK.
Definition interface.h:19
@ WIFI_AUTH_WEP
WEP.
Definition interface.h:13
CipherType
Wi-Fi cipher types.
Definition interface.h:25
@ WIFI_CIPHER_TYPE_UNKNOWN
Unknown.
Definition interface.h:38
@ WIFI_CIPHER_TYPE_WEP104
WEP104.
Definition interface.h:28
@ WIFI_CIPHER_TYPE_GCMP
GCMP.
Definition interface.h:34
@ WIFI_CIPHER_TYPE_GCMP256
GCMP-256.
Definition interface.h:35
@ WIFI_CIPHER_TYPE_SMS4
SMS4.
Definition interface.h:33
@ WIFI_CIPHER_TYPE_NONE
None.
Definition interface.h:26
@ WIFI_CIPHER_TYPE_TKIP
TKIP.
Definition interface.h:29
@ WIFI_CIPHER_TYPE_WEP40
WEP40.
Definition interface.h:27
@ WIFI_CIPHER_TYPE_CCMP
CCMP.
Definition interface.h:30
@ WIFI_CIPHER_TYPE_AES_CMAC128
AES-CMAC-128.
Definition interface.h:32
@ WIFI_CIPHER_TYPE_AES_GMAC128
AES-GMAC-128.
Definition interface.h:36
@ WIFI_CIPHER_TYPE_TKIP_CCMP
TKIP+CCMP.
Definition interface.h:31
@ WIFI_CIPHER_TYPE_AES_GMAC256
AES-GMAC-256.
Definition interface.h:37
Detailed network information reported by the interface.
Definition interface.h:53
uint8_t ssid[33]
SSID of AP.
Definition interface.h:55
int8_t rssi
Signal strength of AP.
Definition interface.h:57
ConnectionStatus status
Definition interface.h:66
CipherType group_cipher
Group cipher of AP.
Definition interface.h:60
CipherType pairwise_cipher
Pairwise cipher of AP.
Definition interface.h:59
uint8_t primary
Channel of AP.
Definition interface.h:56
AuthMode authmode
Auth mode of AP.
Definition interface.h:58
uint8_t bssid[6]
MAC address of AP.
Definition interface.h:54