Skip to content

Commit 241531a

Browse files
IMAN4Kdevyte
authored andcommitted
Adding softAP SSID & PSK query API (esp8266#4138)
* softAP SSID & PSK query API added. Signatures: String ESP8266WiFiAP::softAPSSID() const; String ESP8266WiFiAP::softAPPSK() const; * Fix for proper C-style string copy * add API to validate input ip as string Signatures: static bool IPAddress::isValid(const String& arg); static bool IPAddress::isValid(const char* arg, size_t len); * fix indentation * fix ip string validation to use built-in implementation. signatures: static bool isValid(const String& arg); static bool isValid(const char* arg);
1 parent 29580e8 commit 241531a

File tree

4 files changed

+49
-0
lines changed

4 files changed

+49
-0
lines changed

cores/esp8266/IPAddress.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,4 +112,12 @@ String IPAddress::toString() const
112112
return String(szRet);
113113
}
114114

115+
bool IPAddress::isValid(const String& arg) {
116+
return IPAddress().fromString(arg);
117+
}
118+
119+
bool IPAddress::isValid(const char* arg) {
120+
return IPAddress().fromString(arg);
121+
}
122+
115123
const IPAddress INADDR_NONE(0, 0, 0, 0);

cores/esp8266/IPAddress.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,14 @@ class IPAddress: public Printable {
7979
virtual size_t printTo(Print& p) const;
8080
String toString() const;
8181

82+
/*
83+
check if input string(arg) is a valid IPV4 address or not.
84+
return true on valid.
85+
return false on invalid.
86+
*/
87+
static bool isValid(const String& arg);
88+
static bool isValid(const char* arg);
89+
8290
friend class EthernetClass;
8391
friend class UDP;
8492
friend class Client;

libraries/ESP8266WiFi/src/ESP8266WiFiAP.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,3 +339,33 @@ String ESP8266WiFiAPClass::softAPmacAddress(void) {
339339
sprintf(macStr, "%02X:%02X:%02X:%02X:%02X:%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
340340
return String(macStr);
341341
}
342+
343+
/**
344+
* Get the configured(Not-In-Flash) softAP SSID name.
345+
* @return String SSID.
346+
*/
347+
String ESP8266WiFiAPClass::softAPSSID() const {
348+
struct softap_config config;
349+
wifi_softap_get_config(&config);
350+
char* name = reinterpret_cast<char*>(config.ssid);
351+
char ssid[sizeof(config.ssid) + 1];
352+
memcpy(ssid, name, sizeof(config.ssid));
353+
ssid[sizeof(config.ssid)] = '\0';
354+
355+
return String(ssid);
356+
}
357+
358+
/**
359+
* Get the configured(Not-In-Flash) softAP PSK or PASSWORD.
360+
* @return String psk.
361+
*/
362+
String ESP8266WiFiAPClass::softAPPSK() const {
363+
struct softap_config config;
364+
wifi_softap_get_config(&config);
365+
char* pass = reinterpret_cast<char*>(config.password);
366+
char psk[sizeof(config.password) + 1];
367+
memcpy(psk, pass, sizeof(config.password));
368+
psk[sizeof(config.password)] = '\0';
369+
370+
return String(psk);
371+
}

libraries/ESP8266WiFi/src/ESP8266WiFiAP.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ class ESP8266WiFiAPClass {
4747
uint8_t* softAPmacAddress(uint8_t* mac);
4848
String softAPmacAddress(void);
4949

50+
String softAPSSID() const;
51+
String softAPPSK() const;
52+
5053
protected:
5154

5255
};

0 commit comments

Comments
 (0)