mirror of
https://github.com/Ralim/IronOS.git
synced 2025-02-26 07:53:55 +00:00
Add short summary messages for settings
This commit is contained in:
@@ -37,7 +37,7 @@ void setup() {
|
|||||||
readIronTemp(systemSettings.tempCalibration, 0,0); //load the default calibration value
|
readIronTemp(systemSettings.tempCalibration, 0,0); //load the default calibration value
|
||||||
Init_Oled(systemSettings.flipDisplay); //Init the OLED display
|
Init_Oled(systemSettings.flipDisplay); //Init the OLED display
|
||||||
|
|
||||||
OLED_DrawString("VER 1.09", 8); //
|
OLED_DrawString("VER 1.10", 8); //Version Number
|
||||||
delayMs(800); //Pause to show version number
|
delayMs(800); //Pause to show version number
|
||||||
Start_Watchdog(1000); //start the system watch dog as 1 second timeout
|
Start_Watchdog(1000); //start the system watch dog as 1 second timeout
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,13 @@
|
|||||||
* Author: Ralim <ralim@ralimtek.com>
|
* Author: Ralim <ralim@ralimtek.com>
|
||||||
*/
|
*/
|
||||||
#include "Modes.h"
|
#include "Modes.h"
|
||||||
|
const char *SettingsLongNames[] = { " Undervoltage Cutout",
|
||||||
|
" Sleep Temperature", " Sleep Timeout", " Shutdown Timeout",
|
||||||
|
" Motion Detection", " Motion Sensitivity",
|
||||||
|
" Temperature Unit", " Display Update Rate",
|
||||||
|
" Left Handed Display" };
|
||||||
|
const uint8_t SettingsLongNamesLengths[] =
|
||||||
|
{ 25, 23, 19, 22, 22, 24, 22, 25, 25 };
|
||||||
uint8_t CalStatus = 0;
|
uint8_t CalStatus = 0;
|
||||||
//This does the required processing and state changes
|
//This does the required processing and state changes
|
||||||
void ProcessUI() {
|
void ProcessUI() {
|
||||||
@@ -297,7 +304,8 @@ void drawTemp(uint16_t temp, uint8_t x) {
|
|||||||
* Performs all the OLED drawing for the current operating mode
|
* Performs all the OLED drawing for the current operating mode
|
||||||
*/
|
*/
|
||||||
void DrawUI() {
|
void DrawUI() {
|
||||||
static uint32_t lastSolderingDrawTime = 0;
|
static uint32_t lastOLEDDrawTime = 0;
|
||||||
|
static uint8_t settingsLongTestScrollPos = 0;
|
||||||
uint16_t temp = readIronTemp(0, 0, 0xFFFF);
|
uint16_t temp = readIronTemp(0, 0, 0xFFFF);
|
||||||
switch (operatingMode) {
|
switch (operatingMode) {
|
||||||
case STARTUP:
|
case STARTUP:
|
||||||
@@ -316,13 +324,13 @@ void DrawUI() {
|
|||||||
//The user is soldering
|
//The user is soldering
|
||||||
{
|
{
|
||||||
if (systemSettings.displayUpdateMode == DISPLAYMODE_SLOW
|
if (systemSettings.displayUpdateMode == DISPLAYMODE_SLOW
|
||||||
&& (millis() - lastSolderingDrawTime < 1000))
|
&& (millis() - lastOLEDDrawTime < 1000))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (systemSettings.displayUpdateMode == DISPLAYMODE_FAST
|
if (systemSettings.displayUpdateMode == DISPLAYMODE_FAST
|
||||||
|| systemSettings.displayUpdateMode == DISPLAYMODE_SLOW) {
|
|| systemSettings.displayUpdateMode == DISPLAYMODE_SLOW) {
|
||||||
drawTemp(temp, 0);
|
drawTemp(temp, 0);
|
||||||
lastSolderingDrawTime = millis();
|
lastOLEDDrawTime = millis();
|
||||||
}
|
}
|
||||||
if (systemSettings.displayUpdateMode == DISPLAYMODE_ROUND) {
|
if (systemSettings.displayUpdateMode == DISPLAYMODE_ROUND) {
|
||||||
drawTemp((temp / 100) * 100, 0);
|
drawTemp((temp / 100) * 100, 0);
|
||||||
@@ -370,83 +378,105 @@ void DrawUI() {
|
|||||||
break;
|
break;
|
||||||
case SETTINGS:
|
case SETTINGS:
|
||||||
//We are prompting the user the setting name
|
//We are prompting the user the setting name
|
||||||
|
if (millis() - getLastButtonPress() > 3000) {
|
||||||
switch (settingsPage) {
|
//If the user has idled for > 3 seconds, show the long name for the selected setting instead
|
||||||
case UVCO:
|
//draw from settingsLongTestScrollPos through to end of screen
|
||||||
OLED_DrawString("UVCO ", 5);
|
uint8_t lengthLeft = SettingsLongNamesLengths[settingsPage]
|
||||||
OLED_DrawTwoNumber(systemSettings.cutoutVoltage, 5);
|
- settingsLongTestScrollPos;
|
||||||
OLED_DrawChar('V', 7);
|
if (lengthLeft < 1)
|
||||||
break;
|
settingsLongTestScrollPos = 0;
|
||||||
case SLEEP_TEMP:
|
//^ Reset once not much left
|
||||||
OLED_DrawString("STMP ", 5);
|
if (lengthLeft > 8)
|
||||||
OLED_DrawThreeNumber(systemSettings.SleepTemp / 10, 5);
|
lengthLeft = 8;
|
||||||
break;
|
OLED_DrawString(
|
||||||
case SLEEP_TIME:
|
SettingsLongNames[(uint8_t) settingsPage]
|
||||||
OLED_DrawString("SLTME ", 6);
|
+ settingsLongTestScrollPos, lengthLeft);
|
||||||
OLED_DrawTwoNumber(systemSettings.SleepTime, 6);
|
if (lengthLeft < 8)
|
||||||
break;
|
for (uint8_t i = lengthLeft; i < 8; i++)
|
||||||
case SHUTDOWN_TIME:
|
OLED_DrawChar(' ', i);
|
||||||
OLED_DrawString("SHTME ", 6);
|
if (millis() - lastOLEDDrawTime > 120) {
|
||||||
OLED_DrawTwoNumber(systemSettings.ShutdownTime, 6);
|
settingsLongTestScrollPos++;
|
||||||
break;
|
lastOLEDDrawTime = millis();
|
||||||
case MOTIONDETECT:/*Toggle the mode*/
|
}
|
||||||
if (systemSettings.movementEnabled)
|
} else {
|
||||||
OLED_DrawString("MOTION T", 8);
|
settingsLongTestScrollPos = 0;
|
||||||
else
|
switch (settingsPage) {
|
||||||
OLED_DrawString("MOTION F", 8);
|
case UVCO:
|
||||||
break;
|
OLED_DrawString("UVCO ", 5);
|
||||||
case TEMPDISPLAY:/*Are we showing in C or F ?*/
|
OLED_DrawTwoNumber(systemSettings.cutoutVoltage, 5);
|
||||||
if (systemSettings.displayTempInF)
|
OLED_DrawChar('V', 7);
|
||||||
OLED_DrawString("TMPUNT F", 8);
|
|
||||||
else
|
|
||||||
OLED_DrawString("TMPUNT C", 8);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case LEFTY:
|
|
||||||
|
|
||||||
if (systemSettings.flipDisplay)
|
|
||||||
OLED_DrawString("FLPDSP T", 8);
|
|
||||||
else
|
|
||||||
OLED_DrawString("FLPDSP F", 8);
|
|
||||||
break;
|
|
||||||
case MOTIONSENSITIVITY:
|
|
||||||
switch (systemSettings.sensitivity) {
|
|
||||||
case MOTION_HIGH:
|
|
||||||
OLED_DrawString("SENSE H ", 8);
|
|
||||||
break;
|
break;
|
||||||
case MOTION_MED:
|
case SLEEP_TEMP:
|
||||||
OLED_DrawString("SENSE M ", 8);
|
OLED_DrawString("STMP ", 5);
|
||||||
|
OLED_DrawThreeNumber(systemSettings.SleepTemp / 10, 5);
|
||||||
break;
|
break;
|
||||||
case MOTION_LOW:
|
case SLEEP_TIME:
|
||||||
OLED_DrawString("SENSE L ", 8);
|
OLED_DrawString("SLTME ", 6);
|
||||||
|
OLED_DrawTwoNumber(systemSettings.SleepTime, 6);
|
||||||
|
break;
|
||||||
|
case SHUTDOWN_TIME:
|
||||||
|
OLED_DrawString("SHTME ", 6);
|
||||||
|
OLED_DrawTwoNumber(systemSettings.ShutdownTime, 6);
|
||||||
|
break;
|
||||||
|
case MOTIONDETECT:/*Toggle the mode*/
|
||||||
|
if (systemSettings.movementEnabled)
|
||||||
|
OLED_DrawString("MOTION T", 8);
|
||||||
|
else
|
||||||
|
OLED_DrawString("MOTION F", 8);
|
||||||
|
break;
|
||||||
|
case TEMPDISPLAY:/*Are we showing in C or F ?*/
|
||||||
|
if (systemSettings.displayTempInF)
|
||||||
|
OLED_DrawString("TMPUNT F", 8);
|
||||||
|
else
|
||||||
|
OLED_DrawString("TMPUNT C", 8);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case LEFTY:
|
||||||
|
|
||||||
|
if (systemSettings.flipDisplay)
|
||||||
|
OLED_DrawString("FLPDSP T", 8);
|
||||||
|
else
|
||||||
|
OLED_DrawString("FLPDSP F", 8);
|
||||||
|
break;
|
||||||
|
case MOTIONSENSITIVITY:
|
||||||
|
switch (systemSettings.sensitivity) {
|
||||||
|
case MOTION_HIGH:
|
||||||
|
OLED_DrawString("SENSE H ", 8);
|
||||||
|
break;
|
||||||
|
case MOTION_MED:
|
||||||
|
OLED_DrawString("SENSE M ", 8);
|
||||||
|
break;
|
||||||
|
case MOTION_LOW:
|
||||||
|
OLED_DrawString("SENSE L ", 8);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
OLED_DrawString("SENSE ", 8);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case DISPLAYMODE:
|
||||||
|
//We are prompting the user about their display mode preferences
|
||||||
|
{
|
||||||
|
switch (systemSettings.displayUpdateMode) {
|
||||||
|
case DISPLAYMODE_FAST:
|
||||||
|
OLED_DrawString("DISPMD F", 8);
|
||||||
|
break;
|
||||||
|
case DISPLAYMODE_SLOW:
|
||||||
|
OLED_DrawString("DISPMD S", 8);
|
||||||
|
break;
|
||||||
|
case DISPLAYMODE_ROUND:
|
||||||
|
OLED_DrawString("DISPMD R", 8);
|
||||||
|
break;
|
||||||
|
case DISPLAYMODE_NONE:
|
||||||
|
OLED_DrawString("DISPMD N", 8);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
OLED_DrawString("SENSE ", 8);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
|
||||||
case DISPLAYMODE:
|
|
||||||
//We are prompting the user about their display mode preferences
|
|
||||||
{
|
|
||||||
switch (systemSettings.displayUpdateMode) {
|
|
||||||
case DISPLAYMODE_FAST:
|
|
||||||
OLED_DrawString("DISPMD F", 8);
|
|
||||||
break;
|
|
||||||
case DISPLAYMODE_SLOW:
|
|
||||||
OLED_DrawString("DISPMD S", 8);
|
|
||||||
break;
|
|
||||||
case DISPLAYMODE_ROUND:
|
|
||||||
OLED_DrawString("DISPMD R", 8);
|
|
||||||
break;
|
|
||||||
case DISPLAYMODE_NONE:
|
|
||||||
OLED_DrawString("DISPMD N", 8);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SLEEP:
|
case SLEEP:
|
||||||
@@ -510,4 +540,5 @@ void DrawUI() {
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -188,7 +188,9 @@ void OLED_DrawChar(char c, uint8_t x) {
|
|||||||
x *= FONT_WIDTH; //convert to a x coordinate
|
x *= FONT_WIDTH; //convert to a x coordinate
|
||||||
|
|
||||||
u8* ptr = (u8*) FONT;
|
u8* ptr = (u8*) FONT;
|
||||||
if (c >= 'A' && c <= 'Z') {
|
if (c >= 'a' && c <= 'z') {
|
||||||
|
ptr += (c - 'a' + 10) * (FONT_WIDTH * 2); //alpha is ofset 10 chars into the array
|
||||||
|
} else if (c >= 'A' && c <= 'Z') {
|
||||||
ptr += (c - 'A' + 10) * (FONT_WIDTH * 2); //alpha is ofset 10 chars into the array
|
ptr += (c - 'A' + 10) * (FONT_WIDTH * 2); //alpha is ofset 10 chars into the array
|
||||||
} else if (c >= '0' && c <= '9')
|
} else if (c >= '0' && c <= '9')
|
||||||
ptr += (c - '0') * (FONT_WIDTH * 2);
|
ptr += (c - '0') * (FONT_WIDTH * 2);
|
||||||
|
|||||||
Reference in New Issue
Block a user