mirror of
https://github.com/Ralim/IronOS.git
synced 2025-02-26 07:53:55 +00:00
Merge branch 'patch-2' of github.com:resistancelion/IronOS into rl-menubuttons
This commit is contained in:
@@ -495,7 +495,7 @@ static __INLINE q63_t mult32x64(q63_t x, q31_t y) { return ((((q63_t)(x & 0x0000
|
||||
/*
|
||||
#if defined (ARM_MATH_CM0_FAMILY) && defined ( __CC_ARM )
|
||||
#define __CLZ __clz
|
||||
#endif
|
||||
#endif
|
||||
*/
|
||||
/* note: function can be removed when all toolchain support __CLZ for Cortex-M0 */
|
||||
#if defined(ARM_MATH_CM0_FAMILY) && ((defined(__ICCARM__)))
|
||||
|
||||
@@ -36,9 +36,9 @@
|
||||
* \code
|
||||
* #if defined(__NMSIS_VERSION) && (__NMSIS_VERSION >= 0x00010105)
|
||||
* #warning "Yes, we have NMSIS 1.1.5 or later"
|
||||
* #else
|
||||
* #else
|
||||
* #error "We need NMSIS 1.1.5 or later!"
|
||||
* #endif
|
||||
* #endif
|
||||
* \endcode
|
||||
*
|
||||
* @{
|
||||
|
||||
@@ -206,7 +206,7 @@ typedef enum IRQn {
|
||||
#ifdef NMSIS_ECLIC_VIRTUAL
|
||||
#ifndef NMSIS_ECLIC_VIRTUAL_HEADER_FILE
|
||||
#define NMSIS_ECLIC_VIRTUAL_HEADER_FILE "nmsis_eclic_virtual.h"
|
||||
#endif
|
||||
#endif
|
||||
#include NMSIS_ECLIC_VIRTUAL_HEADER_FILE
|
||||
#else
|
||||
#define ECLIC_SetCfgNlbits __ECLIC_SetCfgNlbits
|
||||
@@ -238,7 +238,7 @@ typedef enum IRQn {
|
||||
#ifdef NMSIS_VECTAB_VIRTUAL
|
||||
#ifndef NMSIS_VECTAB_VIRTUAL_HEADER_FILE
|
||||
#define NMSIS_VECTAB_VIRTUAL_HEADER_FILE "nmsis_vectab_virtual.h"
|
||||
#endif
|
||||
#endif
|
||||
#include NMSIS_VECTAB_VIRTUAL_HEADER_FILE
|
||||
#else
|
||||
#define ECLIC_SetVector __ECLIC_SetVector
|
||||
|
||||
@@ -36,9 +36,9 @@
|
||||
* \code
|
||||
* #if defined(__NMSIS_VERSION) && (__NMSIS_VERSION >= 0x00010105)
|
||||
* #warning "Yes, we have NMSIS 1.1.5 or later"
|
||||
* #else
|
||||
* #else
|
||||
* #error "We need NMSIS 1.1.5 or later!"
|
||||
* #endif
|
||||
* #endif
|
||||
* \endcode
|
||||
*
|
||||
* @{
|
||||
|
||||
@@ -495,7 +495,7 @@ static __INLINE q63_t mult32x64(q63_t x, q31_t y) { return ((((q63_t)(x & 0x0000
|
||||
/*
|
||||
#if defined (ARM_MATH_CM0_FAMILY) && defined ( __CC_ARM )
|
||||
#define __CLZ __clz
|
||||
#endif
|
||||
#endif
|
||||
*/
|
||||
/* note: function can be removed when all toolchain support __CLZ for Cortex-M0 */
|
||||
#if defined(ARM_MATH_CM0_FAMILY) && ((defined(__ICCARM__)))
|
||||
|
||||
@@ -168,7 +168,7 @@
|
||||
0x03, 0x07, 0x0e, 0x1c, 0x38, 0x70, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||
#endif
|
||||
#endif
|
||||
|
||||
const uint8_t buttonB[] = {
|
||||
// width = 56
|
||||
@@ -356,7 +356,7 @@
|
||||
0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x2b, 0x09, 0x07, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x04, 0x04, 0x02, 0x01,
|
||||
}
|
||||
};
|
||||
#else
|
||||
#else
|
||||
#if defined(MODEL_TS100) || defined(MODEL_Pinecil) || defined(MODEL_Pinecilv2)
|
||||
const uint8_t buttonA[] = {
|
||||
// width = 42
|
||||
@@ -401,7 +401,7 @@
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0xd0, 0xc8, 0x08, 0x10, 0x10, 0x10, 0x10,
|
||||
0x20, 0x20, 0x20, 0x40, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x38, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x04, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||
#endif
|
||||
#endif
|
||||
|
||||
const uint8_t buttonB[] = {
|
||||
// width = 42
|
||||
@@ -578,8 +578,8 @@
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE8, 0x70, 0x7A, 0x5E, 0x8E, 0x1C, 0x30, 0x00, //
|
||||
0x00, 0x10, 0x38, 0x1C, 0x0E, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //
|
||||
|
||||
#endif
|
||||
};
|
||||
#endif
|
||||
};
|
||||
#endif
|
||||
// clang-format on
|
||||
#endif /* FONT_H_ */
|
||||
@@ -47,36 +47,36 @@ enum SettingsOptions {
|
||||
CalibrationOffset = 23, // This stores the temperature offset for this tip in the iron.
|
||||
PowerLimit = 24, // Maximum power iron allowed to output
|
||||
ReverseButtonTempChangeEnabled = 25, // Change the plus and minus button assigment
|
||||
ReverseButtonNavEnabled = 26, // Change the A and B button assigment in menus
|
||||
TempChangeLongStep = 27, // Temperature-change-increment on long button press
|
||||
TempChangeShortStep = 28, // Temperature-change-increment on short button press
|
||||
HallEffectSensitivity = 29, // Operating mode of the hall effect sensor
|
||||
AccelMissingWarningCounter = 30, // Counter of how many times we have warned we cannot detect the accelerometer
|
||||
PDMissingWarningCounter = 31, // Counter of how many times we have warned we cannot detect the pd interface
|
||||
UILanguage = 32, // Selected UI Language code, null-terminated *only if* the length is less than 8 chars
|
||||
PDNegTimeout = 33, // PD timeout in 100ms steps
|
||||
OLEDInversion = 34, // Invert the colours on the display
|
||||
OLEDBrightness = 35, // Brightness for the OLED display
|
||||
LOGOTime = 36, // Duration the logo will be displayed for
|
||||
CalibrateCJC = 37, // Toggle calibrate CJC at next boot
|
||||
BluetoothLE = 38, // Toggle BLE if present
|
||||
USBPDMode = 39, // Toggle PPS & EPR
|
||||
ProfilePhases = 40, // Number of profile mode phases
|
||||
ProfilePreheatTemp = 41, // Temperature to preheat to before the first phase
|
||||
ProfilePreheatSpeed = 42, // Maximum allowed preheat speed in degrees per second
|
||||
ProfilePhase1Temp = 43, // Temperature to target for the end of phase 1
|
||||
ProfilePhase1Duration = 44, // Target duration for phase 1
|
||||
ProfilePhase2Temp = 45, // Temperature to target for the end of phase 2
|
||||
ProfilePhase2Duration = 46, // Target duration for phase 2
|
||||
ProfilePhase3Temp = 47, // Temperature to target for the end of phase 3
|
||||
ProfilePhase3Duration = 48, // Target duration for phase 3
|
||||
ProfilePhase4Temp = 49, // Temperature to target for the end of phase 4
|
||||
ProfilePhase4Duration = 50, // Target duration for phase 4
|
||||
ProfilePhase5Temp = 51, // Temperature to target for the end of phase 5
|
||||
ProfilePhase5Duration = 52, // Target duration for phase 5
|
||||
ProfileCooldownSpeed = 53, // Maximum allowed cooldown speed in degrees per second
|
||||
HallEffectSleepTime = 54, // Seconds (/5) timeout to sleep when hall effect over threshold
|
||||
SolderingTipType = 55, // Selecting the type of soldering tip fitted
|
||||
TempChangeLongStep = 26, // Temperature-change-increment on long button press
|
||||
TempChangeShortStep = 27, // Temperature-change-increment on short button press
|
||||
HallEffectSensitivity = 28, // Operating mode of the hall effect sensor
|
||||
AccelMissingWarningCounter = 29, // Counter of how many times we have warned we cannot detect the accelerometer
|
||||
PDMissingWarningCounter = 30, // Counter of how many times we have warned we cannot detect the pd interface
|
||||
UILanguage = 31, // Selected UI Language code, null-terminated *only if* the length is less than 8 chars
|
||||
PDNegTimeout = 32, // PD timeout in 100ms steps
|
||||
OLEDInversion = 33, // Invert the colours on the display
|
||||
OLEDBrightness = 34, // Brightness for the OLED display
|
||||
LOGOTime = 35, // Duration the logo will be displayed for
|
||||
CalibrateCJC = 36, // Toggle calibrate CJC at next boot
|
||||
BluetoothLE = 37, // Toggle BLE if present
|
||||
USBPDMode = 38, // Toggle PPS & EPR
|
||||
ProfilePhases = 39, // Number of profile mode phases
|
||||
ProfilePreheatTemp = 40, // Temperature to preheat to before the first phase
|
||||
ProfilePreheatSpeed = 41, // Maximum allowed preheat speed in degrees per second
|
||||
ProfilePhase1Temp = 42, // Temperature to target for the end of phase 1
|
||||
ProfilePhase1Duration = 43, // Target duration for phase 1
|
||||
ProfilePhase2Temp = 44, // Temperature to target for the end of phase 2
|
||||
ProfilePhase2Duration = 45, // Target duration for phase 2
|
||||
ProfilePhase3Temp = 46, // Temperature to target for the end of phase 3
|
||||
ProfilePhase3Duration = 47, // Target duration for phase 3
|
||||
ProfilePhase4Temp = 48, // Temperature to target for the end of phase 4
|
||||
ProfilePhase4Duration = 49, // Target duration for phase 4
|
||||
ProfilePhase5Temp = 50, // Temperature to target for the end of phase 5
|
||||
ProfilePhase5Duration = 51, // Target duration for phase 5
|
||||
ProfileCooldownSpeed = 52, // Maximum allowed cooldown speed in degrees per second
|
||||
HallEffectSleepTime = 53, // Seconds (/5) timeout to sleep when hall effect over threshold
|
||||
SolderingTipType = 54, // Selecting the type of soldering tip fitted
|
||||
ReverseButtonNavEnabled = 55, // Change the A and B button assigment in menus
|
||||
//
|
||||
SettingsOptionsLength = 56, // End marker
|
||||
};
|
||||
|
||||
@@ -45,9 +45,13 @@ OperatingMode guiHandleDraw(void) {
|
||||
OLED::clearScreen(); // Clear ready for render pass
|
||||
bool d = getSettingValue(SettingsOptions::ReverseButtonNavEnabled);
|
||||
bool e = getSettingValue(SettingsOptions::ReverseButtonTempChangeEnabled);
|
||||
#ifdef REVERSE_NAV_EVERYWHERE
|
||||
bool f = currentOperatingMode == OperatingMode::TemperatureAdjust;
|
||||
// Read button state
|
||||
ButtonState buttons = getButtonState((e && f) || (d && !e && !f) || (d && e && !f));
|
||||
#else
|
||||
ButtonState buttons = getButtonState();
|
||||
#endif
|
||||
// Enforce screen on if buttons pressed, movement, hot tip etc
|
||||
if (buttons != BUTTON_NONE) {
|
||||
OLED::setDisplayState(OLED::DisplayState::ON);
|
||||
@@ -113,7 +117,11 @@ OperatingMode guiHandleDraw(void) {
|
||||
newMode = gui_SolderingSleepingMode(buttons, &context);
|
||||
break;
|
||||
case OperatingMode::TemperatureAdjust:
|
||||
newMode = gui_solderingTempAdjust(buttons, &context);
|
||||
#ifdef REVERSE_NAV_EVERYWHERE
|
||||
newMode = gui_solderingTempAdjust(getButtonState(), &context);
|
||||
#else
|
||||
newMode = gui_solderingTempAdjust(getButtonState(e), &context);
|
||||
#endif
|
||||
break;
|
||||
case OperatingMode::DebugMenuReadout:
|
||||
newMode = showDebugMenu(buttons, &context);
|
||||
@@ -122,7 +130,11 @@ OperatingMode guiHandleDraw(void) {
|
||||
newMode = performCJCC(buttons, &context);
|
||||
break;
|
||||
case OperatingMode::SettingsMenu:
|
||||
newMode = gui_SettingsMenu(buttons, &context);
|
||||
#ifdef REVERSE_NAV_EVERYWHERE
|
||||
newMode = gui_SettingsMenu(getButtonState(), &context);
|
||||
#else
|
||||
newMode = gui_SettingsMenu(getButtonState(d), &context);
|
||||
#endif
|
||||
break;
|
||||
case OperatingMode::InitialisationDone:
|
||||
newMode = handle_post_init_state();
|
||||
|
||||
@@ -8,27 +8,43 @@ extern uint8_t disconnectedTipF[sizeof(disconnectedTip)];
|
||||
|
||||
void ui_draw_homescreen_simplified(TemperatureType_t tipTemp) {
|
||||
bool isFlipped = OLED::getRotation();
|
||||
bool isReverse = getSettingValue(SettingsOptions::ReverseButtonNavEnabled);
|
||||
bool tipDisconnected = isTipDisconnected();
|
||||
#ifdef REVERSE_NAV_EVERYWHERE
|
||||
bool isReverse = getSettingValue(SettingsOptions::ReverseButtonNavEnabled);
|
||||
#endif
|
||||
|
||||
// Flip and switch buttons accordingly
|
||||
#ifdef REVERSE_NAV_EVERYWHERE
|
||||
OLED::drawArea(isFlipped ? 68 : 0, 0, 56, 32, isFlipped ? (isReverse ? buttonBF : buttonAF) : (isReverse ? buttonB : buttonA));
|
||||
OLED::drawArea(isFlipped ? 12 : 58, 0, 56, 32, isFlipped ? (isReverse ? buttonAF : buttonBF) : (isReverse ? buttonA : buttonB));
|
||||
#else
|
||||
OLED::drawArea(isFlipped ? 68 : 0, 0, 56, 32, isFlipped ? buttonAF : buttonA);
|
||||
OLED::drawArea(isFlipped ? 12 : 58, 0, 56, 32, isFlipped ? buttonBF : buttonB);
|
||||
#endif
|
||||
|
||||
if ((tipTemp > 55) || tipDisconnected) {
|
||||
// draw temp over the start soldering button
|
||||
// Location changes on screen rotation and due to button swapping
|
||||
// in right handed mode we want to draw over the first part
|
||||
#ifdef REVERSE_NAV_EVERYWHERE
|
||||
OLED::fillArea(isReverse ? (isFlipped ? 26 : 58) : (isFlipped ? 68 : 0), 0, 56, 32, 0); // clear the area
|
||||
OLED::setCursor(isReverse ? (isFlipped ? 27 : 59) : (isFlipped ? 56 : 0), 0);
|
||||
#else
|
||||
OLED::fillArea(isFlipped ? 68 : 0, 0, 56, 32, 0); // clear the area
|
||||
OLED::setCursor(isFlipped ? 56 : 0, 0);
|
||||
#endif
|
||||
// If tip is disconnected draw the notification, otherwise - the temp
|
||||
if (tipDisconnected) {
|
||||
// Draw-in the missing tip symbol
|
||||
#ifdef REVERSE_NAV_EVERYWHERE
|
||||
if (isReverse) {
|
||||
OLED::drawArea(isFlipped ? 20 : 54, 0, 56, 32, isFlipped ? disconnectedTipF : disconnectedTip);
|
||||
} else {
|
||||
#endif
|
||||
OLED::drawArea(isFlipped ? 54 : 0, 0, 56, 32, isFlipped ? disconnectedTipF : disconnectedTip);
|
||||
#ifdef REVERSE_NAV_EVERYWHERE
|
||||
}
|
||||
#endif
|
||||
} else if (!(getSettingValue(SettingsOptions::CoolingTempBlink) && (xTaskGetTickCount() % 1000 < 300))) {
|
||||
ui_draw_tip_temperature(false, FontStyle::LARGE); // Draw-in the temp
|
||||
}
|
||||
|
||||
@@ -7,27 +7,43 @@ extern uint8_t disconnectedTipF[sizeof(disconnectedTip)];
|
||||
|
||||
void ui_draw_homescreen_simplified(TemperatureType_t tipTemp) {
|
||||
bool isFlipped = OLED::getRotation();
|
||||
bool isReverse = getSettingValue(SettingsOptions::ReverseButtonNavEnabled);
|
||||
bool tipDisconnected = isTipDisconnected();
|
||||
#ifdef REVERSE_NAV_EVERYWHERE
|
||||
bool isReverse = getSettingValue(SettingsOptions::ReverseButtonNavEnabled);
|
||||
#endif
|
||||
|
||||
// Flip and switch buttons accordingly
|
||||
#ifdef REVERSE_NAV_EVERYWHERE
|
||||
OLED::drawArea(isFlipped ? 54 : 0, 0, 42, 16, isFlipped ? (isReverse ? buttonBF : buttonAF) : (isReverse ? buttonB : buttonA));
|
||||
OLED::drawArea(isFlipped ? 12 : 42, 0, 42, 16, isFlipped ? (isReverse ? buttonAF : buttonBF) : (isReverse ? buttonA : buttonB));
|
||||
#else
|
||||
OLED::drawArea(isFlipped ? 54 : 0, 0, 42, 16, isFlipped ? buttonAF : buttonA);
|
||||
OLED::drawArea(isFlipped ? 12 : 42, 0, 42, 16, isFlipped ? buttonBF : buttonB);
|
||||
#endif
|
||||
|
||||
if ((tipTemp > 55) || tipDisconnected) {
|
||||
// draw temp over the start soldering button
|
||||
// Location changes on screen rotation and due to button swapping
|
||||
// in right handed mode we want to draw over the first part
|
||||
#ifdef REVERSE_NAV_EVERYWHERE
|
||||
OLED::fillArea(isReverse ? (isFlipped ? 14 : 42) : (isFlipped ? 55 : 0), 0, 41, 16, 0); // clear the area
|
||||
OLED::setCursor(isReverse ? (isFlipped ? 15 : 43) : (isFlipped ? 56 : 0), 0);
|
||||
#else
|
||||
OLED::fillArea(isFlipped ? 55 : 0, 0, 41, 16, 0); // clear the area
|
||||
OLED::setCursor(isFlipped ? 56 : 0, 0);
|
||||
#endif
|
||||
// If tip is disconnected draw the notification, otherwise - the temp
|
||||
if (tipDisconnected) {
|
||||
// Draw-in the missing tip symbol
|
||||
#ifdef REVERSE_NAV_EVERYWHERE
|
||||
if (isReverse) {
|
||||
OLED::drawArea(isFlipped ? 12 : 42, 0, 42, 16, isFlipped ? disconnectedTipF : disconnectedTip);
|
||||
} else {
|
||||
#endif
|
||||
OLED::drawArea(isFlipped ? 54 : 0, 0, 42, 16, isFlipped ? disconnectedTipF : disconnectedTip);
|
||||
#ifdef REVERSE_NAV_EVERYWHERE
|
||||
}
|
||||
#endif
|
||||
} else if (!(getSettingValue(SettingsOptions::CoolingTempBlink) && (xTaskGetTickCount() % 1000 < 300))) {
|
||||
ui_draw_tip_temperature(false, FontStyle::LARGE); // Draw-in the temp
|
||||
}
|
||||
|
||||
@@ -17,7 +17,11 @@ bool shouldShutdown(void) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (getButtonState(getSettingValue(SettingsOptions::ReverseButtonNavEnabled)) == BUTTON_B_LONG) { // allow also if back button is pressed long
|
||||
#ifdef REVERSE_NAV_EVERYWHERE
|
||||
if (getButtonState(getSettingValue(SettingsOptions::ReverseButtonNavEnabled) == BUTTON_B_LONG) { // allow also if back button is pressed long
|
||||
#else
|
||||
if (getButtonState() == BUTTON_B_LONG) { // allow also if back button is pressed long
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user