|
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