Skip to content

Commit 65f5256

Browse files
committed
Separate Provisioning library from WiFi library
1 parent 6d256b6 commit 65f5256

File tree

7 files changed

+40
-28
lines changed

7 files changed

+40
-28
lines changed

Diff for: libraries/WiFi/src/WiFi.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -88,4 +88,14 @@ void WiFiClass::printDiag(Print& p)
8888
p.println(conf.sta.bssid_set);
8989
}
9090

91+
void WiFiClass::enableProv(bool status)
92+
{
93+
prov_enable = status;
94+
}
95+
96+
bool WiFiClass::isProvEnabled()
97+
{
98+
return prov_enable;
99+
}
100+
91101
WiFiClass WiFi;

Diff for: libraries/WiFi/src/WiFi.h

+10-2
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,17 @@
3737
#include "WiFiClient.h"
3838
#include "WiFiServer.h"
3939
#include "WiFiUdp.h"
40-
#include "WiFiProv.h"
4140

42-
class WiFiClass : public WiFiGenericClass, public WiFiSTAClass, public WiFiScanClass, public WiFiAPClass, public WiFiProvClass
41+
class WiFiClass : public WiFiGenericClass, public WiFiSTAClass, public WiFiScanClass, public WiFiAPClass
4342
{
43+
private:
44+
bool prov_enable;
4445
public:
46+
WiFiClass()
47+
{
48+
prov_enable = false;
49+
}
50+
4551
using WiFiGenericClass::channel;
4652

4753
using WiFiSTAClass::SSID;
@@ -60,6 +66,8 @@ class WiFiClass : public WiFiGenericClass, public WiFiSTAClass, public WiFiScanC
6066
friend class WiFiClient;
6167
friend class WiFiServer;
6268
friend class WiFiUDP;
69+
void enableProv(bool status);
70+
bool isProvEnabled();
6371
};
6472

6573
extern WiFiClass WiFi;

