Mercurial > public > ostc4
diff Discovery/Src/tMenuXtra.c @ 981:c6c781a2e85b default
Merge into default
| author | heinrichsweikamp |
|---|---|
| date | Tue, 11 Feb 2025 18:12:00 +0100 |
| parents | 7755a476f164 |
| children |
line wrap: on
line diff
--- a/Discovery/Src/tMenuXtra.c Tue Aug 13 13:24:54 2024 +0200 +++ b/Discovery/Src/tMenuXtra.c Tue Feb 11 18:12:00 2025 +0100 @@ -38,6 +38,7 @@ #include "simulation.h" #include "configuration.h" + /* Exported functions --------------------------------------------------------*/ uint32_t tMXtra_refresh(uint8_t line, char *text, uint16_t *tab, char *subtext) @@ -51,6 +52,8 @@ SSettings *pSettings = settingsGetPointer(); + resetLineMask(StMXTRA); + /* DIVE MODE */ if(actual_menu_content != MENU_SURFACE) { @@ -168,10 +171,12 @@ else text[textPointer++] = '\006'; - if (!canDoFallback) { + if (!canDoFallback) + { text[textPointer++] = '\020'; disableLine(StMXTRA_O2_Fallback); - } else { + } else + { enableLine(StMXTRA_O2_Fallback); } strcpy(&text[textPointer],"\n\r"); @@ -190,23 +195,68 @@ } #ifdef ENABLE_PSCR_MODE - if(pSettings->dive_mode == DIVEMODE_PSCR) - { - if((line == 0) || (line == 4)) - { - textPointer += snprintf(&text[textPointer], 60,\ - "%c" - ,TXT_PSClosedCircuit); - } - } -#endif -#ifdef ENABLE_CO2_SUPPORT if((line == 0) || (line == 4)) { - textPointer += snprintf(&text[textPointer], 60, "%c", TXT_CO2Sensor); + if(pSettings->dive_mode == DIVEMODE_PSCR) + { + textPointer += snprintf(&text[textPointer], 60, "%c",TXT_PSClosedCircuit); + enableLine(StMXTRA_PSCR_O2_Drop); + } + else + { + text[textPointer++] = '\031'; /* change text color */ + textPointer += snprintf(&text[textPointer], 60,"%c",TXT_PSClosedCircuit); + text[textPointer++] = '\020'; /* restore text color */ + disableLine(StMXTRA_PSCR_O2_Drop); + } + strcpy(&text[textPointer],"\n\r"); + textPointer += 2; } #endif +#ifdef ENABLE_PREDIVE_CHECK + if((line == 0) || (line == 5)) + { + if((pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_ANADIG) || (pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_DIGITAL)) + { + textPointer += snprintf(&text[textPointer], 60,"%c",TXT_PreDive); + } + else + { + text[textPointer++] = '\031'; /* change text color */ + textPointer += snprintf(&text[textPointer], 60,"%c",TXT_PreDive); + text[textPointer++] = '\020'; /* restore text color */ + disableLine(StMXTRA_Predive_Check); + } + strcpy(&text[textPointer],"\n\r"); + textPointer += 2; + } +#endif } return StMXTRA; } +void tMXtra_checkLineStatus(void) +{ + uint8_t localLineMask = 0; + uint8_t lineMask = getLineMask(StMXTRA); + SSettings *pSettings = settingsGetPointer(); + + if(pSettings->CCR_Mode != CCRMODE_Sensors) + { + localLineMask |= 1 << 2; + } + if(pSettings->dive_mode != DIVEMODE_PSCR) + { + localLineMask |= 1 << 4; + } + if((pSettings->ppo2sensors_source != O2_SENSOR_SOURCE_ANADIG) && (pSettings->ppo2sensors_source != O2_SENSOR_SOURCE_DIGITAL)) + { + localLineMask |= 1 << 5; + } + + if(lineMask != localLineMask) + { + updateMenu(); + } +} +
