diff --git a/source/Core/BSP/MHP30/Power.cpp b/source/Core/BSP/MHP30/Power.cpp index 401b370e..72a64017 100644 --- a/source/Core/BSP/MHP30/Power.cpp +++ b/source/Core/BSP/MHP30/Power.cpp @@ -16,7 +16,7 @@ void power_check() { if (FUSB302_present) { PolicyEngine::PPSTimerCallback(); // Cant start QC until either PD works or fails - if (PolicyEngine::setupCompleteOrTimedOut(systemSettings.PDNegTimeout) == false) { + if (PolicyEngine::setupCompleteOrTimedOut(getSettingValue(SettingsOptions::PDNegTimeout)) == false) { return; } if (PolicyEngine::pdHasNegotiated()) { diff --git a/source/Core/BSP/Miniware/Power.cpp b/source/Core/BSP/Miniware/Power.cpp index 8b7c8eb3..2fcbdcb1 100644 --- a/source/Core/BSP/Miniware/Power.cpp +++ b/source/Core/BSP/Miniware/Power.cpp @@ -16,7 +16,7 @@ void power_check() { if (FUSB302_present) { PolicyEngine::PPSTimerCallback(); // Cant start QC until either PD works or fails - if (PolicyEngine::setupCompleteOrTimedOut(systemSettings.PDNegTimeout) == false) { + if (PolicyEngine::setupCompleteOrTimedOut(getSettingValue(SettingsOptions::PDNegTimeout)) == false) { return; } if (PolicyEngine::pdHasNegotiated()) { diff --git a/source/Core/BSP/Miniware/QC_GPIO.cpp b/source/Core/BSP/Miniware/QC_GPIO.cpp index b48ba1f3..288e61ac 100644 --- a/source/Core/BSP/Miniware/QC_GPIO.cpp +++ b/source/Core/BSP/Miniware/QC_GPIO.cpp @@ -70,7 +70,7 @@ uint8_t QC_DM_PulledDown() { return HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_11) == GPIO #endif void QC_resync() { #ifdef POW_QC - seekQC((systemSettings.QCIdealVoltage) ? 120 : 90, - systemSettings.voltageDiv); // Run the QC seek again if we have drifted too much + seekQC((getSettingValue(SettingsOptions::QCIdealVoltage)) ? 120 : 90, + getSettingValue(SettingsOptions::VoltageDiv)); // Run the QC seek again if we have drifted too much #endif } diff --git a/source/Core/BSP/Pine64/Power.cpp b/source/Core/BSP/Pine64/Power.cpp index 42bee942..22fe53e0 100644 --- a/source/Core/BSP/Pine64/Power.cpp +++ b/source/Core/BSP/Pine64/Power.cpp @@ -16,7 +16,7 @@ void power_check() { if (FUSB302_present) { PolicyEngine::PPSTimerCallback(); // Cant start QC until either PD works or fails - if (PolicyEngine::setupCompleteOrTimedOut(systemSettings.PDNegTimeout) == false) { + if (PolicyEngine::setupCompleteOrTimedOut(getSettingValue(SettingsOptions::PDNegTimeout)) == false) { return; } if (PolicyEngine::pdHasNegotiated()) { @@ -43,7 +43,7 @@ uint8_t usb_pd_detect() { bool getIsPoweredByDCIN() { // We return false until we are sure we are not using PD - if (PolicyEngine::setupCompleteOrTimedOut(systemSettings.PDNegTimeout) == false) { + if (PolicyEngine::setupCompleteOrTimedOut(getSettingValue(SettingsOptions::PDNegTimeout)) == false) { return false; } if (PolicyEngine::pdHasNegotiated()) { diff --git a/source/Core/BSP/Pine64/QC_GPIO.cpp b/source/Core/BSP/Pine64/QC_GPIO.cpp index e2ecd66c..35789055 100644 --- a/source/Core/BSP/Pine64/QC_GPIO.cpp +++ b/source/Core/BSP/Pine64/QC_GPIO.cpp @@ -47,12 +47,12 @@ uint8_t QC_DM_PulledDown() { return gpio_input_bit_get(USB_DM_LOW_GPIO_Port, USB void QC_resync() { #ifdef POW_QC uint8_t targetvoltage = 90; - if (systemSettings.QCIdealVoltage == 1) { + if (getSettingValue(SettingsOptions::QCIdealVoltage) == 1) { targetvoltage = 120; - } else if (systemSettings.QCIdealVoltage == 2) { + } else if (getSettingValue(SettingsOptions::QCIdealVoltage) == 2) { targetvoltage = 200; } - seekQC(targetvoltage, systemSettings.voltageDiv); // Run the QC seek again if we have drifted too much + seekQC(targetvoltage, getSettingValue(SettingsOptions::VoltageDiv)); // Run the QC seek again if we have drifted too much #endif } diff --git a/source/Core/Inc/configuration.h b/source/Core/Inc/configuration.h index bbe5ffec..6c692165 100644 --- a/source/Core/Inc/configuration.h +++ b/source/Core/Inc/configuration.h @@ -250,3 +250,9 @@ const uint8_t tipResistance = 45; // x10 ohms, 4.5 typical for ts80 tips const uint32_t tipMass = 45; // TODO const uint8_t tipResistance = 60; // x10 ohms, ~6 typical #endif + +#ifdef POW_QC_20V +#define QC_SETTINGS_MAX 3 +#else +#define QC_SETTINGS_MAX 2 +#endif \ No newline at end of file diff --git a/source/Core/Src/Settings.cpp b/source/Core/Src/Settings.cpp index 9d46554d..6c99d409 100644 --- a/source/Core/Src/Settings.cpp +++ b/source/Core/Src/Settings.cpp @@ -46,7 +46,7 @@ static const SettingConstants settingsConstants[(int)SettingsOptions::SettingsOp {0, 16, 1, 0}, // SleepTime {0, 5, 1, 0}, // MinDCVoltageCells {24, 38, 1, 31}, // MinVoltageCells - {0, 0, 0, 0}, // QCIdealVoltage + {0, QC_SETTINGS_MAX, 1, 0}, // QCIdealVoltage {0, 0, 0, 0}, // OrientationMode {0, 10, 0, 0}, // Sensitivity {0, 1, 1, 1}, // AnimationLoop diff --git a/source/Core/Src/gui.cpp b/source/Core/Src/gui.cpp index 39a030aa..2993d576 100644 --- a/source/Core/Src/gui.cpp +++ b/source/Core/Src/gui.cpp @@ -341,16 +341,7 @@ static bool settings_displayInputMinVRange(void) { } #endif #ifdef POW_QC -static bool settings_setQCInputV(void) { -#ifdef POW_QC_20V - systemSettings.QCIdealVoltage = (systemSettings.QCIdealVoltage + 1) % 3; - - return systemSettings.QCIdealVoltage == 2; -#else - systemSettings.QCIdealVoltage = (systemSettings.QCIdealVoltage + 1) % 2; - return systemSettings.QCIdealVoltage == 1; -#endif -} +static bool settings_setQCInputV(void) { return nextSettingValue(SettingsOptions::QCIdealVoltage); } static bool settings_displayQCInputV(void) { printShortDescription(SettingsItemIndex::QCMaxVoltage, 5); diff --git a/source/Core/Threads/GUIThread.cpp b/source/Core/Threads/GUIThread.cpp index baf7dd39..e5405020 100644 --- a/source/Core/Threads/GUIThread.cpp +++ b/source/Core/Threads/GUIThread.cpp @@ -362,7 +362,7 @@ static int gui_SolderingSleepingMode(bool stayOff, bool autoStarted) { GUIDelay(); #ifdef ACCEL_EXITS_ON_MOVEMENT // If the accel works in reverse where movement will cause exiting the soldering mode - if (systemSettings.sensitivity) { + if (getSettingValue(SettingsOptions::Sensitivity)) { if (lastMovementTime) { if (lastMovementTime > TICKS_SECOND * 10) { // If we have moved recently; in the last second