init

Dependencies:   aconno_I2C Lis2dh12 WatchdogTimer

Revision:
35:d9421d57d116
Parent:
34:4493c9f6d707
Child:
36:8e359069192b
--- a/main.cpp	Sun Jan 13 23:40:56 2019 +0000
+++ b/main.cpp	Sun Jan 13 23:48:41 2019 +0000
@@ -41,7 +41,7 @@
 bool GLOBAL_accel_healthy = false;
 bool GLOBAL_motionStopFlagTriggered = false;
 bool GLOBAL_debugLED = true;
-bool GLOBAL_needToConfigureLis3dh = true;
+bool GLOBAL_needToConfigureLis3dh = false;
 bool GLOBAL_registeredOnNetwork = false;
 bool GLOBAL_modemOn = false;
 bool GLOBAL_LEDSequenceinProgress = false;
@@ -410,6 +410,62 @@
     memset(GLOBAL_exceptionString,0x00,sizeof(GLOBAL_exceptionString));
     if (DEBUG_ON) {memset(GLOBAL_debug_buffer,0x00,sizeof(GLOBAL_debug_buffer));}
 }
+void factoryReset() {
+    //IDENTITY 
+    //RET_imei = 0;
+    //STATE
+    RET_haveSettings = 0;
+    RET_state = STATE_SETUP;
+    RET_state_prev = RET_state;
+    RET_RTCunixtime = 0;
+    RET_SetupRunAt = 0;
+    RET_SettingsGotAt = 0;
+    //SETTINGS
+    RET_setting_firmware = 0;
+    RET_setting_minimumupdate_hrs = 0;
+    RET_setting_location_mode = DEFAULT_LOCATION_MODE;
+    RET_setting_location_accuracy = DEFAULT_LOCATION_ACCURACY;
+    RET_setting_location_tx_interval_mins = DEFAULT_LOCATION_TX_INTERVAL_MINS;
+    RET_setting_location_tx_failsafe_hrs = DEFAULT_LOCATION_TX_FAILSAFE_HRS;
+    RET_setting_location_timeout = DEFAULT_LOCATION_TIMEOUT;
+    RET_setting_activity_tx_interval_hrs = 0;
+    RET_setting_environmental_tx_interval_mins = 0;
+    RET_setting_motion_g = DEFAULT_MOTION_G;
+    RET_setting_motion_start_seconds = DEFAULT_MOTION_START_SECONDS;
+    RET_setting_motion_stop_seconds = DEFAULT_MOTION_STOP_SECONDS;
+    RET_setting_impact_g = 0;
+    RET_setting_impact_alert = 0;
+    RET_setting_connection_timeout = DEFAULT_CONNECTION_TIMEOUT;
+    RET_setting_beacon_interval_seconds = DEFAULT_BEACON_INTERVAL_SECONDS;
+    RET_setting_beacon_scan = 0;
+    RET_buttonPressCount = 0;
+    RET_buttonPressTime = 0;
+    RET_buttonHoldTime = 0;
+    //MOTION STATE
+    RET_motionTriggered = 0;
+    RET_motionTriggeredInTXInterval = 0;
+    RET_motionStartTime = 0;
+    RET_motionStopTime = 0;
+    RET_motionPendingOnState = 0;
+    RET_motionPendingOffState = 0;
+    RET_motionState = 0;
+    RET_motionTotalActivityHours = 0.0;
+    RET_motionFrameStart = 0;
+    memset(RET_activityData,0x00,sizeof(RET_activityData));
+    //IMPACT
+    RET_impactTriggered = 0;
+    //EVENT HANDLING
+    RET_eventTime_location_log = 0;
+    RET_eventTime_location_tx = 0;
+    RET_eventTime_location_failsafe_tx = 0;
+    RET_eventTime_environmental_log = 0;
+    RET_eventTime_environmental_tx = 0;
+    RET_eventTime_activity_tx = 0;
+    RET_eventTime_wakeFromDormant = 0;
+    
+    //PERIPHERAL RESET
+    lis3dh_configureForSleep(DEFAULT_MOTION_G,DEFAULT_IMPACT_G);
+}
 
 bool selfTest() {
     int test_count = 0;
@@ -925,6 +981,7 @@
     
     //CHECK FOR FIRST BOOT
     if (RET_coldBoot == 1) { 
+        factoryReset();
         LED1errorCode(6,2); 
     }