Diff for: libraries/WiFi/examples/WiFiProv/WiFiProv.ino renamed to libraries/WiFiProv/examples/WiFiProv/WiFiProv.ino

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include "WiFi.h"
1+
#include "WiFiProv.h"
22
void SysProvEvent(system_event_t *sys_event,wifi_prov_event_t *prov_event)
33
{
44
if(sys_event) {
@@ -56,8 +56,8 @@ void setup() {
5656
/* uint8_t uuid[16] = {0xb4, 0xdf, 0x5a, 0x1c, 0x3f, 0x6b, 0xf4, 0xbf,
5757
0xea, 0x4a, 0x82, 0x03, 0x04, 0x90, 0x1a, 0x02 };*/
5858
WiFi.onEvent(SysProvEvent);
59-
//WiFi.beginProvision(provSchemeBLE, WIFI_PROV_SCHEME_BLE_EVENT_HANDLER_FREE_BTDM, WIFI_PROV_SECURITY_1, "abcd1234", "PROV_XXX", NULL, NULL);
60-
WiFi.beginProvision(provSchemeSoftAP, WIFI_PROV_EVENT_HANDLER_NONE, WIFI_PROV_SECURITY_1, "abcd1234", NULL, NULL, NULL);
59+
//WiFiProv.beginProvision(provSchemeBLE, WIFI_PROV_SCHEME_BLE_EVENT_HANDLER_FREE_BTDM, WIFI_PROV_SECURITY_1, "abcd1234", "PROV_XXX", NULL, NULL);
60+
WiFiProv.beginProvision(provSchemeSoftAP, WIFI_PROV_EVENT_HANDLER_NONE, WIFI_PROV_SECURITY_1, "abcd1234", NULL, NULL, NULL);
6161
}
6262

6363
void loop() {

Diff for: libraries/WiFiProv/library.properties

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
name=WiFiProv
2+
version=1.0
3+
author=Switi Mhaiske <[email protected]>
4+
maintainer=Hristo Gochkov <[email protected]>
5+
sentence=Enables provisioning.
6+
paragraph=With this library you can perform provisioning on esp32 via SoftAP or BLE.
7+
category=
8+
url=
9+
architectures=esp32

Diff for: libraries/WiFi/src/WiFiProv.cpp renamed to libraries/WiFiProv/src/WiFiProv.cpp

+5-11
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@
3131
#include <wifi_provisioning/scheme_softap.h>
3232
#include <wifi_provisioning/manager.h>
3333
#undef IPADDR_NONE
34-
#include "WiFi.h"
34+
#include "WiFiProv.h"
35+
#include "SimpleBLE.h"
3536

3637
extern esp_err_t postToSysQueue(system_prov_event_t *);
3738

@@ -42,13 +43,6 @@ static const uint8_t custom_service_uuid[16] = { 0xb4, 0xdf, 0x5a, 0x1c, 0x3f,
4243

4344
#define SERV_NAME_PREFIX_PROV "PROV_"
4445

45-
bool WiFiProvClass::prov_enable = true;
46-
47-
bool WiFiProvClass::isProvEnabled()
48-
{
49-
return prov_enable;
50-
}
51-
5246
void provSchemeBLE()
5347
{
5448
prov_scheme = WIFI_PROV_SCHEME_BLE;
@@ -109,7 +103,7 @@ static void get_device_service_name(char *service_name, size_t max)
109103

110104
void WiFiProvClass :: beginProvision(void (*scheme_cb)(), wifi_prov_event_handler_t scheme_event_handler, wifi_prov_security_t security, const char * pop, const char *service_name, const char *service_key, uint8_t * uuid)
111105
{
112-
prov_enable = true;
106+
WiFi.enableProv(true);
113107
bool provisioned = false;
114108
scheme_cb();
115109
config.scheme_event_handler = scheme_event_handler;
@@ -152,7 +146,7 @@ void WiFiProvClass :: beginProvision(void (*scheme_cb)(), wifi_prov_event_handle
152146
} else {
153147
wifi_prov_mgr_deinit();
154148
WiFi.mode(WIFI_MODE_STA);
155-
log_i("Aleardy Provisioned, starting Wi-Fi STA");
149+
log_i("Already Provisioned, starting Wi-Fi STA");
156150
#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO
157151
wifi_config_t conf;
158152
esp_wifi_get_config(WIFI_IF_STA,&conf);
@@ -162,4 +156,4 @@ void WiFiProvClass :: beginProvision(void (*scheme_cb)(), wifi_prov_event_handle
162156
WiFi.begin();
163157
}
164158
}
165-
159+
WiFiProvClass WiFiProv;

Diff for: libraries/WiFi/src/WiFiProv.h renamed to libraries/WiFiProv/src/WiFiProv.h

+3-12
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,9 @@
1717
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
1818
*/
1919

20+
#include "WiFi.h"
2021
#include "wifi_provisioning/manager.h"
2122
#include "wifi_provisioning/scheme_ble.h"
22-
#include "nvs_flash.h"
23-
#include "SimpleBLE.h"
2423
//Select the scheme using which you want to provision
2524
typedef enum
2625
{
@@ -34,19 +33,11 @@ extern void provSchemeBLE();
3433
//Provisioning class
3534
class WiFiProvClass
3635
{
37-
protected:
38-
static bool prov_enable;
39-
4036
public:
41-
WiFiProvClass() {
42-
prov_enable = false;
43-
}
4437

45-
bool isProvEnabled();
46-
47-
void beginProvision(void (*scheme_cb)() = provSchemeSoftAP, wifi_prov_event_handler_t scheme_event_handler = WIFI_PROV_EVENT_HANDLER_NONE, wifi_prov_security_t security = WIFI_PROV_SECURITY_1, const char * pop = "abcd1234", const char * service_name = NULL, const char * service_key = NULL, uint8_t *uuid = NULL);
38+
void beginProvision(void (*scheme_cb)() = provSchemeSoftAP, wifi_prov_event_handler_t scheme_event_handler = WIFI_PROV_EVENT_HANDLER_NONE, wifi_prov_security_t security = WIFI_PROV_SECURITY_1, const char * pop = "abcd1234", const char * service_name = NULL, const char * service_key = NULL, uint8_t *uuid = NULL);
4839
};
49-
40+
extern WiFiProvClass WiFiProv;
5041
/*
5142
Event Handler for BLE
5243
- WIFI_PROV_SCHEME_BLE_EVENT_HANDLER_FREE_BTDM

0 commit comments

Comments
 (0)