diff --git a/Development Resources/Images/Calibration.jpg b/Development Resources/Images/Calibration.jpg
new file mode 100644
index 00000000..5aa15885
Binary files /dev/null and b/Development Resources/Images/Calibration.jpg differ
diff --git a/Development Resources/Images/Settings.jpg b/Development Resources/Images/Settings.jpg
new file mode 100644
index 00000000..60c12927
Binary files /dev/null and b/Development Resources/Images/Settings.jpg differ
diff --git a/Development Resources/Images/Sleep.jpg b/Development Resources/Images/Sleep.jpg
new file mode 100644
index 00000000..36d672b1
Binary files /dev/null and b/Development Resources/Images/Sleep.jpg differ
diff --git a/Development Resources/Images/Soldering.jpg b/Development Resources/Images/Soldering.jpg
new file mode 100644
index 00000000..ce93dea0
Binary files /dev/null and b/Development Resources/Images/Soldering.jpg differ
diff --git a/Development Resources/Images/UI.jpg b/Development Resources/Images/UI.jpg
new file mode 100644
index 00000000..55700ab5
Binary files /dev/null and b/Development Resources/Images/UI.jpg differ
diff --git a/workspace/TS100/.cproject b/workspace/TS100/.cproject
index a2a12fb0..20577e3b 100644
--- a/workspace/TS100/.cproject
+++ b/workspace/TS100/.cproject
@@ -130,7 +130,7 @@
-
+
+
+
-
+
+
+
@@ -201,6 +205,10 @@
+
+
+
+
diff --git a/workspace/TS100/.settings/language.settings.xml b/workspace/TS100/.settings/language.settings.xml
index a6bfbc25..194ff89a 100644
--- a/workspace/TS100/.settings/language.settings.xml
+++ b/workspace/TS100/.settings/language.settings.xml
@@ -17,6 +17,7 @@
+
diff --git a/workspace/TS100/inc/Font.h b/workspace/TS100/inc/Font.h
index e49d42c3..7088e679 100644
--- a/workspace/TS100/inc/Font.h
+++ b/workspace/TS100/inc/Font.h
@@ -595,6 +595,47 @@ const uint8_t idleScreenBGF[] = {
0x87,0x86,0x86,0x86,0x82,0x80,0x40,0x40,0x20,0x18,0x07,0x00
};
+/*
+ * 16x16 icons
+ * */
+const uint8_t SettingsMenuIcons[] = {
+
+ // Soldering
+ //width = 16
+ //height = 16
+ 0x00,0x00,0x02,0x04,0x09,0x11,0x23,0xC3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x07,0x0A,0x14,0x28,0x50,0x60,0x00,
+
+
+
+ //Sleep
+ //width = 16
+ //height = 16
+ 0x00,0x00,0x00,0xC6,0xE6,0xF6,0xBE,0x9E,0x86,0x00,0x40,0x40,0xC0,0xC0,0xC0,0x00,
+ 0x00,0x00,0x00,0x01,0x01,0x45,0x65,0x75,0x5D,0x00,0x06,0x07,0x07,0x05,0x04,0x00,
+
+
+
+ //Menu
+ //width = 16
+ //height = 16
+ 0x00,0x80,0x18,0x98,0x58,0x18,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x00,0x00,
+ 0x00,0x00,0x19,0x18,0x00,0x00,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x00,0x00,
+
+ //Wrench
+ //width = 16
+ //height = 16
+ 0x00,0x00,0x18,0x30,0x32,0x7E,0x7C,0xF0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0F,0x3E,0x7E,0x4C,0x0C,0x18,0x00,
+ #ifdef NOTUSED
+ //Calibration (Not used, kept for future menu layouts)
+ //width = 16
+ //height = 16
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x70,0x7A,0x5E,0x8E,0x1C,0x30,0x00,
+ 0x00,0x20,0x70,0x38,0x1C,0x0E,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ #endif
+};
+
const uint8_t FONT_6x8[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 000: ' ' U+0020 (utf-8: 20)
0x00, 0x00, 0x4f, 0x00, 0x00, 0x00, // 001: '!' U+0021 (utf-8: 21)
diff --git a/workspace/TS100/inc/Settings.h b/workspace/TS100/inc/Settings.h
index 7bfec946..7f3705e0 100644
--- a/workspace/TS100/inc/Settings.h
+++ b/workspace/TS100/inc/Settings.h
@@ -11,7 +11,7 @@
#define SETTINGS_H_
#include
#include "stm32f1xx_hal.h"
-#define SETTINGSVERSION 0x11 /*Change this if you change the struct below to prevent people getting out of sync*/
+#define SETTINGSVERSION 0x12 /*Change this if you change the struct below to prevent people getting out of sync*/
/*
* This struct must be a multiple of 2 bytes as it is saved / restored from flash in uint16_t chunks
@@ -30,6 +30,7 @@ typedef struct {
uint8_t detailedIDLE :1; //Detailed idle screen
uint8_t detailedSoldering :1; //Detailed soldering screens
uint8_t temperatureInF; //Should the temp be in F or C (true is F)
+ uint8_t descriptionScrollSpeed:1; // Description scroll speed
uint16_t voltageDiv; //Voltage divisor factor
uint16_t BoostTemp; //Boost mode set point for the iron
int16_t CalibrationOffset; //This stores the temperature offset for this tip in the iron.
@@ -37,7 +38,7 @@ typedef struct {
uint32_t padding; //This is here for in case we are not an even divisor so that nothing gets cut off
} systemSettingsType;
-extern systemSettingsType systemSettings;
+extern volatile systemSettingsType systemSettings;
void saveSettings();
void restoreSettings();
diff --git a/workspace/TS100/inc/Translation.h b/workspace/TS100/inc/Translation.h
index a93d7717..84721fde 100644
--- a/workspace/TS100/inc/Translation.h
+++ b/workspace/TS100/inc/Translation.h
@@ -17,8 +17,11 @@ enum ShortNameType {
* use SettingsShortNames as SettingsShortNames[16][1].. second column undefined
*/
extern const enum ShortNameType SettingsShortNameType;
-extern const char* SettingsShortNames[16][2];
-extern const char* SettingsLongNames[16];
+extern const char* SettingsShortNames[17][2];
+extern const char* SettingsDescriptions[17];
+extern const char* SettingsMenuEntries[4];
+extern const char* SettingsMenuEntriesDescriptions[4];
+
extern const char* SettingsCalibrationWarning;
extern const char* SettingsResetWarning;
extern const char* UVLOWarningString;
@@ -43,6 +46,9 @@ extern const char SettingRightChar;
extern const char SettingLeftChar;
extern const char SettingAutoChar;
-#define LANG_EN
+extern const char SettingFastChar;
+extern const char SettingSlowChar;
+
+
#endif /* TRANSLATION_H_ */
diff --git a/workspace/TS100/inc/gui.h b/workspace/TS100/inc/gui.hpp
similarity index 79%
rename from workspace/TS100/inc/gui.h
rename to workspace/TS100/inc/gui.hpp
index 0a0950db..d5168d8d 100644
--- a/workspace/TS100/inc/gui.h
+++ b/workspace/TS100/inc/gui.hpp
@@ -5,17 +5,16 @@
* Author: Ben V. Brown
*/
-#ifndef GUI_H_
-#define GUI_H_
+#ifndef GUI_HPP_
+#define GUI_HPP_
+#include "Translation.h"
+#include "Settings.h"
+#include "hardware.h"
//GUI holds the menu structure and all its methods for the menu itself
-#include "main.hpp"
-#include "Settings.h"
-#include "Translation.h"
//Declarations for all the methods for the settings menu (at end of this file)
-
//Wrapper for holding a function pointer
typedef struct state_func_t {
void (*func)(void);
@@ -28,6 +27,7 @@ typedef struct {
const state_func draw;
} menuitem;
-extern const menuitem settingsMenu[];
+void enterSettingsMenu();
+extern const menuitem rootSettingsMenu[];
-#endif /* GUI_H_ */
+#endif /* GUI_HPP_ */
diff --git a/workspace/TS100/src/OLED.cpp b/workspace/TS100/src/OLED.cpp
index 46850485..2c874ef3 100644
--- a/workspace/TS100/src/OLED.cpp
+++ b/workspace/TS100/src/OLED.cpp
@@ -101,6 +101,11 @@ void OLED::refresh() {
* Precursor is the command char that is used to select the table.
*/
void OLED::drawChar(char c, char PrecursorCommand) {
+ if( c=='\n' && cursor_y==0)
+ {
+ cursor_x=0;
+ cursor_y=8;
+ }
if (c < ' ') {
return;
}
diff --git a/workspace/TS100/src/Settings.cpp b/workspace/TS100/src/Settings.cpp
index de7ee620..88d4d924 100644
--- a/workspace/TS100/src/Settings.cpp
+++ b/workspace/TS100/src/Settings.cpp
@@ -11,7 +11,7 @@
#include "Setup.h"
#define FLASH_ADDR (0x8000000|0xFC00)/*Flash start OR'ed with the maximum amount of flash - 1024 bytes*/
#include "string.h"
-systemSettingsType systemSettings;
+volatile systemSettingsType systemSettings;
void saveSettings() {
//First we erase the flash
@@ -89,6 +89,7 @@ void resetSettings() {
systemSettings.coolingTempBlink = 0; //Blink the temperature on the cooling screen when its > 50C
systemSettings.CalibrationOffset = 10; //This appears to be quite close for both of my tips, in both of my handles
systemSettings.temperatureInF = 0; //default to 0
+ systemSettings.descriptionScrollSpeed=0;//default to slow
saveSettings();
}
diff --git a/workspace/TS100/src/Setup.c b/workspace/TS100/src/Setup.c
index 5a97dca2..af37dde1 100644
--- a/workspace/TS100/src/Setup.c
+++ b/workspace/TS100/src/Setup.c
@@ -148,7 +148,7 @@ static void MX_ADC1_Init(void) {
static void MX_I2C1_Init(void) {
hi2c1.Instance = I2C1;
- hi2c1.Init.ClockSpeed = 100000;
+ hi2c1.Init.ClockSpeed = 300000;//200Khz
hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
hi2c1.Init.OwnAddress1 = 0;
hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
diff --git a/workspace/TS100/src/Translation.c b/workspace/TS100/src/Translation.cpp
similarity index 89%
rename from workspace/TS100/src/Translation.c
rename to workspace/TS100/src/Translation.cpp
index 3f371a7a..536e6fa6 100644
--- a/workspace/TS100/src/Translation.c
+++ b/workspace/TS100/src/Translation.cpp
@@ -5,7 +5,9 @@
* Author: Ben V. Brown
*/
#include "Translation.h"
-
+#ifndef LANG
+#define LANG_EN
+#endif
// TEMPLATES for short names - choose one and use it as base for your
// translation:
@@ -47,10 +49,12 @@
// /* (<= 16) Settings reset command */ {"Factory", "Reset?"},
// /* (<= 16) Calibrate input voltage */ {"Calibrate", "input voltage?"},
// /* (<= 13) Advanced soldering screen enabled */ {"Detailed", "solder screen"},
+// /* (<= 11) Display Help Text Scroll Speed */ {"Description","Scroll Speed"},
//};
#ifdef LANG_EN
-const char* SettingsLongNames[16] = {
+
+const char* SettingsDescriptions[17] = {
// These are all the help text for all the settings.
// No requirements on spacing or length.
/* Power source (DC or batt) */ "Power source. Sets cutoff voltage. ",
@@ -69,6 +73,7 @@ const char* SettingsLongNames[16] = {
/* Settings reset command */ "Reset all settings",
/* Calibrate input voltage */ "VIN Calibration. Buttons adjust, long press to exit",
/* Advanced soldering screen enabled */ "Display detailed information while soldering",
+ /* Description Scroll Speed */ "Speed this text scrolls past at",
};
const char* SettingsCalibrationWarning = "Please ensure the tip is at room temperature before continuing!";
@@ -92,8 +97,11 @@ const char SettingRightChar = 'R';
const char SettingLeftChar = 'L';
const char SettingAutoChar = 'A';
+const char SettingFastChar = 'F';
+const char SettingSlowChar = 'S';
+
const enum ShortNameType SettingsShortNameType = SHORT_NAME_DOUBLE_LINE;
-const char* SettingsShortNames[16][2] = {
+const char* SettingsShortNames[17][2] = {
/* (<= 11) Power source (DC or batt) */ {"Power", "source"},
/* (<= 9) Sleep temperature */ {"Sleep", "temp"},
/* (<= 9) Sleep timeout */ {"Sleep", "timeout"},
@@ -110,11 +118,24 @@ const char* SettingsShortNames[16][2] = {
/* (<= 16) Settings reset command */ {"Factory", "reset?"},
/* (<= 16) Calibrate input voltage */ {"Calibrate", "input voltage?"},
/* (<= 13) Advanced soldering screen enabled */ {"Detailed", "solder screen"},
+ /* (<= 11) Display Help Text Scroll Speed */ {"Description","Scroll Speed"},
+};
+
+const char* SettingsMenuEntries[4] = {
+/*Soldering Menu*/"Soldering\nSettings",
+/* Power Saving Menu*/"Sleep\nModes",
+/* UI Menu*/"User\nInterface",
+/* Advanced Menu*/"Advanced\nOptions", };
+const char* SettingsMenuEntriesDescriptions[4] ={
+"Soldering settings",
+"Power Saving Settings",
+"User Interface settings",
+"Advanced options"
};
#endif
#ifdef LANG_RU
-const char* SettingsLongNames[16] = {
+const char* SettingsDescriptions[17] = {
// These are all the help text for all the settings.
// No requirements on spacing or length.
/* Power source (DC or batt) */ "Источник питания. Установка напряжения отключения. ",
@@ -133,6 +154,7 @@ const char* SettingsLongNames[16] = {
/* Settings reset command */ "Сброс всех настроек.",
/* Calibrate input voltage */ "Калибровка напряжения входа. Настройка кнопками, нажать и удержать чтобы завершить.",
/* Advanced soldering screen enabled */ "Показывать детальную информацию при пайке.",
+ /* Description Scroll Speed */ "Speed this text scrolls past at",
};
const char* SettingsCalibrationWarning = "Убедитесь, что жало остыло до комнатной температуры, прежде чем продолжать!";
@@ -162,6 +184,9 @@ const char SettingRightChar = 'R';
const char SettingLeftChar = 'L';
const char SettingAutoChar = 'A';
+const char SettingFastChar = 'F';
+const char SettingSlowChar = 'S';
+
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
const char* SettingsShortNames[16][2] = {
/* (<= 5) Power source (DC or batt) */ {"ИстП "},
@@ -181,10 +206,22 @@ const char* SettingsShortNames[16][2] = {
/* (<= 8) Calibrate input voltage */ {"КалибрU?"},
/* (<= 6) Advanced soldering screen enabled */ {"ИнфПай "},
};
+
+const char* SettingsMenuEntries[4] = {
+/*Soldering Menu*/"Soldering\nSettings",
+/* Power Saving Menu*/"Sleep\nModes",
+/* UI Menu*/"User\nInterface",
+/* Advanced Menu*/"Advanced\nOptions", };
+const char* SettingsMenuEntriesDescriptions[4] ={
+"Soldering settings",
+"Power Saving Settings",
+"User Interface settings",
+"Advanced options"
+};
#endif
#ifdef LANG_ES
-const char* SettingsLongNames[16] = {
+const char* SettingsDescriptions[17] = {
// These are all the help text for all the settings.
// No requirements on spacing or length.
/* Power source (DC or batt) */ "Fuente de energía. Ajusta el límite inferior de voltaje. ",
@@ -203,6 +240,7 @@ const char* SettingsLongNames[16] = {
/* Settings reset command */ "Reset all settings",
/* Calibrate input voltage */ "VIN Calibration. Buttons adjust, long press to exit",
/* Advanced soldering screen enabled */ "Display detailed information while soldering",
+ /* Description Scroll Speed */ "Speed this text scrolls past at",
};
const char* SettingsCalibrationWarning = "Please ensure the tip is at room temperature before continuing!";
@@ -226,6 +264,9 @@ const char SettingRightChar = 'R';
const char SettingLeftChar = 'L';
const char SettingAutoChar = 'A';
+const char SettingFastChar = 'F';
+const char SettingSlowChar = 'S';
+
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
const char* SettingsShortNames[16][2] = {
/* (<= 5) Power source (DC or batt) */ {"PWRSC"},
@@ -245,10 +286,21 @@ const char* SettingsShortNames[16][2] = {
/* (<= 8) Calibrate input voltage */ {"CAL VIN?"},
/* (<= 6) Advanced soldering screen enabled */ {"ADVSLD"},
};
+const char* SettingsMenuEntries[4] = {
+/*Soldering Menu*/"Soldering\nSettings",
+/* Power Saving Menu*/"Sleep\nModes",
+/* UI Menu*/"User\nInterface",
+/* Advanced Menu*/"Advanced\nOptions", };
+const char* SettingsMenuEntriesDescriptions[4] ={
+"Soldering settings",
+"Power Saving Settings",
+"User Interface settings",
+"Advanced options"
+};
#endif
#ifdef LANG_SE
-const char* SettingsLongNames[16] = {
+const char* SettingsDescriptions[17] = {
// These are all the help text for all the settings.
// No requirements on spacing or length.
/* Power source (DC or batt) */ "Источник питания. Установка напряжения отключения. ",
@@ -267,6 +319,7 @@ const char* SettingsLongNames[16] = {
/* Settings reset command */ "Reset all settings",
/* Calibrate input voltage */ "VIN Calibration. Buttons adjust, long press to exit",
/* Advanced soldering screen enabled */ "Display detailed information while soldering",
+ /* Description Scroll Speed */ "Speed this text scrolls past at",
};
const char* SettingsCalibrationWarning = "Please ensure the tip is at room temperature before continuing!";
@@ -290,6 +343,9 @@ const char SettingRightChar = 'R';
const char SettingLeftChar = 'L';
const char SettingAutoChar = 'A';
+const char SettingFastChar = 'F';
+const char SettingSlowChar = 'S';
+
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
const char* SettingsShortNames[16][2] = {
/* (<= 5) Power source (DC or batt) */ {"PWRSC"},
@@ -309,10 +365,21 @@ const char* SettingsShortNames[16][2] = {
/* (<= 8) Calibrate input voltage */ {"CAL VIN?"},
/* (<= 6) Advanced soldering screen enabled */ {"ADVSLD"},
};
+const char* SettingsMenuEntries[4] = {
+/*Soldering Menu*/"Soldering\nSettings",
+/* Power Saving Menu*/"Sleep\nModes",
+/* UI Menu*/"User\nInterface",
+/* Advanced Menu*/"Advanced\nOptions", };
+const char* SettingsMenuEntriesDescriptions[4] ={
+"Soldering settings",
+"Power Saving Settings",
+"User Interface settings",
+"Advanced options"
+};
#endif
#ifdef LANG_IT
-const char* SettingsLongNames[16] = {
+const char* SettingsDescriptions[17] = {
// These are all the help text for all the settings.
// No requirements on spacing or length.
/* Power source (DC or batt) */"Scegli la sorgente di alimentazione; imposta la soglia di scaricamento per alimentazione Li-Po ",
@@ -331,6 +398,7 @@ const char* SettingsLongNames[16] = {
/* Settings reset command */"Ripristina tutte le impostazioni",
/* Calibrate input voltage */"Calibra la tensione in ingresso; regola con i bottoni, tieni premuto per uscire",
/* Advanced soldering screen enabled */"Mostra informazioni dettagliate in modalità saldatura",
+ /* Description Scroll Speed */ "Speed this text scrolls past at",
};
const char* SettingsCalibrationWarning = "Assicurati che la punta si trovi a temperatura ambiente prima di continuare!";
@@ -354,6 +422,9 @@ const char SettingRightChar = 'D';
const char SettingLeftChar = 'S';
const char SettingAutoChar = 'A';
+const char SettingFastChar = 'F';
+const char SettingSlowChar = 'S';
+
const enum ShortNameType SettingsShortNameType = SHORT_NAME_DOUBLE_LINE;
const char* SettingsShortNames[16][2] = {
/* (<= 11) Power source (DC or batt) */ {"Sorgente", "alimentaz"},
@@ -373,10 +444,21 @@ const enum ShortNameType SettingsShortNameType = SHORT_NAME_DOUBLE_LINE;
/* (<= 16) Calibrate input voltage */ {"Calibrazione", "tensione"},
/* (<= 13) Advanced soldering screen enabled */ {"Dettagli", "saldatura"},
};
+ const char* SettingsMenuEntries[4] = {
+ /*Soldering Menu*/"Soldering\nSettings",
+ /* Power Saving Menu*/"Sleep\nModes",
+ /* UI Menu*/"User\nInterface",
+ /* Advanced Menu*/"Advanced\nOptions", };
+ const char* SettingsMenuEntriesDescriptions[4] ={
+ "Soldering settings",
+ "Power Saving Settings",
+ "User Interface settings",
+ "Advanced options"
+ };
#endif
#ifdef LANG_FR
-const char* SettingsLongNames[16] = {
+const char* SettingsDescriptions[17] = {
// These are all the help text for all the settings.
// No requirements on spacing or length.
/* Power source (DC or batt) */ "Source d'alimentation. Règle la tension de coupure ",
@@ -395,6 +477,7 @@ const char* SettingsLongNames[16] = {
/* Settings reset command */ "Réinitialiser tous les réglages",
/* Calibrate input voltage */ "Étalonner la tension d'entrée. Boutons pour ajuster, appui long pour quitter",
/* Advanced soldering screen enabled */ "Afficher des informations détaillées pendant la soudure",
+ /* Description Scroll Speed */ "Speed this text scrolls past at",
};
const char* SettingsCalibrationWarning = "Assurez-vous que la panne soit à température ambiante avant de continuer!";
@@ -418,6 +501,9 @@ const char SettingRightChar = 'D';
const char SettingLeftChar = 'G';
const char SettingAutoChar = 'A';
+const char SettingFastChar = 'F';
+const char SettingSlowChar = 'S';
+
const enum ShortNameType SettingsShortNameType = SHORT_NAME_DOUBLE_LINE;
const char* SettingsShortNames[16][2] = {
/* (<= 11) Power source (DC or batt) */ {"Source", "d'alim"},
@@ -437,10 +523,21 @@ const char* SettingsShortNames[16][2] = {
/* (<= 16) Calibrate input voltage */ {"Étalonner", "tension d'entrée"},
/* (<= 13) Advanced soldering screen enabled */ {"Écran soudure", "détaillé"},
};
+const char* SettingsMenuEntries[4] = {
+/*Soldering Menu*/"Soldering\nSettings",
+/* Power Saving Menu*/"Sleep\nModes",
+/* UI Menu*/"User\nInterface",
+/* Advanced Menu*/"Advanced\nOptions", };
+const char* SettingsMenuEntriesDescriptions[4] ={
+"Soldering settings",
+"Power Saving Settings",
+"User Interface settings",
+"Advanced options"
+};
#endif
#ifdef LANG_DE
-const char* SettingsLongNames[16] = {
+const char* SettingsDescriptions[17] = {
// These are all the help text for all the settings.
// No requirements on spacing or length.
/* Power source (DC or batt) */ "Spannungsquelle (Abschaltspannung) ",
@@ -459,6 +556,7 @@ const char* SettingsLongNames[16] = {
/* Settings reset command */ "Alle Einstellungen zurücksetzen",
/* Calibrate input voltage */ "Kalibrierung der Eingangsspannung. Kurzer Tastendruck zum Einstellen, langer Tastendruck zum Verlassen.",
/* Advanced soldering screen enabled */ "Detaillierte Anzeige im Lötmodus ",
+ /* Description Scroll Speed */ "Speed this text scrolls past at",
};
const char* SettingsCalibrationWarning = "Vor dem Fortfahren muss die Lötspitze vollständig abgekühlt sein!";
@@ -482,6 +580,9 @@ const char SettingRightChar = 'R';
const char SettingLeftChar = 'L';
const char SettingAutoChar = 'A';
+const char SettingFastChar = 'F';
+const char SettingSlowChar = 'S';
+
const enum ShortNameType SettingsShortNameType = SHORT_NAME_DOUBLE_LINE;
const char* SettingsShortNames[16][2] = {
/* (<= 11) Power source (DC or batt) */ {"Spannungs-", "quelle"},
@@ -501,10 +602,21 @@ const char* SettingsShortNames[16][2] = {
/* (<= 16) Calibrate input voltage */ {"Eingangsspannung", "kalibrieren?"},
/* (<= 13) Advanced soldering screen enabled */ {"Detaillierte", "Loetansicht"},
};
+const char* SettingsMenuEntries[4] = {
+/*Soldering Menu*/"Soldering\nSettings",
+/* Power Saving Menu*/"Sleep\nModes",
+/* UI Menu*/"User\nInterface",
+/* Advanced Menu*/"Advanced\nOptions", };
+const char* SettingsMenuEntriesDescriptions[4] ={
+"Soldering settings",
+"Power Saving Settings",
+"User Interface settings",
+"Advanced options"
+};
#endif
#ifdef LANG_SK
-const char* SettingsLongNames[16] = {
+const char* SettingsDescriptions[17] = {
// These are all the help text for all the settings.
// No requirements on spacing or length.
/* Power source (DC or batt) */ "Zdroj napatia. Nastavit napatie pre vypnutie (cutoff) ",
@@ -523,6 +635,7 @@ const char* SettingsLongNames[16] = {
/* Settings reset command */ "Tovarenske nastavenia",
/* Calibrate input voltage */ "Kalibracia VIN. Kratke stlacenie meni nastavenie, dlhe stlacenie pre navrat",
/* Advanced soldering screen enabled */ "Zobrazenie detailov pocas spajkovania ",
+ /* Description Scroll Speed */ "Speed this text scrolls past at",
};
const char* SettingsCalibrationWarning = "Najprv sa prosim uistite, ze hrot ma izbovu teplotu!";
@@ -546,6 +659,9 @@ const char SettingRightChar = 'R';
const char SettingLeftChar = 'L';
const char SettingAutoChar = 'A';
+const char SettingFastChar = 'F';
+const char SettingSlowChar = 'S';
+
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
const char* SettingsShortNames[16][2] = {
/* (<= 5) Power source (DC or batt) */ {"PWRSC"},
@@ -565,10 +681,21 @@ const char* SettingsShortNames[16][2] = {
/* (<= 8) Calibrate input voltage */ {"CAL VIN?"},
/* (<= 6) Advanced soldering screen enabled */ {"ADVSLD"},
};
+const char* SettingsMenuEntries[4] = {
+/*Soldering Menu*/"Soldering\nSettings",
+/* Power Saving Menu*/"Sleep\nModes",
+/* UI Menu*/"User\nInterface",
+/* Advanced Menu*/"Advanced\nOptions", };
+const char* SettingsMenuEntriesDescriptions[4] ={
+"Soldering settings",
+"Power Saving Settings",
+"User Interface settings",
+"Advanced options"
+};
#endif
#ifdef LANG_TR
-const char* SettingsLongNames[16] = {
+const char* SettingsDescriptions[17] = {
// These are all the help text for all the settings.
// No requirements on spacing or length.
/* Power source (DC or batt) */ "Güç Kaynağı. kesim geriliminı ayarlar. ",
@@ -587,6 +714,7 @@ const char* SettingsLongNames[16] = {
/* Settings reset command */ "Bütün ayarları sıfırla",
/* Calibrate input voltage */ "VIN Kalibrasyonu. Düğmeler ayarlar, çıkmak için uzun bas.",
/* Advanced soldering screen enabled */ "Lehimleme yaparken detaylı bilgi göster",
+ /* Description Scroll Speed */ "Speed this text scrolls past at",
};
const char* SettingsCalibrationWarning = "Lütfen devam etmeden önce ucun oda sıcaklığında olduğunu garantiye alın!";
@@ -610,6 +738,9 @@ const char SettingRightChar = 'R';
const char SettingLeftChar = 'L';
const char SettingAutoChar = 'A';
+const char SettingFastChar = 'F';
+const char SettingSlowChar = 'S';
+
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
const char* SettingsShortNames[16][2] = {
/* (<= 5) Power source (DC or batt) */ {"PWRSC"},
@@ -629,10 +760,21 @@ const char* SettingsShortNames[16][2] = {
/* (<= 8) Calibrate input voltage */ {"CAL VIN?"},
/* (<= 6) Advanced soldering screen enabled */ {"ADVSLD"},
};
+const char* SettingsMenuEntries[4] = {
+/*Soldering Menu*/"Soldering\nSettings",
+/* Power Saving Menu*/"Sleep\nModes",
+/* UI Menu*/"User\nInterface",
+/* Advanced Menu*/"Advanced\nOptions", };
+const char* SettingsMenuEntriesDescriptions[4] ={
+"Soldering settings",
+"Power Saving Settings",
+"User Interface settings",
+"Advanced options"
+};
#endif
#ifdef LANG_HR
-const char* SettingsLongNames[16] = {
+const char* SettingsDescriptions[17] = {
// These are all the help text for all the settings.
// No requirements on spacing or length.
/* Power source (DC or batt) */ "Izvor napajanja. Postavlja napon isključivanja. ",
@@ -651,6 +793,7 @@ const char* SettingsLongNames[16] = {
/* Settings reset command */ "Vraćanje svih postavki.",
/* Calibrate input voltage */ "Kalibracija ulaznog napona. Podešavanje gumbima, dugački pritisak za kraj.",
/* Advanced soldering screen enabled */ "Prikazivanje detaljnih informacija tijekom lemljenja.",
+ /* Description Scroll Speed */ "Speed this text scrolls past at",
};
const char* SettingsCalibrationWarning = "Provjerite da je vršak ohlađen na sobnu temperaturu prije nego što nastavite!";
@@ -674,6 +817,9 @@ const char SettingRightChar = 'D';
const char SettingLeftChar = 'L';
const char SettingAutoChar = 'A';
+const char SettingFastChar = 'F';
+const char SettingSlowChar = 'S';
+
const enum ShortNameType SettingsShortNameType = SHORT_NAME_DOUBLE_LINE;
const char* SettingsShortNames[16][2] = {
/* (<= 11) Power source (DC or batt) */ {"Izvor", "napajanja"},
@@ -693,10 +839,21 @@ const char* SettingsShortNames[16][2] = {
/* (<= 16) Calibrate input voltage */ {"Kalibracija", "napona napajanja"},
/* (<= 13) Advanced soldering screen enabled */ {"Detalji", "pri lemljenju"},
};
+const char* SettingsMenuEntries[4] = {
+/*Soldering Menu*/"Soldering\nSettings",
+/* Power Saving Menu*/"Sleep\nModes",
+/* UI Menu*/"User\nInterface",
+/* Advanced Menu*/"Advanced\nOptions", };
+const char* SettingsMenuEntriesDescriptions[4] ={
+"Soldering settings",
+"Power Saving Settings",
+"User Interface settings",
+"Advanced options"
+};
#endif
#ifdef LANG_CS_CZ
-const char* SettingsLongNames[16] = {
+const char* SettingsDescriptions[17] = {
// These are all the help text for all the settings.
// No requirements on spacing or length
/* Power source (DC or batt) */ "Při nižším napětí ukončí pájení ",
@@ -715,6 +872,7 @@ const char* SettingsLongNames[16] = {
/* Settings reset command */ "Obnovení továrního nastavení.",
/* Calibrate input voltage */ "Kalibrace vstupního napětí. Tlačítky uprav, podržením potvrď.",
/* Advanced soldering screen enabled */ "Zobrazit podrobnosti při pájení?",
+ /* Description Scroll Speed */ "Speed this text scrolls past at",
};
const char* SettingsCalibrationWarning = "Ujistěte se, že hrot má pokojovou teplotu! "; // ending space needed
@@ -738,6 +896,9 @@ const char SettingRightChar = 'P';
const char SettingLeftChar = 'L';
const char SettingAutoChar = 'A';
+const char SettingFastChar = 'F';
+const char SettingSlowChar = 'S';
+
const enum ShortNameType SettingsShortNameType = SHORT_NAME_DOUBLE_LINE;
const char* SettingsShortNames[16][2] = {
/* (<= 11) Power source (DC or batt) */ {"Zdroj", "napájení"},
@@ -757,10 +918,21 @@ const char* SettingsShortNames[16][2] = {
/* (<= 16) Calibrate input voltage */ {"Kalibrovat", "vstupní napětí?"},
/* (<= 13) Advanced soldering screen enabled */ {"Podrobnosti", "při pájení"},
};
+const char* SettingsMenuEntries[4] = {
+/*Soldering Menu*/"Soldering\nSettings",
+/* Power Saving Menu*/"Sleep\nModes",
+/* UI Menu*/"User\nInterface",
+/* Advanced Menu*/"Advanced\nOptions", };
+const char* SettingsMenuEntriesDescriptions[4] ={
+"Soldering settings",
+"Power Saving Settings",
+"User Interface settings",
+"Advanced options"
+};
#endif
#ifdef LANG_HUN
-const char* SettingsLongNames[16] = {
+const char* SettingsDescriptions[17] = {
// These are all the help text for all the settings.
// No requirements on spacing or length
/* Power source (DC or batt) */ "Áramforrás. Beállítja a lekapcsolási feszültséget. ",
@@ -779,6 +951,7 @@ const char* SettingsLongNames[16] = {
/* Settings reset command */ "Beállítások alaphelyzetbe állítása",
/* Calibrate input voltage */ "A bemeneti feszültség kalibrálása. Röviden megnyomva állítsa be, hosszan nyomja meg a kilépéshez.",
/* Advanced soldering screen enabled */ "Részletes információk megjelenítése forrasztás közben",
+ /* Description Scroll Speed */ "Speed this text scrolls past at",
};
const char* SettingsCalibrationWarning = "Folytatás előtt győződj meg róla, hogy a hegy szobahőmérsékletű!";
@@ -802,6 +975,9 @@ const char SettingRightChar = 'R';
const char SettingLeftChar = 'L';
const char SettingAutoChar = 'A';
+const char SettingFastChar = 'F';
+const char SettingSlowChar = 'S';
+
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
const char* SettingsShortNames[16][2] = {
/* (<= 5) Power source (DC or batt) */ {"PWRSC"},
@@ -821,10 +997,21 @@ const char* SettingsShortNames[16][2] = {
/* (<= 8) Calibrate input voltage */ {"CAL VIN?"},
/* (<= 6) Advanced soldering screen enabled */ {"ADVSLD"},
};
+const char* SettingsMenuEntries[4] = {
+/*Soldering Menu*/"Soldering\nSettings",
+/* Power Saving Menu*/"Sleep\nModes",
+/* UI Menu*/"User\nInterface",
+/* Advanced Menu*/"Advanced\nOptions", };
+const char* SettingsMenuEntriesDescriptions[4] ={
+"Soldering settings",
+"Power Saving Settings",
+"User Interface settings",
+"Advanced options"
+};
#endif
#ifdef LANG_DK
-const char* SettingsLongNames[16] = {
+const char* SettingsDescriptions[17] = {
// These are all the help text for all the settings.
// No requirements on spacing or length
/* Power source (DC or batt) */ "Strømforsyning. Indstil Cutoff Spændingen. ",
@@ -907,6 +1109,7 @@ const char* SettingsLongNames[16] = {
/* Settings reset command */ "Zresetuj wszystkie ustawienia",
/* Calibrate input voltage */ "Kalibracja napięcia wejściowego. Krótkie naciśnięcie, aby ustawić, długie naciśnięcie, aby wyjść.",
/* Advanced soldering screen enabled */ "Wyświetl szczegółowe informacje podczas lutowania ",
+ /* Description Scroll Speed */ "Speed this text scrolls past at",
};
const char* SettingsCalibrationWarning = "Przed kontynuowaniem upewnij się, że końcówka osiągnela temperature pokojowa!";
@@ -930,6 +1133,9 @@ const char SettingRightChar = 'P';
const char SettingLeftChar = 'L';
const char SettingAutoChar = 'A';
+const char SettingFastChar = 'F';
+const char SettingSlowChar = 'S';
+
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
const char* SettingsShortNames[16][2] = {
/* (<= 5) Power source (DC or batt) */ {"PWRSC"},
@@ -949,10 +1155,21 @@ const char* SettingsShortNames[16][2] = {
/* (<= 8) Calibrate input voltage */ {"CAL VIN?"},
/* (<= 6) Advanced soldering screen enabled */ {"ADVSLD"},
};
+const char* SettingsMenuEntries[4] = {
+/*Soldering Menu*/"Soldering\nSettings",
+/* Power Saving Menu*/"Sleep\nModes",
+/* UI Menu*/"User\nInterface",
+/* Advanced Menu*/"Advanced\nOptions", };
+const char* SettingsMenuEntriesDescriptions[4] ={
+"Soldering settings",
+"Power Saving Settings",
+"User Interface settings",
+"Advanced options"
+};
#endif
#ifdef LANG_BR
-const char* SettingsLongNames[16] = {
+const char* SettingsDescriptions[17] = {
// These are all the help text for all the settings.
// No requirements on spacing or length.
/* Power source (DC or batt) */ "Fonte de alimentação. Define a tensão de corte. ",
@@ -971,6 +1188,7 @@ const char* SettingsLongNames[16] = {
/* Settings reset command */ "Reverte todos ajustes",
/* Calibrate input voltage */ "Calibra a tensão e configura os botões. Mantenha presionado para sair",
/* Advanced soldering screen enabled */ "Exibe informações avançadas durante o uso",
+ /* Description Scroll Speed */ "Speed this text scrolls past at",
};
const char* SettingsCalibrationWarning = "A ponta deve estar em temperatura ambiente antes de continuar!";
@@ -995,6 +1213,9 @@ const char SettingRightChar = 'D';
const char SettingLeftChar = 'C';
const char SettingAutoChar = 'A';
+const char SettingFastChar = 'F';
+const char SettingSlowChar = 'S';
+
const enum ShortNameType SettingsShortNameType = SHORT_NAME_SINGLE_LINE;
const char* SettingsShortNames[16][2] = {
// 1234567890
@@ -1015,4 +1236,15 @@ const char* SettingsShortNames[16][2] = {
/* (<= 8) Calibrate input voltage */ {"CAL.VOLT"},
/* (<= 6) Advanced soldering screen enabled */ {"AVNCAD"},
};
+const char* SettingsMenuEntries[4] = {
+/*Soldering Menu*/"Soldering\nSettings",
+/* Power Saving Menu*/"Sleep\nModes",
+/* UI Menu*/"User\nInterface",
+/* Advanced Menu*/"Advanced\nOptions", };
+const char* SettingsMenuEntriesDescriptions[4] ={
+"Soldering settings",
+"Power Saving Settings",
+"User Interface settings",
+"Advanced options"
+};
#endif
diff --git a/workspace/TS100/src/gui.cpp b/workspace/TS100/src/gui.cpp
index 87562c5b..2e38c126 100644
--- a/workspace/TS100/src/gui.cpp
+++ b/workspace/TS100/src/gui.cpp
@@ -5,11 +5,14 @@
* Author: Ben V. Brown
*/
-#include "gui.h"
+#include "gui.hpp"
+#include "main.hpp"
#include "cmsis_os.h"
-#include "hardware.h"
-#include "string.h"
+#include "Translation.h"
+#include "string.h"
+extern uint32_t lastButtonTime;
+void gui_Menu(const menuitem* menu);
static void settings_setInputVRange(void);
static void settings_displayInputVRange(void);
static void settings_setSleepTemp(void);
@@ -26,6 +29,8 @@ static void settings_setAdvancedSolderingScreens(void);
static void settings_displayAdvancedSolderingScreens(void);
static void settings_setAdvancedIDLEScreens(void);
static void settings_displayAdvancedIDLEScreens(void);
+static void settings_setScrollSpeed(void);
+static void settings_displayScrollSpeed(void);
static void settings_setDisplayRotation(void);
static void settings_displayDisplayRotation(void);
@@ -44,40 +49,153 @@ static void settings_displayCalibrate(void);
static void settings_setCalibrateVIN(void);
static void settings_displayCalibrateVIN(void);
-const menuitem settingsMenu[] = {
- /*Struct used for all settings options in the settings menu*/
- {(const char*)SettingsLongNames[0], {settings_setInputVRange}, {settings_displayInputVRange}}, /*Voltage input*/
- {(const char*)SettingsLongNames[1], {settings_setSleepTemp}, {settings_displaySleepTemp}}, /*Sleep Temp*/
- {(const char*)SettingsLongNames[2], {settings_setSleepTime}, {settings_displaySleepTime}}, /*Sleep Time*/
- {(const char*)SettingsLongNames[3], {settings_setShutdownTime}, {settings_displayShutdownTime}}, /*Shutdown Time*/
- {(const char*)SettingsLongNames[4], {settings_setSensitivity}, {settings_displaySensitivity}}, /* Motion Sensitivity*/
- {(const char*)SettingsLongNames[5], {settings_setTempF}, {settings_displayTempF}}, /* Temperature units*/
- {(const char*)SettingsLongNames[6], {settings_setAdvancedIDLEScreens}, {settings_displayAdvancedIDLEScreens}}, /* Advanced idle screen*/
- {(const char*)SettingsLongNames[15], {settings_setAdvancedSolderingScreens}, {settings_displayAdvancedSolderingScreens}}, /* Advanced soldering screen*/
- {(const char*)SettingsLongNames[7], {settings_setDisplayRotation}, {settings_displayDisplayRotation}}, /*Display Rotation*/
- {(const char*)SettingsLongNames[8], {settings_setBoostModeEnabled}, {settings_displayBoostModeEnabled}}, /*Enable Boost*/
- {(const char*)SettingsLongNames[9], {settings_setBoostTemp}, {settings_displayBoostTemp}}, /*Boost Temp*/
- {(const char*)SettingsLongNames[10], {settings_setAutomaticStartMode}, {settings_displayAutomaticStartMode}}, /*Auto start*/
- {(const char*)SettingsLongNames[11], {settings_setCoolingBlinkEnabled}, {settings_displayCoolingBlinkEnabled}}, /*Cooling blink warning*/
- {(const char*)SettingsLongNames[12], {settings_setCalibrate}, {settings_displayCalibrate}}, /*Calibrate tip*/
- {(const char*)SettingsLongNames[14], {settings_setCalibrateVIN}, {settings_displayCalibrateVIN}}, /*Voltage input cal*/
- //reset is last menu item
- {(const char*)SettingsLongNames[13], {settings_setResetSettings}, {settings_displayResetSettings}}, /*Resets settings*/
- {NULL, {NULL}, {NULL}} // end of menu marker. DO NOT REMOVE
+//Menu functions
+static void settings_displaySolderingMenu(void);
+static void settings_enterSolderingMenu(void);
+static void settings_displayPowerMenu(void);
+static void settings_enterPowerMenu(void);
+static void settings_displayUIMenu(void);
+static void settings_enterUIMenu(void);
+static void settings_displayAdvancedMenu(void);
+static void settings_enterAdvancedMenu(void);
+/*
+ * Root Settings Menu
+ *
+ * Power Source
+ * Soldering
+ * Boost Mode Enabled
+ * Boost Mode Temp
+ * Auto Start
+ *
+ * Power Saving
+ * Sleep Temp
+ * Sleep Time
+ * Shutdown Time
+ * Motion Sensitivity
+ *
+ * UI
+ * // Language
+ * Scrolling Speed
+ * Temperature Unit
+ * Display orientation
+ * Cooldown blink
+ *
+ * Advanced
+ * Detailed IDLE
+ * Detailed Soldering
+ * Logo Time
+ * Calibrate Temperature
+ * Calibrate Input V
+ * Reset Settings
+ *
+ */
+const menuitem rootSettingsMenu[] {
+/*
+ * Power Source
+ * Soldering Menu
+ * Power Saving Menu
+ * UI Menu
+ * Advanced Menu
+ * Exit
+ */
+{ (const char*) SettingsDescriptions[0], { settings_setInputVRange }, {
+ settings_displayInputVRange } }, /*Voltage input*/
+{ (const char*) SettingsMenuEntriesDescriptions[0], {
+ settings_enterSolderingMenu }, { settings_displaySolderingMenu } }, /*Soldering*/
+{ (const char*) SettingsMenuEntriesDescriptions[1], { settings_enterPowerMenu },
+ { settings_displayPowerMenu } }, /*Sleep Options Menu*/
+{ (const char*) SettingsMenuEntriesDescriptions[2], { settings_enterUIMenu }, {
+ settings_displayUIMenu } }, /*UI Menu*/
+{ (const char*) SettingsMenuEntriesDescriptions[3],
+ { settings_enterAdvancedMenu }, { settings_displayAdvancedMenu } }, /*Advanced Menu*/
+{ NULL, { NULL }, { NULL } } // end of menu marker. DO NOT REMOVE
+};
+
+const menuitem solderingMenu[] = {
+/*
+ * Boost Mode Enabled
+ * Boost Mode Temp
+ * Auto Start
+ */
+{ (const char*) SettingsDescriptions[8], { settings_setBoostModeEnabled }, {
+ settings_displayBoostModeEnabled } }, /*Enable Boost*/
+{ (const char*) SettingsDescriptions[9], { settings_setBoostTemp }, {
+ settings_displayBoostTemp } }, /*Boost Temp*/
+{ (const char*) SettingsDescriptions[10], { settings_setAutomaticStartMode }, {
+ settings_displayAutomaticStartMode } }, /*Auto start*/
+{ NULL, { NULL }, { NULL } } // end of menu marker. DO NOT REMOVE
+};
+const menuitem UIMenu[] = {
+/*
+ // Language
+ * Scrolling Speed
+ * Temperature Unit
+ * Display orientation
+ * Cooldown blink
+ */
+{ (const char*) SettingsDescriptions[5], { settings_setTempF }, {
+ settings_displayTempF } }, /* Temperature units*/
+{ (const char*) SettingsDescriptions[7], { settings_setDisplayRotation }, {
+ settings_displayDisplayRotation } }, /*Display Rotation*/
+{ (const char*) SettingsDescriptions[11], { settings_setCoolingBlinkEnabled }, {
+ settings_displayCoolingBlinkEnabled } }, /*Cooling blink warning*/
+{ (const char*) SettingsDescriptions[16], { settings_setScrollSpeed }, {
+ settings_displayScrollSpeed } }, /*Scroll Speed for descriptions*/
+{ NULL, { NULL }, { NULL } } // end of menu marker. DO NOT REMOVE
+};
+const menuitem PowerMenu[] = {
+/*
+ * Sleep Temp
+ * Sleep Time
+ * Shutdown Time
+ * Motion Sensitivity
+ */
+{ (const char*) SettingsDescriptions[1], { settings_setSleepTemp }, {
+ settings_displaySleepTemp } }, /*Sleep Temp*/
+{ (const char*) SettingsDescriptions[2], { settings_setSleepTime }, {
+ settings_displaySleepTime } }, /*Sleep Time*/
+{ (const char*) SettingsDescriptions[3], { settings_setShutdownTime }, {
+ settings_displayShutdownTime } }, /*Shutdown Time*/
+{ (const char*) SettingsDescriptions[4], { settings_setSensitivity }, {
+ settings_displaySensitivity } }, /* Motion Sensitivity*/
+{ NULL, { NULL }, { NULL } } // end of menu marker. DO NOT REMOVE
+};
+const menuitem advancedMenu[] = {
+
+/*
+ * Detailed IDLE
+ * Detailed Soldering
+ * Logo Time
+ * Calibrate Temperature
+ * Calibrate Input V
+ * Reset Settings
+ */
+{ (const char*) SettingsDescriptions[6], { settings_setAdvancedIDLEScreens }, {
+ settings_displayAdvancedIDLEScreens } }, /* Advanced idle screen*/
+{ (const char*) SettingsDescriptions[15],
+ { settings_setAdvancedSolderingScreens }, {
+ settings_displayAdvancedSolderingScreens } }, /* Advanced soldering screen*/
+{ (const char*) SettingsDescriptions[13], { settings_setResetSettings }, {
+ settings_displayResetSettings } }, /*Resets settings*/
+{ (const char*) SettingsDescriptions[12], { settings_setCalibrate }, {
+ settings_displayCalibrate } }, /*Calibrate tip*/
+{ (const char*) SettingsDescriptions[14], { settings_setCalibrateVIN }, {
+ settings_displayCalibrateVIN } }, /*Voltage input cal*/
+{ NULL, { NULL }, { NULL } } // end of menu marker. DO NOT REMOVE
};
static void printShortDescriptionSingleLine(uint32_t shortDescIndex) {
- lcd.setFont(0);
- lcd.setCharCursor(0, 0);
- lcd.print(SettingsShortNames[shortDescIndex][0]);
+ lcd.setFont(0);
+ lcd.setCharCursor(0, 0);
+ lcd.print(SettingsShortNames[shortDescIndex][0]);
}
static void printShortDescriptionDoubleLine(uint32_t shortDescIndex) {
- lcd.setFont(1);
- lcd.setCharCursor(0, 0);
- lcd.print(SettingsShortNames[shortDescIndex][0]);
- lcd.setCharCursor(0, 1);
- lcd.print(SettingsShortNames[shortDescIndex][1]);
+ lcd.setFont(1);
+ lcd.setCharCursor(0, 0);
+ lcd.print(SettingsShortNames[shortDescIndex][0]);
+ lcd.setCharCursor(0, 1);
+ lcd.print(SettingsShortNames[shortDescIndex][1]);
}
/**
@@ -88,17 +206,17 @@ static void printShortDescriptionDoubleLine(uint32_t shortDescIndex) {
* description.
*/
static void printShortDescription(uint32_t shortDescIndex,
- uint16_t cursorCharPosition) {
- // print short description (default single line, explicit double line)
- if (SettingsShortNameType == SHORT_NAME_DOUBLE_LINE) {
- printShortDescriptionDoubleLine(shortDescIndex);
- } else {
- printShortDescriptionSingleLine(shortDescIndex);
- }
+ uint16_t cursorCharPosition) {
+ // print short description (default single line, explicit double line)
+ if (SettingsShortNameType == SHORT_NAME_DOUBLE_LINE) {
+ printShortDescriptionDoubleLine(shortDescIndex);
+ } else {
+ printShortDescriptionSingleLine(shortDescIndex);
+ }
- // prepare cursor for value
- lcd.setFont(0);
- lcd.setCharCursor(cursorCharPosition, 0);
+ // prepare cursor for value
+ lcd.setFont(0);
+ lcd.setCharCursor(cursorCharPosition, 0);
}
static int userConfirmation(const char* message) {
@@ -152,286 +270,435 @@ static int userConfirmation(const char* message) {
return 0;
}
-
static void settings_setInputVRange(void) {
- systemSettings.cutoutSetting = (systemSettings.cutoutSetting + 1) % 5;
+ systemSettings.cutoutSetting = (systemSettings.cutoutSetting + 1) % 5;
}
static void settings_displayInputVRange(void) {
- printShortDescription(0, 6);
+ printShortDescription(0, 6);
- if (systemSettings.cutoutSetting) {
- lcd.drawChar('0' + 2 + systemSettings.cutoutSetting);
- lcd.drawChar('S');
- } else {
- lcd.print("DC");
- }
+ if (systemSettings.cutoutSetting) {
+ lcd.drawChar('0' + 2 + systemSettings.cutoutSetting);
+ lcd.drawChar('S');
+ } else {
+ lcd.print("DC");
+ }
}
-
static void settings_setSleepTemp(void) {
- systemSettings.SleepTemp += 10;
- if (systemSettings.SleepTemp > 300) systemSettings.SleepTemp = 50;
+ systemSettings.SleepTemp += 10;
+ if (systemSettings.SleepTemp > 300)
+ systemSettings.SleepTemp = 50;
}
static void settings_displaySleepTemp(void) {
- printShortDescription(1, 5);
- lcd.printNumber(systemSettings.SleepTemp, 3);
+ printShortDescription(1, 5);
+ lcd.printNumber(systemSettings.SleepTemp, 3);
}
-
static void settings_setSleepTime(void) {
- systemSettings.SleepTime++; // Go up 1 minute at a time
- if (systemSettings.SleepTime >= 16) {
- systemSettings.SleepTime = 1; // can't set time over 10 mins
- }
- // Remember that ^ is the time of no movement
+ systemSettings.SleepTime++; // Go up 1 minute at a time
+ if (systemSettings.SleepTime >= 16) {
+ systemSettings.SleepTime = 1; // can't set time over 10 mins
+ }
+ // Remember that ^ is the time of no movement
}
static void settings_displaySleepTime(void) {
- printShortDescription(2, 5);
+ printShortDescription(2, 5);
- if (systemSettings.SleepTime < 6) {
- lcd.printNumber(systemSettings.SleepTime * 10, 2);
- lcd.drawChar('S');
- } else {
- lcd.printNumber(systemSettings.SleepTime - 5, 2);
- lcd.drawChar('M');
- }
+ if (systemSettings.SleepTime < 6) {
+ lcd.printNumber(systemSettings.SleepTime * 10, 2);
+ lcd.drawChar('S');
+ } else {
+ lcd.printNumber(systemSettings.SleepTime - 5, 2);
+ lcd.drawChar('M');
+ }
}
-
static void settings_setShutdownTime(void) {
- systemSettings.ShutdownTime++;
- if (systemSettings.ShutdownTime > 60) {
- systemSettings.ShutdownTime = 0; // wrap to off
- }
+ systemSettings.ShutdownTime++;
+ if (systemSettings.ShutdownTime > 60) {
+ systemSettings.ShutdownTime = 0; // wrap to off
+ }
}
static void settings_displayShutdownTime(void) {
- printShortDescription(3, 6);
- lcd.printNumber(systemSettings.ShutdownTime, 2);
+ printShortDescription(3, 6);
+ lcd.printNumber(systemSettings.ShutdownTime, 2);
}
-
static void settings_setTempF(void) {
- systemSettings.temperatureInF = !systemSettings.temperatureInF;
+ systemSettings.temperatureInF = !systemSettings.temperatureInF;
}
static void settings_displayTempF(void) {
- printShortDescription(5, 7);
+ printShortDescription(5, 7);
- lcd.drawChar((systemSettings.temperatureInF) ? 'F' : 'C');
+ lcd.drawChar((systemSettings.temperatureInF) ? 'F' : 'C');
}
-
static void settings_setSensitivity(void) {
- systemSettings.sensitivity++;
- systemSettings.sensitivity = systemSettings.sensitivity % 10;
+ systemSettings.sensitivity++;
+ systemSettings.sensitivity = systemSettings.sensitivity % 10;
}
static void settings_displaySensitivity(void) {
- printShortDescription(4, 7);
- lcd.printNumber(systemSettings.sensitivity, 1);
+ printShortDescription(4, 7);
+ lcd.printNumber(systemSettings.sensitivity, 1);
}
-
static void settings_setAdvancedSolderingScreens(void) {
- systemSettings.detailedSoldering = !systemSettings.detailedSoldering;
+ systemSettings.detailedSoldering = !systemSettings.detailedSoldering;
}
static void settings_displayAdvancedSolderingScreens(void) {
- printShortDescription(15, 7);
+ printShortDescription(15, 7);
- lcd.drawCheckbox(systemSettings.detailedSoldering);
+ lcd.drawCheckbox(systemSettings.detailedSoldering);
}
-
static void settings_setAdvancedIDLEScreens(void) {
- systemSettings.detailedIDLE = !systemSettings.detailedIDLE;
+ systemSettings.detailedIDLE = !systemSettings.detailedIDLE;
}
static void settings_displayAdvancedIDLEScreens(void) {
- printShortDescription(6, 7);
+ printShortDescription(6, 7);
- lcd.drawCheckbox(systemSettings.detailedIDLE);
+ lcd.drawCheckbox(systemSettings.detailedIDLE);
+}
+static void settings_setScrollSpeed(void) {
+
+ if (systemSettings.descriptionScrollSpeed == 0)
+ systemSettings.descriptionScrollSpeed = 1;
+ else
+ systemSettings.descriptionScrollSpeed = 0;
+}
+static void settings_displayScrollSpeed(void) {
+ printShortDescription(16, 7);
+ lcd.drawChar(
+ (systemSettings.descriptionScrollSpeed) ?
+ SettingFastChar : SettingSlowChar);
}
-
static void settings_setDisplayRotation(void) {
- systemSettings.OrientationMode++;
- systemSettings.OrientationMode = systemSettings.OrientationMode % 3;
+ systemSettings.OrientationMode++;
+ systemSettings.OrientationMode = systemSettings.OrientationMode % 3;
}
static void settings_displayDisplayRotation(void) {
- printShortDescription(7, 7);
+ printShortDescription(7, 7);
- switch (systemSettings.OrientationMode) {
- case 0:
- lcd.drawChar(SettingRightChar);
- break;
- case 1:
- lcd.drawChar(SettingLeftChar);
- break;
- case 2:
- lcd.drawChar(SettingAutoChar);
- break;
- default:
- lcd.drawChar(SettingRightChar);
- break;
- }
+ switch (systemSettings.OrientationMode) {
+ case 0:
+ lcd.drawChar(SettingRightChar);
+ break;
+ case 1:
+ lcd.drawChar(SettingLeftChar);
+ break;
+ case 2:
+ lcd.drawChar(SettingAutoChar);
+ break;
+ default:
+ lcd.drawChar(SettingRightChar);
+ break;
+ }
}
-
static void settings_setBoostModeEnabled(void) {
- systemSettings.boostModeEnabled = !systemSettings.boostModeEnabled;
+ systemSettings.boostModeEnabled = !systemSettings.boostModeEnabled;
}
static void settings_displayBoostModeEnabled(void) {
- printShortDescription(8, 7);
+ printShortDescription(8, 7);
- lcd.drawCheckbox(systemSettings.boostModeEnabled);
+ lcd.drawCheckbox(systemSettings.boostModeEnabled);
}
-
static void settings_setBoostTemp(void) {
- systemSettings.BoostTemp += 10; // Go up 10 at a time
- if (systemSettings.temperatureInF) {
- if (systemSettings.BoostTemp > 850) {
- systemSettings.BoostTemp = 480; // loop back at 250
- }
- } else {
- if (systemSettings.BoostTemp > 450) {
- systemSettings.BoostTemp = 250; // loop back at 250
- }
- }
+ systemSettings.BoostTemp += 10; // Go up 10 at a time
+ if (systemSettings.temperatureInF) {
+ if (systemSettings.BoostTemp > 850) {
+ systemSettings.BoostTemp = 480; // loop back at 250
+ }
+ } else {
+ if (systemSettings.BoostTemp > 450) {
+ systemSettings.BoostTemp = 250; // loop back at 250
+ }
+ }
}
static void settings_displayBoostTemp(void) {
- printShortDescription(9, 5);
- lcd.printNumber(systemSettings.BoostTemp, 3);
+ printShortDescription(9, 5);
+ lcd.printNumber(systemSettings.BoostTemp, 3);
}
-
static void settings_setAutomaticStartMode(void) {
- systemSettings.autoStartMode++;
- systemSettings.autoStartMode %= 2;
+ systemSettings.autoStartMode++;
+ systemSettings.autoStartMode %= 2;
}
static void settings_displayAutomaticStartMode(void) {
- printShortDescription(10, 7);
+ printShortDescription(10, 7);
- lcd.drawCheckbox(systemSettings.autoStartMode);
+ lcd.drawCheckbox(systemSettings.autoStartMode);
}
-
static void settings_setCoolingBlinkEnabled(void) {
- systemSettings.coolingTempBlink = !systemSettings.coolingTempBlink;
+ systemSettings.coolingTempBlink = !systemSettings.coolingTempBlink;
}
static void settings_displayCoolingBlinkEnabled(void) {
- printShortDescription(11, 7);
+ printShortDescription(11, 7);
- lcd.drawCheckbox(systemSettings.coolingTempBlink);
+ lcd.drawCheckbox(systemSettings.coolingTempBlink);
}
-
static void settings_setResetSettings(void) {
- if(userConfirmation(SettingsResetWarning)) {
- resetSettings();
+ if (userConfirmation(SettingsResetWarning)) {
+ resetSettings();
- lcd.setFont(0);
- lcd.setCursor(0, 0);
- lcd.print("RESET OK");
- lcd.refresh();
+ lcd.setFont(0);
+ lcd.setCursor(0, 0);
+ lcd.print("RESET OK");
+ lcd.refresh();
- waitForButtonPressOrTimeout(200);
- }
+ waitForButtonPressOrTimeout(200);
+ }
}
static void settings_displayResetSettings(void) {
- printShortDescription(13, 7);
+ printShortDescription(13, 7);
}
-
static void settings_setCalibrate(void) {
- if(userConfirmation(SettingsCalibrationWarning)) {
- //User confirmed
- //So we now perform the actual calculation
- lcd.clearScreen();
- lcd.setCursor(0, 0);
- lcd.print(".....");
- lcd.refresh();
+ if (userConfirmation(SettingsCalibrationWarning)) {
+ //User confirmed
+ //So we now perform the actual calculation
+ lcd.clearScreen();
+ lcd.setCursor(0, 0);
+ lcd.print(".....");
+ lcd.refresh();
- setCalibrationOffset(0); //turn off the current offset
- for (uint8_t i = 0; i < 20; i++) {
- getTipRawTemp(1); //cycle through the filter a fair bit to ensure we're stable.
- osDelay(20);
- }
- osDelay(100);
+ setCalibrationOffset(0); //turn off the current offset
+ for (uint8_t i = 0; i < 20; i++) {
+ getTipRawTemp(1); //cycle through the filter a fair bit to ensure we're stable.
+ osDelay(20);
+ }
+ osDelay(100);
- uint16_t rawTempC = tipMeasurementToC(getTipRawTemp(0));
- //We now measure the current reported tip temperature
- uint16_t handleTempC = getHandleTemperature() / 10;
- //We now have an error between these that we want to store as the offset
- rawTempC = rawTempC - handleTempC;
- systemSettings.CalibrationOffset = rawTempC;
- setCalibrationOffset(rawTempC); //store the error
- osDelay(100);
- }
+ uint16_t rawTempC = tipMeasurementToC(getTipRawTemp(0));
+ //We now measure the current reported tip temperature
+ uint16_t handleTempC = getHandleTemperature() / 10;
+ //We now have an error between these that we want to store as the offset
+ rawTempC = rawTempC - handleTempC;
+ systemSettings.CalibrationOffset = rawTempC;
+ setCalibrationOffset(rawTempC); //store the error
+ osDelay(100);
+ }
}
static void settings_displayCalibrate(void) {
- printShortDescription(12, 5);
+ printShortDescription(12, 5);
}
-
static void settings_setCalibrateVIN(void) {
- // Jump to the voltage calibration subscreen
- lcd.setFont(0);
- lcd.clearScreen();
- lcd.setCursor(0, 0);
+ // Jump to the voltage calibration subscreen
+ lcd.setFont(0);
+ lcd.clearScreen();
+ lcd.setCursor(0, 0);
- for (;;) {
- lcd.setCursor(0, 0);
- lcd.printNumber(getInputVoltageX10(systemSettings.voltageDiv) / 10, 2);
- lcd.print(".");
- lcd.printNumber(getInputVoltageX10(systemSettings.voltageDiv) % 10, 1);
- lcd.print("V");
+ for (;;) {
+ lcd.setCursor(0, 0);
+ lcd.printNumber(getInputVoltageX10(systemSettings.voltageDiv) / 10, 2);
+ lcd.print(".");
+ lcd.printNumber(getInputVoltageX10(systemSettings.voltageDiv) % 10, 1);
+ lcd.print("V");
- ButtonState buttons = getButtonState();
- switch (buttons) {
- case BUTTON_F_SHORT:
- systemSettings.voltageDiv++;
- break;
+ ButtonState buttons = getButtonState();
+ switch (buttons) {
+ case BUTTON_F_SHORT:
+ systemSettings.voltageDiv++;
+ break;
- case BUTTON_B_SHORT:
- systemSettings.voltageDiv--;
- break;
+ case BUTTON_B_SHORT:
+ systemSettings.voltageDiv--;
+ break;
- case BUTTON_BOTH:
- case BUTTON_F_LONG:
- case BUTTON_B_LONG:
- saveSettings();
- return;
+ case BUTTON_BOTH:
+ case BUTTON_F_LONG:
+ case BUTTON_B_LONG:
+ saveSettings();
+ return;
- case BUTTON_NONE:
- default:
- break;
- }
+ case BUTTON_NONE:
+ default:
+ break;
+ }
- lcd.refresh();
- osDelay(50);
+ lcd.refresh();
+ osDelay(50);
- // Cap to sensible values
- if (systemSettings.voltageDiv < 90) {
- systemSettings.voltageDiv = 90;
- } else if (systemSettings.voltageDiv > 130) {
- systemSettings.voltageDiv = 130;
- }
- }
+ // Cap to sensible values
+ if (systemSettings.voltageDiv < 90) {
+ systemSettings.voltageDiv = 90;
+ } else if (systemSettings.voltageDiv > 130) {
+ systemSettings.voltageDiv = 130;
+ }
+ }
}
static void settings_displayCalibrateVIN(void) {
- printShortDescription(14, 5);
+ printShortDescription(14, 5);
+}
+static void settings_displaySolderingMenu(void) {
+ //Call into the menu
+ lcd.setFont(1);
+ lcd.setCursor(0, 0);
+ //Draw title
+ lcd.print(SettingsMenuEntries[0]);
+ //Draw symbol
+ //16 pixel wide image
+ lcd.drawArea(96 - 16, 0, 16, 16, (&SettingsMenuIcons[(16 * 2) * 0]));
+}
+static void settings_enterSolderingMenu(void) {
+ gui_Menu(solderingMenu);
+}
+static void settings_displayPowerMenu(void) {
+ lcd.setFont(1);
+ lcd.setCursor(0, 0);
+ //Draw title
+ lcd.print(SettingsMenuEntries[1]);
+ //Draw symbol
+ //16 pixel wide image
+ lcd.drawArea(96 - 16, 0, 16, 16, (&SettingsMenuIcons[(16 * 2) * 1]));
+}
+static void settings_enterPowerMenu(void) {
+ gui_Menu(PowerMenu);
+}
+static void settings_displayUIMenu(void) {
+ lcd.setFont(1);
+ lcd.setCursor(0, 0);
+ //Draw title
+ lcd.print(SettingsMenuEntries[2]);
+ //Draw symbol
+ //16 pixel wide image
+ lcd.drawArea(96 - 16, 0, 16, 16, (&SettingsMenuIcons[(16 * 2) * 2]));
+}
+static void settings_enterUIMenu(void) {
+ gui_Menu(UIMenu);
+}
+static void settings_displayAdvancedMenu(void) {
+ lcd.setFont(1);
+ lcd.setCursor(0, 0);
+ //Draw title
+ lcd.print(SettingsMenuEntries[3]);
+ //Draw symbol
+ //16 pixel wide image
+ lcd.drawArea(96 - 16, 0, 16, 16, (&SettingsMenuIcons[(16 * 2) * 3]));
+
+}
+static void settings_enterAdvancedMenu(void) {
+ gui_Menu(advancedMenu);
+}
+
+void gui_Menu(const menuitem* menu) {
+ // Draw the settings menu and provide iteration support etc
+ uint8_t currentScreen = 0;
+ uint32_t autoRepeatTimer = 0;
+ bool earlyExit = false;
+ uint32_t descriptionStart = 0;
+ int16_t lastOffset = -1;
+ bool lcdRefresh = true;
+
+ // lower the value - higher the speed
+ int16_t descriptionWidth = FONT_12_WIDTH
+ * (strlen(menu[currentScreen].description) + 7);
+
+ while ((menu[currentScreen].draw.func != NULL) && earlyExit == false) {
+ lcd.setFont(0);
+ lcd.setCursor(0, 0);
+ //If the user has hesitated for >=3 seconds, show the long text
+ //Otherwise "draw" the option
+ if (xTaskGetTickCount() - lastButtonTime < 300) {
+ lcd.clearScreen();
+ menu[currentScreen].draw.func();
+ lastOffset = -1;
+ lcdRefresh = true;
+ } else {
+ // Draw description
+ if (descriptionStart == 0)
+ descriptionStart = xTaskGetTickCount();
+
+ int16_t descriptionOffset = ((xTaskGetTickCount() - descriptionStart)
+ / (systemSettings.descriptionScrollSpeed == 1?1:2));
+ descriptionOffset %= descriptionWidth;//Roll around at the end
+
+ if (lastOffset != descriptionOffset) {
+ lcd.clearScreen();
+
+ //^ Rolling offset based on time
+ lcd.setCursor((OLED_WIDTH - descriptionOffset), 0);
+ lcd.print(menu[currentScreen].description);
+ lastOffset = descriptionOffset;
+ lcdRefresh = true;
+ }
+
+ }
+
+ ButtonState buttons = getButtonState();
+
+ switch (buttons) {
+ case BUTTON_BOTH:
+ earlyExit = true; // will make us exit next loop
+ descriptionStart = 0;
+ break;
+ case BUTTON_F_SHORT:
+ // increment
+ if (descriptionStart == 0) {
+ if (menu[currentScreen].incrementHandler.func != NULL)
+ menu[currentScreen].incrementHandler.func();
+ else
+ earlyExit = true;
+ } else
+ descriptionStart = 0;
+ break;
+ case BUTTON_B_SHORT:
+ if (descriptionStart == 0)
+ currentScreen++;
+ else
+ descriptionStart = 0;
+ break;
+ //#TODO: Impliment ramping change
+ case BUTTON_F_LONG:
+ if (xTaskGetTickCount() - autoRepeatTimer > 30) {
+ menu[currentScreen].incrementHandler.func();
+ autoRepeatTimer = xTaskGetTickCount();
+ descriptionStart = 0;
+ }
+ break;
+ case BUTTON_B_LONG:
+ if (xTaskGetTickCount() - autoRepeatTimer > 30) {
+ currentScreen++;
+ autoRepeatTimer = xTaskGetTickCount();
+ descriptionStart = 0;
+ }
+ break;
+ case BUTTON_NONE:
+ default:
+ break;
+ }
+
+ if (lcdRefresh) {
+ lcd.refresh(); // update the LCD
+ osDelay(20);
+ lcdRefresh = false;
+ }
+ }
+
+}
+
+void enterSettingsMenu() {
+ gui_Menu(rootSettingsMenu); //Call the root menu
+ saveSettings();
}
diff --git a/workspace/TS100/src/main.cpp b/workspace/TS100/src/main.cpp
index 9ae01505..4e02ad47 100644
--- a/workspace/TS100/src/main.cpp
+++ b/workspace/TS100/src/main.cpp
@@ -5,11 +5,11 @@
#include "Settings.h"
#include "Translation.h"
#include "cmsis_os.h"
-#include "gui.h"
#include "stdlib.h"
#include "stm32f1xx_hal.h"
#include "string.h"
#include "LIS2DH12.hpp"
+#include
#define ACCELDEBUG 0
// C++ objects
@@ -325,102 +325,8 @@ static void gui_solderingTempAdjust() {
GUIDelay();
}
}
-static void gui_settingsMenu() {
- // Draw the settings menu and provide iteration support etc
- uint8_t currentScreen = 0;
- uint32_t autoRepeatTimer = 0;
- bool earlyExit = false;
- uint32_t descriptionStart = 0;
- int16_t lastOffset = -1;
- bool lcdRefresh = true;
- // TODO Scrolling speed factor can be moved to User Interface settings
- uint16_t scrollingSpeedFactor = 4; // lower the value - higher the speed
- while ((settingsMenu[currentScreen].incrementHandler.func != NULL)
- && earlyExit == false) {
- lcd.setFont(0);
- lcd.setCursor(0, 0);
-
- if (xTaskGetTickCount() - lastButtonTime < 400) {
- lcd.clearScreen();
-
- settingsMenu[currentScreen].draw.func();
- lastOffset = -1;
- lcdRefresh = true;
- } else {
- // Draw description
- // draw string starting from descriptionOffset
- int16_t descriptionWidth = FONT_12_WIDTH
- * (strlen(settingsMenu[currentScreen].description) + 7);
- if (descriptionStart == 0)
- descriptionStart = HAL_GetTick();
-
- int16_t descriptionOffset =
- (int) ((HAL_GetTick() - descriptionStart)
- / (float) scrollingSpeedFactor + 0.5)
- % descriptionWidth;
-
- if (lastOffset != descriptionOffset) {
- lcd.clearScreen();
-
- //^ Rolling offset based on time
- lcd.setCursor((OLED_WIDTH - descriptionOffset), 0);
- lcd.print(settingsMenu[currentScreen].description);
- lastOffset = descriptionOffset;
- lcdRefresh = true;
- }
-
- }
-
- ButtonState buttons = getButtonState();
-
- switch (buttons) {
- case BUTTON_BOTH:
- earlyExit = true; // will make us exit next loop
- descriptionStart = 0;
- break;
- case BUTTON_F_SHORT:
- // increment
- if (descriptionStart == 0)
- settingsMenu[currentScreen].incrementHandler.func();
- else
- descriptionStart = 0;
- break;
- case BUTTON_B_SHORT:
- if (descriptionStart == 0)
- currentScreen++;
- else
- descriptionStart = 0;
- break;
- case BUTTON_F_LONG:
- if (xTaskGetTickCount() - autoRepeatTimer > 30) {
- settingsMenu[currentScreen].incrementHandler.func();
- autoRepeatTimer = xTaskGetTickCount();
- descriptionStart = 0;
- }
- break;
- case BUTTON_B_LONG:
- if (xTaskGetTickCount() - autoRepeatTimer > 30) {
- currentScreen++;
- autoRepeatTimer = xTaskGetTickCount();
- descriptionStart = 0;
- }
- break;
- case BUTTON_NONE:
- default:
- break;
- }
-
- if (lcdRefresh) {
- lcd.refresh(); // update the LCD
- osDelay(20);
- lcdRefresh = false;
- }
- }
-
- saveSettings();
-}
static int gui_showTipTempWarning() {
for (;;) {
@@ -775,7 +681,7 @@ void startGUITask(void const *argument) {
ticks = xTaskGetTickCount();
ButtonState buttons = getButtonState();
if (buttons)
- ticks = xTaskGetTickCount();//make timeout now so we will exit
+ ticks = xTaskGetTickCount(); //make timeout now so we will exit
GUIDelay();
}
@@ -835,7 +741,7 @@ void startGUITask(void const *argument) {
case BUTTON_B_SHORT:
lcd.setFont(0);
lcd.displayOnOff(true); // turn lcd on
- gui_settingsMenu(); // enter the settings menu
+ enterSettingsMenu(); // enter the settings menu
saveSettings();
setCalibrationOffset(systemSettings.CalibrationOffset); // ensure cal offset is applied
break;