1
0
forked from me/IronOS

Track if settings were reset

This commit is contained in:
Ben V. Brown
2019-12-28 11:59:56 +11:00
parent 97f0dcae36
commit e6a562f8f4
2 changed files with 17 additions and 15 deletions

View File

@@ -6,19 +6,20 @@
#include "Setup.h" #include "Setup.h"
extern uint8_t PCBVersion; extern uint8_t PCBVersion;
extern uint32_t currentTempTargetDegC; extern uint32_t currentTempTargetDegC;
extern bool settingsWereReset;
enum ButtonState { enum ButtonState {
BUTTON_NONE = 0, /* No buttons pressed / < filter time*/ BUTTON_NONE = 0, /* No buttons pressed / < filter time*/
BUTTON_F_SHORT = 1, /* User has pressed the front button*/ BUTTON_F_SHORT = 1, /* User has pressed the front button*/
BUTTON_B_SHORT = 2, /* User has pressed the back button*/ BUTTON_B_SHORT = 2, /* User has pressed the back button*/
BUTTON_F_LONG = 4, /* User is holding the front button*/ BUTTON_F_LONG = 4, /* User is holding the front button*/
BUTTON_B_LONG = 8, /* User is holding the back button*/ BUTTON_B_LONG = 8, /* User is holding the back button*/
BUTTON_BOTH = 16, /* User has pressed both buttons*/ BUTTON_BOTH = 16, /* User has pressed both buttons*/
/* /*
* Note: * Note:
* Pressed means press + release, we trigger on a full \__/ pulse * Pressed means press + release, we trigger on a full \__/ pulse
* holding means it has gone low, and been low for longer than filter time * holding means it has gone low, and been low for longer than filter time
*/ */
}; };
ButtonState getButtonState(); ButtonState getButtonState();
@@ -37,7 +38,7 @@ void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c); void HAL_I2C_MemTxCpltCallback(I2C_HandleTypeDef *hi2c);
void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c); void HAL_I2C_MemRxCpltCallback(I2C_HandleTypeDef *hi2c);
void vApplicationStackOverflowHook(xTaskHandle *pxTask, void vApplicationStackOverflowHook(xTaskHandle *pxTask,
signed portCHAR *pcTaskName); signed portCHAR *pcTaskName);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@@ -17,6 +17,7 @@ uint8_t PCBVersion = 0;
uint32_t currentTempTargetDegC = 0; // Current temperature target in C uint32_t currentTempTargetDegC = 0; // Current temperature target in C
uint32_t lastMovementTime = 0; uint32_t lastMovementTime = 0;
int16_t idealQCVoltage = 0; int16_t idealQCVoltage = 0;
bool settingsWereReset = false;
// FreeRTOS variables // FreeRTOS variables
osThreadId GUITaskHandle; osThreadId GUITaskHandle;
@@ -70,7 +71,7 @@ int main(void) {
systemSettings.sensitivity = 0; systemSettings.sensitivity = 0;
} }
HAL_IWDG_Refresh(&hiwdg); HAL_IWDG_Refresh(&hiwdg);
restoreSettings(); // load the settings from flash settingsWereReset = restoreSettings(); // load the settings from flash
HAL_IWDG_Refresh(&hiwdg); HAL_IWDG_Refresh(&hiwdg);
@@ -293,7 +294,7 @@ bool showBootLogoIfavailable() {
uint16_t temp[98]; uint16_t temp[98];
for (uint8_t i = 0; i < (98); i++) { for (uint8_t i = 0; i < (98); i++) {
temp[i] = *(uint16_t *) (FLASH_LOGOADDR + (i * 2)); temp[i] = *(uint16_t*) (FLASH_LOGOADDR + (i * 2));
} }
uint8_t temp8[98 * 2]; uint8_t temp8[98 * 2];
for (uint8_t i = 0; i < 98; i++) { for (uint8_t i = 0; i < 98; i++) {
@@ -310,7 +311,7 @@ bool showBootLogoIfavailable() {
if (temp8[3] != 0x0D) if (temp8[3] != 0x0D)
return false; return false;
OLED::drawArea(0, 0, 96, 16, (uint8_t *) (temp8 + 4)); OLED::drawArea(0, 0, 96, 16, (uint8_t*) (temp8 + 4));
OLED::refresh(); OLED::refresh();
return true; return true;
} }