|
15 | 15 | #include "WiFiConnectionHandler.h"
|
16 | 16 | #endif
|
17 | 17 | #include "NetworkConfigurator.h"
|
18 |
| -#if !defined(ARDUINO_SAMD_MKRGSM1400) && !defined(ARDUINO_SAMD_MKRNB1500) && !defined(ARDUINO_SAMD_MKRWAN1300) && !defined(ARDUINO_SAMD_MKRWAN1310) |
19 |
| -#define BOARD_HAS_KVSTORE |
20 |
| -#include <Arduino_KVStore.h> |
21 |
| -#endif |
22 | 18 |
|
23 | 19 | #define SERVICE_ID_FOR_AGENTMANAGER 0xB0
|
24 | 20 |
|
25 | 21 | #define NC_CONNECTION_RETRY_TIMER_ms 120000
|
26 | 22 | #define NC_CONNECTION_TIMEOUT_ms 15000
|
27 | 23 | #define NC_UPDATE_NETWORK_OPTIONS_TIMER_ms 120000
|
28 | 24 |
|
29 |
| -#if defined(BOARD_HAS_KVSTORE) |
30 |
| - KVStore _kvstore; |
31 |
| -#endif |
32 | 25 | constexpr char *STORAGE_KEY{ "NETWORK_CONFIGS" };
|
33 | 26 |
|
34 | 27 | NetworkConfiguratorClass::NetworkConfiguratorClass(ConnectionHandler &connectionHandler)
|
@@ -120,22 +113,23 @@ NetworkConfiguratorStates NetworkConfiguratorClass::poll() {
|
120 | 113 | }
|
121 | 114 |
|
122 | 115 | bool NetworkConfiguratorClass::resetStoredConfiguration() {
|
123 |
| -#if defined(BOARD_HAS_KVSTORE) |
124 |
| - bool res = false; |
125 |
| - if (_kvstore.begin()) { |
126 |
| - if(_kvstore.exists(STORAGE_KEY)) { |
127 |
| - res = _kvstore.remove(STORAGE_KEY); |
128 |
| - } else{ |
129 |
| - res = true; |
| 116 | + |
| 117 | + if(_kvstore != nullptr){ |
| 118 | + bool res = false; |
| 119 | + if (_kvstore->begin()) { |
| 120 | + if(_kvstore->exists(STORAGE_KEY)) { |
| 121 | + res = _kvstore->remove(STORAGE_KEY); |
| 122 | + } else{ |
| 123 | + res = true; |
| 124 | + } |
| 125 | + _kvstore->end(); |
| 126 | + } else { |
| 127 | + DEBUG_DEBUG("Cannot initialize kvstore for deleting network settings"); |
| 128 | + } |
| 129 | + if (!res) { |
| 130 | + return false; |
130 | 131 | }
|
131 |
| - _kvstore.end(); |
132 |
| - } else { |
133 |
| - DEBUG_DEBUG("Cannot initialize kvstore for deleting network settings"); |
134 |
| - } |
135 |
| - if (!res) { |
136 |
| - return false; |
137 | 132 | }
|
138 |
| -#endif |
139 | 133 |
|
140 | 134 | memset(&_networkSetting, 0x00, sizeof(models::NetworkSetting));
|
141 | 135 | if(_connectionHandlerIstantiated) {
|
@@ -324,22 +318,22 @@ NetworkConfiguratorStates NetworkConfiguratorClass::handleConnectRequest() {
|
324 | 318 |
|
325 | 319 | sendStatus(StatusMessage::CONNECTING);
|
326 | 320 |
|
327 |
| -#if defined(BOARD_HAS_KVSTORE) |
328 |
| - if (!_kvstore.begin()) { |
329 |
| - DEBUG_ERROR("NetworkConfiguratorClass::%s error initializing kvstore", __FUNCTION__); |
330 |
| - sendStatus(StatusMessage::ERROR_STORAGE_BEGIN); |
331 |
| - LEDFeedbackClass::getInstance().setMode(LEDFeedbackClass::LEDFeedbackMode::ERROR); |
332 |
| - return nextState; |
333 |
| - } |
334 |
| - if (!_kvstore.putBytes(STORAGE_KEY, (uint8_t *)&_networkSetting, sizeof(models::NetworkSetting))) { |
335 |
| - DEBUG_ERROR("NetworkConfiguratorClass::%s error saving network settings", __FUNCTION__); |
336 |
| - sendStatus(StatusMessage::ERROR); |
337 |
| - LEDFeedbackClass::getInstance().setMode(LEDFeedbackClass::LEDFeedbackMode::ERROR); |
338 |
| - return nextState; |
339 |
| - } |
| 321 | + if (_kvstore != nullptr) { |
| 322 | + if (!_kvstore->begin()) { |
| 323 | + DEBUG_ERROR("NetworkConfiguratorClass::%s error initializing kvstore", __FUNCTION__); |
| 324 | + sendStatus(StatusMessage::ERROR_STORAGE_BEGIN); |
| 325 | + LEDFeedbackClass::getInstance().setMode(LEDFeedbackClass::LEDFeedbackMode::ERROR); |
| 326 | + return nextState; |
| 327 | + } |
| 328 | + if (!_kvstore->putBytes(STORAGE_KEY, (uint8_t *)&_networkSetting, sizeof(models::NetworkSetting))) { |
| 329 | + DEBUG_ERROR("NetworkConfiguratorClass::%s error saving network settings", __FUNCTION__); |
| 330 | + sendStatus(StatusMessage::ERROR); |
| 331 | + LEDFeedbackClass::getInstance().setMode(LEDFeedbackClass::LEDFeedbackMode::ERROR); |
| 332 | + return nextState; |
| 333 | + } |
340 | 334 |
|
341 |
| - _kvstore.end(); |
342 |
| -#endif |
| 335 | + _kvstore->end(); |
| 336 | + } |
343 | 337 |
|
344 | 338 | if (_connectionHandlerIstantiated) {
|
345 | 339 | if(disconnectFromNetwork() == ConnectionResult::FAILED) {
|
@@ -417,32 +411,32 @@ NetworkConfiguratorStates NetworkConfiguratorClass::handleCheckEth() {
|
417 | 411 |
|
418 | 412 | NetworkConfiguratorStates NetworkConfiguratorClass::handleReadStorage() {
|
419 | 413 | NetworkConfiguratorStates nextState = _state;
|
420 |
| -#if defined(BOARD_HAS_KVSTORE) |
421 |
| - if (!_kvstore.begin()) { |
422 |
| - DEBUG_ERROR("NetworkConfiguratorClass::%s error initializing kvstore", __FUNCTION__); |
423 |
| - sendStatus(StatusMessage::ERROR_STORAGE_BEGIN); |
424 |
| - LEDFeedbackClass::getInstance().setMode(LEDFeedbackClass::LEDFeedbackMode::ERROR); |
425 |
| - return nextState; |
426 |
| - } |
| 414 | + if(_kvstore != nullptr){ |
| 415 | + if (!_kvstore->begin()) { |
| 416 | + DEBUG_ERROR("NetworkConfiguratorClass::%s error initializing kvstore", __FUNCTION__); |
| 417 | + sendStatus(StatusMessage::ERROR_STORAGE_BEGIN); |
| 418 | + LEDFeedbackClass::getInstance().setMode(LEDFeedbackClass::LEDFeedbackMode::ERROR); |
| 419 | + return nextState; |
| 420 | + } |
| 421 | + |
| 422 | + if (_kvstore->exists(STORAGE_KEY)) { |
| 423 | + _kvstore->getBytes(STORAGE_KEY, (uint8_t *)&_networkSetting, sizeof(models::NetworkSetting)); |
| 424 | + printNetworkSettings(); |
| 425 | + if (!_connectionHandler->updateSetting(_networkSetting)) { |
| 426 | + DEBUG_WARNING("NetworkConfiguratorClass::%s Network parameters found on storage are not supported.", __FUNCTION__); |
| 427 | + nextState = NetworkConfiguratorStates::WAITING_FOR_CONFIG; |
| 428 | + } else { |
| 429 | + _connectionHandlerIstantiated = true; |
| 430 | + nextState = NetworkConfiguratorStates::CONFIGURED; |
| 431 | + } |
427 | 432 |
|
428 |
| - if (_kvstore.exists(STORAGE_KEY)) { |
429 |
| - _kvstore.getBytes(STORAGE_KEY, (uint8_t *)&_networkSetting, sizeof(models::NetworkSetting)); |
430 |
| - printNetworkSettings(); |
431 |
| - if (!_connectionHandler->updateSetting(_networkSetting)) { |
432 |
| - DEBUG_WARNING("NetworkConfiguratorClass::%s Network parameters found on storage are not supported.", __FUNCTION__); |
433 |
| - nextState = NetworkConfiguratorStates::WAITING_FOR_CONFIG; |
434 | 433 | } else {
|
435 |
| - _connectionHandlerIstantiated = true; |
436 |
| - nextState = NetworkConfiguratorStates::CONFIGURED; |
| 434 | + nextState = NetworkConfiguratorStates::WAITING_FOR_CONFIG; |
437 | 435 | }
|
438 |
| - |
439 |
| - } else { |
440 |
| - nextState = NetworkConfiguratorStates::WAITING_FOR_CONFIG; |
| 436 | + _kvstore->end(); |
| 437 | + } else{ |
| 438 | + nextState = NetworkConfiguratorStates::CONFIGURED; |
441 | 439 | }
|
442 |
| - _kvstore.end(); |
443 |
| -#else |
444 |
| - nextState = NetworkConfiguratorStates::CONFIGURED; |
445 |
| -#endif |
446 | 440 |
|
447 | 441 | if (nextState == NetworkConfiguratorStates::WAITING_FOR_CONFIG && _optionUpdateTimer.getWaitTime() == 0) {
|
448 | 442 | updateNetworkOptions();
|
|
0 commit comments