this is using the mbed os version 5-13-1
Diff: source/main-https.cpp
- Branch:
- PassingRegression
- Revision:
- 121:ac4f59839e4f
- Parent:
- 120:779b74689747
- Child:
- 124:eae4512b131b
--- a/source/main-https.cpp Mon May 27 17:00:43 2019 +0000
+++ b/source/main-https.cpp Sat Jun 01 15:29:03 2019 +0000
@@ -220,7 +220,10 @@
else
dbg_printf(LOG, "(expected %d!).\n", expected_rc);
}
-
+void setupDefaultStartupConfig()
+{
+ app_config.startup_config.ble_enable = true;
+}
void setupDefaultCloudConfig()
{
@@ -247,24 +250,34 @@
rc = nvstore.reset();
dbg_printf(LOG, "Reset NVStore. ");
print_return_code(rc, NVSTORE_SUCCESS);
-
}
-void saveConfiguration(uint32_t configKey)
+bool deleteConfiguration(nvstore_key_t configKey)
{
int rc;
- rc = nvstore.set(configKey, sizeof(app_config), &app_config);
+ // Clear NVStore data. Should only be done once at factory configuration
+ rc = nvstore.remove(configKey);
+ dbg_printf(LOG, "Deleted config key %d from NVStore. ", (int)configKey);
+ print_return_code(rc, NVSTORE_SUCCESS);
+ return (rc == NVSTORE_SUCCESS);
+}
+
+void saveConfiguration(nvstore_key_t configKey)
+{
+ int rc;
+ rc = nvstore.set((uint16_t)configKey, sizeof(app_config), &app_config);
print_return_code(rc, NVSTORE_SUCCESS);
}
-void loadConfiguration(uint32_t configKey)
+bool loadConfiguration(nvstore_key_t configKey)
{
int rc;
// Get the value of this key (should be 3000)
uint16_t actual_len_bytes;
- rc = nvstore.get(configKey, sizeof(app_config), &app_config, actual_len_bytes);
+ rc = nvstore.get((uint16_t)configKey, sizeof(app_config), &app_config, actual_len_bytes);
print_app_config();
print_return_code(rc, NVSTORE_SUCCESS);
+ return (rc == NVSTORE_SUCCESS && (sizeof(app_config) == actual_len_bytes));
}
static int reset_counter = 0;
@@ -398,7 +411,18 @@
#define PAUSE_SECONDS_BLE 0
int main() {
#ifndef USE_DEFAULT_CONFIGURATION
- loadConfiguration(APP_CONFIG_0);
+ if(loadConfiguration(APP_CONFIG_0) == false)
+ {
+ setupDefaultStartupConfig();
+ setupDefaultUartConfig();
+ setupDefaultWiFiConfig();
+ setupDefaultBleConfig();
+ setupDefaultCloudConfig();
+ }
+ if(app_config.startup_config.ble_enable)
+ {
+ trigger_start_BLE();
+ }
#else
setupDefaultUartConfig();
setupDefaultWiFiConfig();
@@ -457,7 +481,7 @@
&wiFi2ATDatamPool, &wiFi2ATDataQueue,
&aT2BleDatamPool, &aT2BleDataQueue,
&ble2ATDatamPool, &ble2ATDataQueue,
- false);
+ &app_config.startup_config, false);
atcmd_thread.start(callback(aTCmdManager, &ATCmdManager::runMain));
dbg_printf(LOG, "\r\n after starting atcmd thread \r\n");
print_memory_info();