mirror of
https://github.com/Ralim/IronOS.git
synced 2025-02-26 07:53:55 +00:00
Merge branch 'dev' into Pinecil-PID-tune
Some checks failed
CI / build_multi-lang (Pinecil) (push) Has been cancelled
CI / build (MHP30) (push) Has been cancelled
CI / build (Pinecil) (push) Has been cancelled
CI / build (Pinecilv2) (push) Has been cancelled
CI / build (S60) (push) Has been cancelled
CI / build (S60P) (push) Has been cancelled
CI / build (TS100) (push) Has been cancelled
CI / build (TS101) (push) Has been cancelled
CI / build (TS80) (push) Has been cancelled
CI / build (TS80P) (push) Has been cancelled
CI / build_multi-lang (Pinecilv2) (push) Has been cancelled
CI / tests (push) Has been cancelled
CI / check_c-cpp (push) Has been cancelled
CI / check_python (push) Has been cancelled
CI / check_shell (push) Has been cancelled
CI / check_readme (push) Has been cancelled
CI / upload_metadata (push) Has been cancelled
Some checks failed
CI / build_multi-lang (Pinecil) (push) Has been cancelled
CI / build (MHP30) (push) Has been cancelled
CI / build (Pinecil) (push) Has been cancelled
CI / build (Pinecilv2) (push) Has been cancelled
CI / build (S60) (push) Has been cancelled
CI / build (S60P) (push) Has been cancelled
CI / build (TS100) (push) Has been cancelled
CI / build (TS101) (push) Has been cancelled
CI / build (TS80) (push) Has been cancelled
CI / build (TS80P) (push) Has been cancelled
CI / build_multi-lang (Pinecilv2) (push) Has been cancelled
CI / tests (push) Has been cancelled
CI / check_c-cpp (push) Has been cancelled
CI / check_python (push) Has been cancelled
CI / check_shell (push) Has been cancelled
CI / check_readme (push) Has been cancelled
CI / upload_metadata (push) Has been cancelled
This commit is contained in:
@@ -107,13 +107,13 @@
|
||||
},
|
||||
"menuValues": {
|
||||
"USBPDModeDefault": {
|
||||
"displayText": "Default\nMode"
|
||||
"displayText": "\nРэжым"
|
||||
},
|
||||
"USBPDModeNoDynamic": {
|
||||
"displayText": "No\nDynamic"
|
||||
"displayText": "Няма\nдынамікі"
|
||||
},
|
||||
"USBPDModeSafe": {
|
||||
"displayText": "Safe\nMode"
|
||||
"displayText": "Бяспечны\nрэжым"
|
||||
}
|
||||
},
|
||||
"menuOptions": {
|
||||
@@ -134,7 +134,7 @@
|
||||
"description": "Час чакання ўзгаднення PD з крокам 100 мс для сумяшчальнасці з некаторымі зараднымі зараднымі прыладамі QC (0: адключана)"
|
||||
},
|
||||
"USBPDMode": {
|
||||
"displayText": "PD\nMode",
|
||||
"displayText": "PD\nРэжым",
|
||||
"description": "Уключае рэжымы PPS & EPR."
|
||||
},
|
||||
"BoostTemperature": {
|
||||
@@ -158,59 +158,59 @@
|
||||
"description": "Пры рабоце падоўжаны націск дзьвух кнопак блакуе іх (Т=Толькі турба | П=Поўная блакіроўка)"
|
||||
},
|
||||
"ProfilePhases": {
|
||||
"displayText": "Profile\nPhases",
|
||||
"displayText": "Фазы\nпрофілю",
|
||||
"description": "Колькасць фаз у рэжыме профілю"
|
||||
},
|
||||
"ProfilePreheatTemp": {
|
||||
"displayText": "Preheat\nTemp",
|
||||
"displayText": "Тэмпература\nразагравання",
|
||||
"description": "Разагрэйце да гэтай тэмпературы ў пачатку профільнага рэжыму"
|
||||
},
|
||||
"ProfilePreheatSpeed": {
|
||||
"displayText": "Preheat\nSpeed",
|
||||
"displayText": "Хуткасть\nразагравання",
|
||||
"description": "Разагрэйце з гэтай хуткасцю (градусы ў секунду)"
|
||||
},
|
||||
"ProfilePhase1Temp": {
|
||||
"displayText": "Phase 1\nTemp",
|
||||
"displayText": "Фаза 1\nтэмпература",
|
||||
"description": "Мэтавая тэмпература ў канцы гэтай фазы"
|
||||
},
|
||||
"ProfilePhase1Duration": {
|
||||
"displayText": "Phase 1\nDuration",
|
||||
"displayText": "Фаза 1\nпрацягласць",
|
||||
"description": "Мэтавая працягласць гэтай фазы (секунды)"
|
||||
},
|
||||
"ProfilePhase2Temp": {
|
||||
"displayText": "Phase 2\nTemp",
|
||||
"description": ""
|
||||
"displayText": "Фаза 2\nтэмпература",
|
||||
"description": "Мэтавая тэмпература ў канцы гэтай фазы"
|
||||
},
|
||||
"ProfilePhase2Duration": {
|
||||
"displayText": "Phase 2\nDuration",
|
||||
"description": ""
|
||||
"displayText": "Фаза 2\nпрацягласць",
|
||||
"description": "Мэтавая працягласць гэтай фазы (секунды)"
|
||||
},
|
||||
"ProfilePhase3Temp": {
|
||||
"displayText": "Phase 3\nTemp",
|
||||
"description": ""
|
||||
"displayText": "Фаза 3\nтэмпература",
|
||||
"description": "Мэтавая тэмпература ў канцы гэтай фазы"
|
||||
},
|
||||
"ProfilePhase3Duration": {
|
||||
"displayText": "Phase 3\nDuration",
|
||||
"description": ""
|
||||
"displayText": "Фаза 3\nпрацягласць",
|
||||
"description": "Мэтавая працягласць гэтай фазы (секунды)"
|
||||
},
|
||||
"ProfilePhase4Temp": {
|
||||
"displayText": "Phase 4\nTemp",
|
||||
"description": ""
|
||||
"displayText": "Фаза 4\nтэмпература",
|
||||
"description": "Мэтавая тэмпература ў канцы гэтай фазы"
|
||||
},
|
||||
"ProfilePhase4Duration": {
|
||||
"displayText": "Phase 4\nDuration",
|
||||
"description": ""
|
||||
"displayText": "Фаза 4\nпрацягласць",
|
||||
"description": "Мэтавая працягласць гэтай фазы (секунды)"
|
||||
},
|
||||
"ProfilePhase5Temp": {
|
||||
"displayText": "Phase 5\nTemp",
|
||||
"description": ""
|
||||
"displayText": "Фаза 5\nтэмпература",
|
||||
"description": "Мэтавая тэмпература ў канцы гэтай фазы"
|
||||
},
|
||||
"ProfilePhase5Duration": {
|
||||
"displayText": "Phase 5\nDuration",
|
||||
"description": ""
|
||||
"displayText": "Фаза 5\nпрацягласць",
|
||||
"description": "Мэтавая працягласць гэтай фазы (секунды)"
|
||||
},
|
||||
"ProfileCooldownSpeed": {
|
||||
"displayText": "Cooldown\nSpeed",
|
||||
"displayText": "Хуткасць\nастывання",
|
||||
"description": "Астуджаць з гэтай хуткасцю ў канцы профільнага рэжыму (градусы ў секунду)"
|
||||
},
|
||||
"MotionSensitivity": {
|
||||
|
||||
@@ -107,13 +107,13 @@
|
||||
},
|
||||
"menuValues": {
|
||||
"USBPDModeDefault": {
|
||||
"displayText": "Default\nMode"
|
||||
"displayText": "Вкл.\nPPSиERP"
|
||||
},
|
||||
"USBPDModeNoDynamic": {
|
||||
"displayText": "No\nDynamic"
|
||||
"displayText": "Изкл.\n"
|
||||
},
|
||||
"USBPDModeSafe": {
|
||||
"displayText": "Safe\nMode"
|
||||
"displayText": "Вкл.без\nискане"
|
||||
}
|
||||
},
|
||||
"menuOptions": {
|
||||
@@ -134,8 +134,8 @@
|
||||
"description": "PD интервал за договаряне на захранването на стъпки от 100 мс за съвместимост с някои QC захранвания (0=Изкл.)"
|
||||
},
|
||||
"USBPDMode": {
|
||||
"displayText": "PD\nMode",
|
||||
"description": "Включи PPS & EPR"
|
||||
"displayText": "PD\nрежим",
|
||||
"description": "Вкл.без искане: включи PPS и EPR без да искате повече мощност"
|
||||
},
|
||||
"BoostTemperature": {
|
||||
"displayText": "Турбо\nтемп.",
|
||||
|
||||
@@ -107,13 +107,13 @@
|
||||
},
|
||||
"menuValues": {
|
||||
"USBPDModeDefault": {
|
||||
"displayText": "Default\nMode"
|
||||
"displayText": "Modo\npredefinito"
|
||||
},
|
||||
"USBPDModeNoDynamic": {
|
||||
"displayText": "No\nDynamic"
|
||||
"displayText": "Modo\nstatico"
|
||||
},
|
||||
"USBPDModeSafe": {
|
||||
"displayText": "Safe\nMode"
|
||||
"displayText": "Modo\nsicuro"
|
||||
}
|
||||
},
|
||||
"menuOptions": {
|
||||
|
||||
@@ -107,13 +107,13 @@
|
||||
},
|
||||
"menuValues": {
|
||||
"USBPDModeDefault": {
|
||||
"displayText": "Default\nMode"
|
||||
"displayText": "Вкл.\nPPSиEPR"
|
||||
},
|
||||
"USBPDModeNoDynamic": {
|
||||
"displayText": "No\nDynamic"
|
||||
"displayText": "Откл.\n"
|
||||
},
|
||||
"USBPDModeSafe": {
|
||||
"displayText": "Safe\nMode"
|
||||
"displayText": "Вкл.без\nзапроса"
|
||||
}
|
||||
},
|
||||
"menuOptions": {
|
||||
@@ -130,12 +130,12 @@
|
||||
"description": "Максимальное напряжение для согласования с источником питания по QC"
|
||||
},
|
||||
"PDNegTimeout": {
|
||||
"displayText": "PD\nинтервал",
|
||||
"displayText": "Интервал\nPD",
|
||||
"description": "Интервал согласования питания по Power Delivery с шагом 100 мс для совместимости с некоторыми источниками питания по QC (0=Откл.)"
|
||||
},
|
||||
"USBPDMode": {
|
||||
"displayText": "PD\nMode",
|
||||
"description": "Включить режимы PPS & EPR"
|
||||
"displayText": "Режим\nPD",
|
||||
"description": "Вкл.без запроса: включить PPS и EPR без запроса большей мощности"
|
||||
},
|
||||
"BoostTemperature": {
|
||||
"displayText": "t° турбо\nрежима",
|
||||
|
||||
@@ -107,13 +107,13 @@
|
||||
},
|
||||
"menuValues": {
|
||||
"USBPDModeDefault": {
|
||||
"displayText": "Default\nMode"
|
||||
"displayText": "Режим\nЗамовчуванню"
|
||||
},
|
||||
"USBPDModeNoDynamic": {
|
||||
"displayText": "No\nDynamic"
|
||||
"displayText": "Без\nДинамічного"
|
||||
},
|
||||
"USBPDModeSafe": {
|
||||
"displayText": "Safe\nMode"
|
||||
"displayText": "Безпечний\nРежим"
|
||||
}
|
||||
},
|
||||
"menuOptions": {
|
||||
|
||||
@@ -105,7 +105,7 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
|
||||
if (PWMSafetyTimer == 0) {
|
||||
htim4.Instance->CCR3 = 0;
|
||||
} else {
|
||||
htim4.Instance->CCR3 = pendingPWM;
|
||||
htim4.Instance->CCR3 = pendingPWM / 4;
|
||||
}
|
||||
} else if (htim->Instance == TIM1) {
|
||||
// STM uses this for internal functions as a counter for timeouts
|
||||
@@ -57,7 +57,7 @@ void Setup_HAL() {
|
||||
GPIO_InitStruct.Pin = MOVEMENT_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; // We would like sharp rising edges
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
HAL_GPIO_Init(MOVEMENT_GPIO_Port, &GPIO_InitStruct);
|
||||
}
|
||||
}
|
||||
@@ -254,23 +254,20 @@ static void MX_IWDG_Init(void) {
|
||||
|
||||
static void MX_TIM4_Init(void) {
|
||||
/*
|
||||
* We use the channel 1 to trigger the ADC at end of PWM period
|
||||
* And we use the channel 4 as the PWM modulation source using Interrupts
|
||||
* On Sequre devies we run the output PWM as fast as possible due to the low tip resistance + no inductor for filtering.
|
||||
* So we run it as fast as we can and hope that the caps filter out the current spikes.
|
||||
* */
|
||||
TIM_ClockConfigTypeDef sClockSourceConfig;
|
||||
TIM_MasterConfigTypeDef sMasterConfig;
|
||||
TIM_OC_InitTypeDef sConfigOC;
|
||||
memset(&sConfigOC, 0, sizeof(sConfigOC));
|
||||
// Timer 2 is fairly slow as its being used to run the PWM and trigger the ADC
|
||||
// in the PWM off time.
|
||||
|
||||
htim4.Instance = TIM4;
|
||||
// dummy value, will be reconfigured by BSPInit()
|
||||
htim4.Init.Prescaler = 10; // 2 MHz timer clock/1000 = 2 kHz tick rate
|
||||
htim4.Init.Prescaler = 10; // 2 MHz timer clock/10 = 200 kHz tick rate
|
||||
|
||||
// pwm out is 10k from tim3, we want to run our PWM at around 10hz or slower on the output stage
|
||||
// These values give a rate of around 3.5 Hz for "fast" mode and 1.84 Hz for "slow"
|
||||
htim4.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||
htim4.Init.Period = 255;
|
||||
htim4.Init.Period = 64;
|
||||
|
||||
htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; // 8 MHz (x2 APB1) before divide
|
||||
htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||
@@ -148,7 +148,7 @@
|
||||
|
||||
#define HARDWARE_MAX_WATTAGE_X10 600
|
||||
|
||||
#define TIP_THERMAL_MASS 8 // X10 watts to raise 1 deg C in 1 second
|
||||
#define TIP_THERMAL_MASS 10 // X10 watts to raise 1 deg C in 1 second
|
||||
#define TIP_THERMAL_INERTIA 128 // We use a large inertia value to smooth out the drive to the tip since its stupidly sensitive
|
||||
|
||||
#define TIP_RESISTANCE 20 //(actually 2.5 ish but we need to be more conservative on pwm'ing watt limit) x10 ohms
|
||||
@@ -162,6 +162,7 @@
|
||||
#define TEMP_NTC
|
||||
#define I2C_SOFT_BUS_2 // For now we are doing software I2C to get around hardware chip issues
|
||||
#define OLED_I2CBB2
|
||||
#define FILTER_DISPLAYED_TIP_TEMP 4 // Filtering for GUI display
|
||||
|
||||
#define MODEL_HAS_DCDC // We dont have DC/DC but have reallly fast PWM that gets us roughly the same place
|
||||
#endif /* S60 */
|
||||
@@ -179,7 +180,7 @@
|
||||
|
||||
#define HARDWARE_MAX_WATTAGE_X10 600
|
||||
|
||||
#define TIP_THERMAL_MASS 8 // X10 watts to raise 1 deg C in 1 second
|
||||
#define TIP_THERMAL_MASS 10 // X10 watts to raise 1 deg C in 1 second
|
||||
#define TIP_THERMAL_INERTIA 128 // We use a large inertia value to smooth out the drive to the tip since its stupidly sensitive
|
||||
|
||||
#define TIP_RESISTANCE 20 //(actually 2.5 ish but we need to be more conservative on pwm'ing watt limit) x10 ohms
|
||||
@@ -193,6 +194,7 @@
|
||||
#define TEMP_NTC
|
||||
#define I2C_SOFT_BUS_2 // For now we are doing software I2C to get around hardware chip issues
|
||||
#define OLED_I2CBB2
|
||||
#define FILTER_DISPLAYED_TIP_TEMP 4 // Filtering for GUI display
|
||||
|
||||
#define MODEL_HAS_DCDC // We dont have DC/DC but have reallly fast PWM that gets us roughly the same place
|
||||
#endif /* S60P */
|
||||
@@ -158,7 +158,7 @@ void FS2711::negotiate() {
|
||||
// FS2711 uses mV instead of V
|
||||
const uint16_t vmax = USB_PD_VMAX * 1000;
|
||||
uint8_t tip_resistance = getTipResistanceX10();
|
||||
if (getSettingValue(SettingsOptions::USBPDMode) == 1) {
|
||||
if (getSettingValue(SettingsOptions::USBPDMode) == usbpdMode_t::DEFAULT) {
|
||||
tip_resistance += 5;
|
||||
}
|
||||
|
||||
|
||||
@@ -136,6 +136,7 @@ public:
|
||||
static void drawBattery(uint8_t state) { drawSymbol(3 + (state > 10 ? 10 : state)); }
|
||||
// Draws a checkbox
|
||||
static void drawCheckbox(bool state) { drawSymbol((state) ? 16 : 17); }
|
||||
inline static void drawUnavailableIcon() { drawArea(OLED_WIDTH - 16 - 2, 0, 16, 16, UnavailableIcon); }
|
||||
static void debugNumber(int32_t val, FontStyle fontStyle);
|
||||
static void drawHex(uint32_t x, FontStyle fontStyle, uint8_t digits);
|
||||
static void drawSymbol(uint8_t symbolID); // Used for drawing symbols of a predictable width
|
||||
|
||||
@@ -136,7 +136,7 @@ bool parseCapabilitiesArray(const uint8_t numCaps, uint8_t *bestIndex, uint16_t
|
||||
|
||||
// Fudge of 0.5 ohms to round up a little to account for us always having off periods in PWM
|
||||
uint8_t tipResistance = getTipResistanceX10();
|
||||
if (getSettingValue(SettingsOptions::USBPDMode) == 1) {
|
||||
if (getSettingValue(SettingsOptions::USBPDMode) == usbpdMode_t::DEFAULT) {
|
||||
tipResistance += 5;
|
||||
}
|
||||
#ifdef MODEL_HAS_DCDC
|
||||
|
||||
@@ -23,7 +23,7 @@ int32_t Utils::LinearInterpolate(int32_t x1, int32_t y1, int32_t x2, int32_t y2,
|
||||
|
||||
uint16_t Utils::RequiredCurrentForTipAtVoltage(uint16_t voltageX10) {
|
||||
uint8_t tipResistancex10 = getTipResistanceX10();
|
||||
if (getSettingValue(SettingsOptions::USBPDMode) == 1) {
|
||||
if (getSettingValue(SettingsOptions::USBPDMode) == usbpdMode_t::DEFAULT) {
|
||||
tipResistancex10 += 5;
|
||||
}
|
||||
#ifdef MODEL_HAS_DCDC
|
||||
@@ -34,4 +34,4 @@ uint16_t Utils::RequiredCurrentForTipAtVoltage(uint16_t voltageX10) {
|
||||
// V/R = I
|
||||
uint16_t currentX10 = (voltageX10 * 10) / tipResistancex10;
|
||||
return currentX10;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,6 +104,12 @@ typedef enum {
|
||||
INFINITY = 6, // Show boot logo on repeat (if animated) until a button toggled
|
||||
} logoMode_t;
|
||||
|
||||
typedef enum {
|
||||
DEFAULT = 1, // PPS + EPR + more power request through increasing resistance by 0.5 Ohm to compensate power loss over cable/PCB/etc.
|
||||
SAFE = 2, // PPS + EPR, without requesting more power
|
||||
NO_DYNAMIC = 0, // PPS + EPR disabled, fixed PDO only
|
||||
} usbpdMode_t;
|
||||
|
||||
// Settings wide operations
|
||||
void saveSettings();
|
||||
bool loadSettings();
|
||||
|
||||
@@ -522,28 +522,25 @@ static void displayQCInputV(void) {
|
||||
|
||||
static void displayPDNegTimeout(void) {
|
||||
auto value = getSettingValue(SettingsOptions::PDNegTimeout);
|
||||
if (value == 0) {
|
||||
OLED::drawArea(OLED_WIDTH - 16 - 2, 0, 16, 16, UnavailableIcon);
|
||||
} else {
|
||||
OLED::printNumber(value, 2, FontStyle::LARGE);
|
||||
}
|
||||
value ? OLED::printNumber(value, 2, FontStyle::LARGE) : OLED::drawUnavailableIcon();
|
||||
}
|
||||
|
||||
static void displayUSBPDMode(void) {
|
||||
/*
|
||||
* PD Mode
|
||||
* 0 = Safe mode, no PPS, no EPR
|
||||
* 1 = Default mode, tolerant + PPS + EPR
|
||||
* 2 = Strict mode + PPS + EPR
|
||||
* Supported PD modes:
|
||||
* DEFAULT, 1 = PPS + EPR + more power request through increasing resistance by 0.5 Ohm to compensate power loss over cable/PCB/etc.
|
||||
* SAFE, 2 = PPS + EPR, without requesting more power
|
||||
* NO_DYNAMIC, 0 = PPS + EPR disabled, fixed PDO only
|
||||
*/
|
||||
|
||||
switch (getSettingValue(SettingsOptions::USBPDMode)) {
|
||||
case 1:
|
||||
case usbpdMode_t::DEFAULT:
|
||||
OLED::print(translatedString(Tr->USBPDModeDefault), FontStyle::SMALL, 255, OLED::getCursorX());
|
||||
break;
|
||||
case 2:
|
||||
case usbpdMode_t::SAFE:
|
||||
OLED::print(translatedString(Tr->USBPDModeSafe), FontStyle::SMALL, 255, OLED::getCursorX());
|
||||
break;
|
||||
case usbpdMode_t::NO_DYNAMIC:
|
||||
default:
|
||||
OLED::print(translatedString(Tr->USBPDModeNoDynamic), FontStyle::SMALL, 255, OLED::getCursorX());
|
||||
break;
|
||||
@@ -582,14 +579,14 @@ static void displayBoostTemp(void) {
|
||||
if (getSettingValue(SettingsOptions::BoostTemp)) {
|
||||
OLED::printNumber(getSettingValue(SettingsOptions::BoostTemp), 3, FontStyle::LARGE);
|
||||
} else {
|
||||
OLED::drawArea(OLED_WIDTH - 16 - 2, 0, 16, 16, UnavailableIcon);
|
||||
OLED::drawUnavailableIcon();
|
||||
}
|
||||
}
|
||||
|
||||
static void displayAutomaticStartMode(void) {
|
||||
switch (getSettingValue(SettingsOptions::AutoStartMode)) {
|
||||
case autoStartMode_t::NO:
|
||||
OLED::drawArea(OLED_WIDTH - 16 - 2, 0, 16, 16, UnavailableIcon);
|
||||
OLED::drawUnavailableIcon();
|
||||
break;
|
||||
case autoStartMode_t::SOLDER:
|
||||
OLED::print(translatedString(Tr->SettingStartSolderingChar), FontStyle::LARGE);
|
||||
@@ -601,7 +598,7 @@ static void displayAutomaticStartMode(void) {
|
||||
OLED::print(translatedString(Tr->SettingStartSleepOffChar), FontStyle::LARGE);
|
||||
break;
|
||||
default:
|
||||
OLED::drawArea(OLED_WIDTH - 16 - 2, 0, 16, 16, UnavailableIcon);
|
||||
OLED::drawUnavailableIcon();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -613,7 +610,7 @@ static void displayTempChangeLongStep(void) { OLED::printNumber(getSettingValue(
|
||||
static void displayLockingMode(void) {
|
||||
switch (getSettingValue(SettingsOptions::LockingMode)) {
|
||||
case 0:
|
||||
OLED::drawArea(OLED_WIDTH - 16 - 2, 0, 16, 16, UnavailableIcon);
|
||||
OLED::drawUnavailableIcon();
|
||||
break;
|
||||
case 1:
|
||||
OLED::print(translatedString(Tr->SettingLockBoostChar), FontStyle::LARGE);
|
||||
@@ -622,7 +619,7 @@ static void displayLockingMode(void) {
|
||||
OLED::print(translatedString(Tr->SettingLockFullChar), FontStyle::LARGE);
|
||||
break;
|
||||
default:
|
||||
OLED::drawArea(OLED_WIDTH - 16 - 2, 0, 16, 16, UnavailableIcon);
|
||||
OLED::drawUnavailableIcon();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -682,7 +679,7 @@ static void displaySensitivity(void) {
|
||||
if (getSettingValue(SettingsOptions::Sensitivity)) {
|
||||
OLED::printNumber(getSettingValue(SettingsOptions::Sensitivity), 1, FontStyle::LARGE, false);
|
||||
} else {
|
||||
OLED::drawArea(OLED_WIDTH - 16 - 2, 0, 16, 16, UnavailableIcon);
|
||||
OLED::drawUnavailableIcon();
|
||||
}
|
||||
}
|
||||
static bool showSleepOptions(void) { return getSettingValue(SettingsOptions::Sensitivity) > 0; }
|
||||
@@ -711,7 +708,7 @@ static void displaySleepTemp(void) { OLED::printNumber(getSettingValue(SettingsO
|
||||
|
||||
static void displaySleepTime(void) {
|
||||
if (getSettingValue(SettingsOptions::SleepTime) == 0) {
|
||||
OLED::drawArea(OLED_WIDTH - 16 - 2, 0, 16, 16, UnavailableIcon);
|
||||
OLED::drawUnavailableIcon();
|
||||
} else if (getSettingValue(SettingsOptions::SleepTime) < 6) {
|
||||
OLED::printNumber(getSettingValue(SettingsOptions::SleepTime) * 10, 2, FontStyle::LARGE);
|
||||
OLED::print(LargeSymbolSeconds, FontStyle::LARGE);
|
||||
@@ -725,7 +722,7 @@ static void displaySleepTime(void) {
|
||||
|
||||
static void displayShutdownTime(void) {
|
||||
if (getSettingValue(SettingsOptions::ShutdownTime) == 0) {
|
||||
OLED::drawArea(OLED_WIDTH - 16 - 2, 0, 16, 16, UnavailableIcon);
|
||||
OLED::drawUnavailableIcon();
|
||||
} else {
|
||||
OLED::printNumber(getSettingValue(SettingsOptions::ShutdownTime), 2, FontStyle::LARGE);
|
||||
OLED::print(LargeSymbolMinutes, FontStyle::LARGE);
|
||||
@@ -737,7 +734,7 @@ static void displayHallEffect(void) {
|
||||
if (getSettingValue(SettingsOptions::HallEffectSensitivity)) {
|
||||
OLED::printNumber(getSettingValue(SettingsOptions::HallEffectSensitivity), 1, FontStyle::LARGE, false);
|
||||
} else {
|
||||
OLED::drawArea(OLED_WIDTH - 16 - 2, 0, 16, 16, UnavailableIcon);
|
||||
OLED::drawUnavailableIcon();
|
||||
}
|
||||
}
|
||||
static bool showHallEffect(void) { return getHallSensorFitted(); }
|
||||
@@ -835,7 +832,7 @@ static void displayAnimationSpeed(void) {
|
||||
OLED::print(translatedString(Tr->SettingFastChar), FontStyle::LARGE);
|
||||
break;
|
||||
default:
|
||||
OLED::drawArea(OLED_WIDTH - 16 - 2, 0, 16, 16, UnavailableIcon);
|
||||
OLED::drawUnavailableIcon();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -858,7 +855,7 @@ static void displayInvertColor(void) {
|
||||
static void displayLogoTime(void) {
|
||||
switch (getSettingValue(SettingsOptions::LOGOTime)) {
|
||||
case logoMode_t::SKIP:
|
||||
OLED::drawArea(OLED_WIDTH - 16 - 2, 0, 16, 16, UnavailableIcon);
|
||||
OLED::drawUnavailableIcon();
|
||||
break;
|
||||
case logoMode_t::ONETIME:
|
||||
OLED::drawArea(OLED_WIDTH - 16 - 2, 0, 16, 16, RepeatOnce);
|
||||
@@ -883,7 +880,7 @@ static void displayBluetoothLE(void) { OLED::drawCheckbox(getSettingValue(Settin
|
||||
|
||||
static void displayPowerLimit(void) {
|
||||
if (getSettingValue(SettingsOptions::PowerLimit) == 0) {
|
||||
OLED::drawArea(OLED_WIDTH - 16 - 2, 0, 16, 16, UnavailableIcon);
|
||||
OLED::drawUnavailableIcon();
|
||||
} else {
|
||||
OLED::printNumber(getSettingValue(SettingsOptions::PowerLimit), 3, FontStyle::LARGE);
|
||||
OLED::print(LargeSymbolWatts, FontStyle::LARGE);
|
||||
@@ -951,7 +948,7 @@ static void displayPowerPulse(void) {
|
||||
OLED::print(LargeSymbolDot, FontStyle::LARGE);
|
||||
OLED::printNumber(getSettingValue(SettingsOptions::KeepAwakePulse) % 10, 1, FontStyle::LARGE);
|
||||
} else {
|
||||
OLED::drawArea(OLED_WIDTH - 16 - 2, 0, 16, 16, UnavailableIcon);
|
||||
OLED::drawUnavailableIcon();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -118,9 +118,9 @@ endif # ALL_MINIWARE_MODELS
|
||||
ifeq ($(model),$(filter $(model),$(ALL_SEQURE_MODELS)))
|
||||
$(info Building for Sequre )
|
||||
|
||||
DEVICE_BSP_DIR=./Core/BSP/Sequre_S60
|
||||
S_SRCS:=$(shell find $(S60_STARTUP_DIR) -type f -name '*.S')
|
||||
LDSCRIPT=./Core/BSP/Sequre_S60/stm32f103.ld
|
||||
DEVICE_BSP_DIR=./Core/BSP/Sequre
|
||||
S_SRCS:=$(shell find $(DEVICE_BSP_DIR) -type f -name '*.S')
|
||||
LDSCRIPT=./Core/BSP/Sequre/stm32f103.ld
|
||||
DEV_GLOBAL_DEFS=-D STM32F103T8Ux \
|
||||
-D STM32F1 \
|
||||
-D STM32 \
|
||||
|
||||
Reference in New Issue
Block a user