1
0
forked from me/IronOS

Roughing menu calls in

This commit is contained in:
Ben V. Brown
2020-05-22 23:44:22 +10:00
parent 3287ee9d78
commit 76721d5f0d
2 changed files with 79 additions and 51 deletions

View File

@@ -21,8 +21,8 @@ void gui_Menu(const menuitem *menu);
static void settings_setInputVRange(void); static void settings_setInputVRange(void);
static void settings_displayInputVRange(void); static void settings_displayInputVRange(void);
#else #else
static void settings_setInputPRange(void); static void settings_setInputPRange(void);
static void settings_displayInputPRange(void); static void settings_displayInputPRange(void);
#endif #endif
static void settings_setSleepTemp(void); static void settings_setSleepTemp(void);
static void settings_displaySleepTemp(void); static void settings_displaySleepTemp(void);
@@ -68,6 +68,8 @@ static void settings_displayTempChangeShortStep(void);
static void settings_setTempChangeShortStep(void); static void settings_setTempChangeShortStep(void);
static void settings_displayTempChangeLongStep(void); static void settings_displayTempChangeLongStep(void);
static void settings_setTempChangeLongStep(void); static void settings_setTempChangeLongStep(void);
static void settings_displayPowerPulse(void);
static void settings_setPowerPulse(void);
// Menu functions // Menu functions
static void settings_displaySolderingMenu(void); static void settings_displaySolderingMenu(void);
@@ -172,18 +174,21 @@ const menuitem UIMenu[] = {
* Reverse Temp change buttons + - * Reverse Temp change buttons + -
*/ */
#ifdef ENABLED_FAHRENHEIT_SUPPORT #ifdef ENABLED_FAHRENHEIT_SUPPORT
{ (const char*) SettingsDescriptions[5], { settings_setTempF }, { { (const char*) SettingsDescriptions[5], { settings_setTempF }, {
settings_displayTempF } }, /* Temperature units*/ settings_displayTempF } }, /* Temperature units*/
#endif #endif
{ (const char*) SettingsDescriptions[7], { settings_setDisplayRotation }, { { (const char*) SettingsDescriptions[7],
{ settings_setDisplayRotation }, {
settings_displayDisplayRotation } }, /*Display Rotation*/ settings_displayDisplayRotation } }, /*Display Rotation*/
{ (const char*) SettingsDescriptions[11], { settings_setCoolingBlinkEnabled }, { { (const char*) SettingsDescriptions[11], {
settings_setCoolingBlinkEnabled }, {
settings_displayCoolingBlinkEnabled } }, /*Cooling blink warning*/ settings_displayCoolingBlinkEnabled } }, /*Cooling blink warning*/
{ (const char*) SettingsDescriptions[16], { settings_setScrollSpeed }, { { (const char*) SettingsDescriptions[16], { settings_setScrollSpeed }, {
settings_displayScrollSpeed } }, /*Scroll Speed for descriptions*/ settings_displayScrollSpeed } }, /*Scroll Speed for descriptions*/
{ (const char*) SettingsDescriptions[23], { settings_setReverseButtonTempChangeEnabled }, { { (const char*) SettingsDescriptions[23], {
settings_setReverseButtonTempChangeEnabled }, {
settings_displayReverseButtonTempChangeEnabled } }, /* Reverse Temp change buttons + - */ settings_displayReverseButtonTempChangeEnabled } }, /* Reverse Temp change buttons + - */
{ NULL, { NULL }, { NULL } } // end of menu marker. DO NOT REMOVE { NULL, { NULL }, { NULL } } // end of menu marker. DO NOT REMOVE
}; };
const menuitem PowerMenu[] = { const menuitem PowerMenu[] = {
/* /*
@@ -212,6 +217,7 @@ const menuitem advancedMenu[] = {
* Calibrate Temperature * Calibrate Temperature
* Calibrate Input V * Calibrate Input V
* Reset Settings * Reset Settings
* Power Pulse
*/ */
{ (const char*) SettingsDescriptions[21], { settings_setPowerLimitEnable }, { { (const char*) SettingsDescriptions[21], { settings_setPowerLimitEnable }, {
settings_displayPowerLimitEnable } }, /*Power limit enable*/ settings_displayPowerLimitEnable } }, /*Power limit enable*/
@@ -228,6 +234,8 @@ const menuitem advancedMenu[] = {
settings_displayCalibrate } }, /*Calibrate tip*/ settings_displayCalibrate } }, /*Calibrate tip*/
{ (const char*) SettingsDescriptions[14], { settings_setCalibrateVIN }, { { (const char*) SettingsDescriptions[14], { settings_setCalibrateVIN }, {
settings_displayCalibrateVIN } }, /*Voltage input cal*/ settings_displayCalibrateVIN } }, /*Voltage input cal*/
{ (const char*) SettingsDescriptions[16], { settings_setPowerPulse }, {
settings_displayPowerPulse } }, /*Power Pulse adjustment */
{ NULL, { NULL }, { NULL } } // end of menu marker. DO NOT REMOVE { NULL, { NULL }, { NULL } } // end of menu marker. DO NOT REMOVE
}; };
@@ -366,8 +374,7 @@ static void settings_setSleepTemp(void) {
systemSettings.SleepTemp += 20; systemSettings.SleepTemp += 20;
if (systemSettings.SleepTemp > 580) if (systemSettings.SleepTemp > 580)
systemSettings.SleepTemp = 120; systemSettings.SleepTemp = 120;
} } else
else
#endif #endif
{ {
systemSettings.SleepTemp += 10; systemSettings.SleepTemp += 10;
@@ -746,10 +753,11 @@ static void settings_setCalibrateVIN(void) {
} }
static void settings_setReverseButtonTempChangeEnabled(void) { static void settings_setReverseButtonTempChangeEnabled(void) {
systemSettings.ReverseButtonTempChangeEnabled = !systemSettings.ReverseButtonTempChangeEnabled; systemSettings.ReverseButtonTempChangeEnabled =
!systemSettings.ReverseButtonTempChangeEnabled;
} }
static void settings_displayReverseButtonTempChangeEnabled(void){ static void settings_displayReverseButtonTempChangeEnabled(void) {
printShortDescription(23, 7); printShortDescription(23, 7);
OLED::drawCheckbox(systemSettings.ReverseButtonTempChangeEnabled); OLED::drawCheckbox(systemSettings.ReverseButtonTempChangeEnabled);
} }
@@ -776,16 +784,34 @@ static void settings_displayTempChangeLongStep(void) {
OLED::printNumber(systemSettings.TempChangeLongStep, 3); OLED::printNumber(systemSettings.TempChangeLongStep, 3);
} }
static void settings_setPowerPulse(void) {
systemSettings.KeepAwakePulse += POWER_PULSE_INCREMENT;
if (systemSettings.KeepAwakePulse > POWER_PULSE_MAX) {
systemSettings.KeepAwakePulse = POWER_PULSE_MAX; // loop back to 0
}
}
static void settings_displayPowerPulse(void) {
printShortDescription(26, 5);
if (systemSettings.TempChangeLongStep) {
OLED::printNumber(systemSettings.TempChangeLongStep / 10, 1);
OLED::print(SymbolDot);
OLED::printNumber(systemSettings.TempChangeLongStep % 10, 1);
} else {
OLED::drawCheckbox(false);
}
}
static void displayMenu(size_t index) { static void displayMenu(size_t index) {
// Call into the menu // Call into the menu
OLED::setFont(1); OLED::setFont(1);
OLED::setCursor(0, 0); OLED::setCursor(0, 0);
// Draw title // Draw title
OLED::print(SettingsMenuEntries[index]); OLED::print(SettingsMenuEntries[index]);
// Draw symbol // Draw symbol
// 16 pixel wide image // 16 pixel wide image
// 2 pixel wide scrolling indicator // 2 pixel wide scrolling indicator
OLED::drawArea(96 - 16 - 2, 0, 16, 16, (&SettingsMenuIcons[(16 * 2) * index])); OLED::drawArea(96 - 16 - 2, 0, 16, 16,
(&SettingsMenuIcons[(16 * 2) * index]));
} }
static void settings_displayCalibrateVIN(void) { static void settings_displayCalibrateVIN(void) {
@@ -817,7 +843,7 @@ static void settings_enterAdvancedMenu(void) {
} }
void gui_Menu(const menuitem *menu) { void gui_Menu(const menuitem *menu) {
// Draw the settings menu and provide iteration support etc // Draw the settings menu and provide iteration support etc
uint8_t currentScreen = 0; uint8_t currentScreen = 0;
uint32_t autoRepeatTimer = 0; uint32_t autoRepeatTimer = 0;
uint8_t autoRepeatAcceleration = 0; uint8_t autoRepeatAcceleration = 0;
@@ -834,7 +860,7 @@ void gui_Menu(const menuitem *menu) {
scrollContentSize += 1; scrollContentSize += 1;
} }
// Animated menu opening. // Animated menu opening.
if (menu[currentScreen].draw.func != NULL) { if (menu[currentScreen].draw.func != NULL) {
// This menu is drawn in a secondary framebuffer. // This menu is drawn in a secondary framebuffer.
// Then we play a transition from the current primary // Then we play a transition from the current primary

View File

@@ -54,7 +54,9 @@
#define TEMP_CHANGE_SHORT_STEP_MAX 50 // Temp change short step MAX value #define TEMP_CHANGE_SHORT_STEP_MAX 50 // Temp change short step MAX value
#define TEMP_CHANGE_LONG_STEP_MAX 100 // Temp change long step MAX value #define TEMP_CHANGE_LONG_STEP_MAX 100 // Temp change long step MAX value
/* Power pulse for keeping power banks awake*/
#define POWER_PULSE_INCREMENT 1
#define POWER_PULSE_MAX 50 // x10 max watts
/** /**
* OLED Orientation Sensitivity on Automatic mode! * OLED Orientation Sensitivity on Automatic mode!
* Motion Sensitivity <0=Off 1=Least Sensitive 9=Most Sensitive> * Motion Sensitivity <0=Off 1=Least Sensitive 9=Most Sensitive>