diff --git a/src/WiFi.cpp b/src/WiFi.cpp index 4e0ffec2..69cc1103 100644 --- a/src/WiFi.cpp +++ b/src/WiFi.cpp @@ -61,6 +61,14 @@ int WiFiClass::begin(const char* ssid) return status; } +int WiFiClass::connect(const char* ssid) { + uint8_t status = WL_CONNECT_FAILED; + if (WiFiDrv::wifiSetNetwork(ssid, strlen(ssid)) != WL_FAILURE) { + status = WiFiDrv::getConnectionStatus(); + } + return status; +} + int WiFiClass::begin(const char* ssid, uint8_t key_idx, const char *key) { uint8_t status = WL_IDLE_STATUS; @@ -80,6 +88,15 @@ int WiFiClass::begin(const char* ssid, uint8_t key_idx, const char *key) return status; } +int WiFiClass::connect(const char* ssid, uint8_t key_idx, const char *key) { + uint8_t status = WL_CONNECT_FAILED; + if (WiFiDrv::wifiSetKey(ssid, strlen(ssid), key_idx, key, strlen(key)) != WL_FAILURE) { + delay(WL_DELAY_START_CONNECTION); + status = WiFiDrv::getConnectionStatus(); + } + return status; +} + int WiFiClass::begin(const char* ssid, const char *passphrase) { uint8_t status = WL_IDLE_STATUS; @@ -100,6 +117,15 @@ int WiFiClass::begin(const char* ssid, const char *passphrase) return status; } +int WiFiClass::connect(const char* ssid, const char *passphrase) { + uint8_t status = WL_CONNECT_FAILED; + if (WiFiDrv::wifiSetPassphrase(ssid, strlen(ssid), passphrase, strlen(passphrase))!= WL_FAILURE) { + delay(WL_DELAY_START_CONNECTION); + status = WiFiDrv::getConnectionStatus(); + } + return status; +} + uint8_t WiFiClass::beginAP(const char *ssid) { return beginAP(ssid, 1); diff --git a/src/WiFi.h b/src/WiFi.h index 892d19bd..5bc819f4 100644 --- a/src/WiFi.h +++ b/src/WiFi.h @@ -74,6 +74,10 @@ class WiFiClass */ int begin(const char* ssid, const char *passphrase); + int connect(const char* ssid); + int connect(const char* ssid, uint8_t key_idx, const char* key); + int connect(const char* ssid, const char *passphrase); + uint8_t beginAP(const char *ssid); uint8_t beginAP(const char *ssid, uint8_t channel); uint8_t beginAP(const char *ssid, const char* passphrase);