Station.h
Go to the documentation of this file.
1 /****
2  * Sming Framework Project - Open Source framework for high efficiency native ESP8266 development.
3  * Created 2015 by Skurydin Alexey
4  * http://github.com/SmingHub/Sming
5  * All files of the Sming Core are provided under the LGPL v3 license.
6  *
7  * Station.h
8  *
9  ****/
10 
11 #pragma once
12 
13 #include <WString.h>
14 #include <WVector.h>
15 #include <IpAddress.h>
16 #include <MacAddress.h>
17 #include "BssInfo.h"
18 
38 };
39 
42  SCT_None = -1,
46 };
47 
55 };
56 
62  bool bssidSet = false;
64 };
65 
67 enum WpsStatus {
72 };
73 
78 
86 
93 
97 {
98 public:
99  virtual ~StationClass()
100  {
101  }
102 
108  virtual void enable(bool enabled, bool save = false) = 0;
109 
113  virtual bool isEnabled() const = 0;
114 
121  virtual bool config(const String& ssid, const String& password, bool autoConnectOnStartup = true,
122  bool save = true) = 0;
123 
126  virtual bool connect() = 0;
127 
130  virtual bool disconnect() = 0;
131 
135  bool isConnected() const;
136 
140  bool isConnectionFailed() const;
141 
145  virtual StationConnectionStatus getConnectionStatus() const = 0;
146 
150  String getConnectionStatusName() const;
151 
155  virtual bool isEnabledDHCP() const = 0;
156 
160  virtual void enableDHCP(bool enable) = 0;
161 
165  virtual void setHostname(const String& hostname) = 0;
166 
170  virtual String getHostname() const = 0;
171 
175  virtual IpAddress getIP() const = 0;
176 
180  virtual MacAddress getMacAddress() const = 0;
181 
186  String getMAC(char sep = '\0') const;
187 
191  virtual IpAddress getNetworkMask() const = 0;
192 
196  virtual IpAddress getNetworkGateway() const = 0;
197 
201  virtual IpAddress getNetworkBroadcast() const = 0;
202 
207  bool setIP(IpAddress address);
208 
215  virtual bool setIP(IpAddress address, IpAddress netmask, IpAddress gateway) = 0;
216 
220  virtual String getSSID() const = 0;
221 
225  virtual String getPassword() const = 0;
226 
230  virtual int8_t getRssi() const = 0;
231 
235  virtual uint8_t getChannel() const = 0;
236 
241  virtual bool startScan(ScanCompletedDelegate scanCompleted) = 0;
242 
243 #ifdef ENABLE_SMART_CONFIG
244 
250  virtual bool smartConfigStart(SmartConfigType sctype, SmartConfigDelegate callback = nullptr) = 0;
251 
254  virtual void smartConfigStop() = 0;
255 #endif
256 
257 #ifdef ENABLE_WPS
258 
261  virtual bool wpsConfigStart(WPSConfigDelegate callback = nullptr) = 0;
262 
266  bool beginWPSConfig() SMING_DEPRECATED
267  {
268  return wpsConfigStart(nullptr);
269  }
270 
273  virtual void wpsConfigStop() = 0;
274 #endif
275 
276 protected:
277  ScanCompletedDelegate scanCompletedCallback = nullptr;
278 #ifdef ENABLE_SMART_CONFIG
279  SmartConfigDelegate smartConfigCallback = nullptr;
280 #endif
281 #ifdef ENABLE_WPS
282  WPSConfigDelegate wpsConfigCallback = nullptr;
283 #endif
284 };
285 
293 extern StationClass& WifiStation;
294 
Definition: Station.h:71
A class to make it easier to handle and pass around IP addresses.
Definition: IpAddress.h:37
AP not found.
Definition: Station.h:35
Getting SSID & password.
Definition: Station.h:52
Find channel.
Definition: Station.h:51
Got IP address.
Definition: Station.h:37
Connection failed.
Definition: Station.h:36
ESP Touch and Air Kiss.
Definition: Station.h:45
StationClass & WifiStation
Global instance of WiFi station object.
Wait.
Definition: Station.h:50
WiFi station class.
Definition: Station.h:96
Definition: Station.h:70
The String class.
Definition: WString.h:136
String password
AP Password.
Definition: Station.h:61
SmartConfigEvent
Smart configuration event.
Definition: Station.h:49
A network hardware (MAC) address.
Definition: MacAddress.h:38
MacAddress bssid
AP BSSID.
Definition: Station.h:63
WpsStatus
WiFi WPS callback status.
Definition: Station.h:67
Smart Config callback information.
Definition: Station.h:58
Definition: Station.h:68
Definition: Station.h:42
String ssid
AP SSID.
Definition: Station.h:60
SmartConfigType
Smart configuration type.
Definition: Station.h:41
#define SMING_DEPRECATED
Definition: sming_attr.h:30
StationConnectionStatus
WiFi station connection states.
Definition: Station.h:31
Definition: Station.h:69
Connection idle.
Definition: Station.h:32
ESP Touch.
Definition: Station.h:43
bool bssidSet
true if connection should match both SSID and BSSID
Definition: Station.h:62
Delegate< void(bool success, BssList &list)> ScanCompletedDelegate
Scan complete handler function.
Definition: Station.h:77
Air Kiss.
Definition: Station.h:44
Delegate< bool(SmartConfigEvent event, const SmartConfigEventInfo &info)> SmartConfigDelegate
Smart configuration handler function.
Definition: Station.h:85
virtual ~StationClass()
Definition: Station.h:99
Link established.
Definition: Station.h:53
Wrong password.
Definition: Station.h:34
SmartConfigType type
Type of configuration underway.
Definition: Station.h:59
Connecting.
Definition: Station.h:33
Link-over.
Definition: Station.h:54
Delegate< bool(WpsStatus status)> WPSConfigDelegate
WPS configuration callback function.
Definition: Station.h:92