# HG changeset patch # User Ideenmodellierer # Date 1729015237 -7200 # Node ID a2523e19f59a1d94ba23cb5bc550ac3d14d2e7d1 # Parent 7bd347bdaa8115c21d2fa862c063a4da485f038d VPMTable deco stop visualization: The current deco stop will change from white to green to indicate that the diver is in the region where the stop time is counted down. diff -r 7bd347bdaa81 -r a2523e19f59a Discovery/Src/data_exchange_main.c --- a/Discovery/Src/data_exchange_main.c Tue Oct 15 19:12:05 2024 +0200 +++ b/Discovery/Src/data_exchange_main.c Tue Oct 15 20:00:37 2024 +0200 @@ -72,6 +72,7 @@ #include "timer.h" #include "buehlmann.h" #include "externLogbookFlash.h" +#include "vpm.h" /* #define TESTBENCH */ diff -r 7bd347bdaa81 -r a2523e19f59a Discovery/Src/t7.c --- a/Discovery/Src/t7.c Tue Oct 15 19:12:05 2024 +0200 +++ b/Discovery/Src/t7.c Tue Oct 15 20:00:37 2024 +0200 @@ -2184,7 +2184,6 @@ SSettings* pSettings; pSettings = settingsGetPointer(); uint8_t decoPlanEntries = 6; - uint8_t color = 0; uint8_t local_ppo2sensors_deactivated = 0; @@ -2639,27 +2638,29 @@ break; case CVIEW_Decolist: - snprintf(text,100,"\032\f\001 %c%c", TXT_2BYTE, TXT2BYTE_Decolist); + if(settingsGetPointer()->VPM_conservatism.ub.alternative == 0) { - GFX_write_string(&FontT42,&t7cH,text,0); + text[0] = '\032'; } else { switch(vpm_get_TableState()) { - case VPM_TABLE_MISSED: color = CLUT_WarningRed; + case VPM_TABLE_MISSED: text[0] = '\025'; break; - case VPM_TABLE_WARNING: color = CLUT_WarningYellow; + case VPM_TABLE_WARNING: text[0] = '\024'; break; case VPM_TABLE_ACTIVE: case VPM_TABLE_INIT: - default: color = 0; + default: text[0] = '\032'; break; } - GFX_write_string_color(&FontT42,&t7cH,text,0,color); } + snprintf(&text[1],100,"\f\001 %c%c", TXT_2BYTE, TXT2BYTE_Decolist); + GFX_write_string(&FontT42,&t7cH,text,0); + uint8_t depthNext, depthLast, depthSecond, depthInc; depthLast = (uint8_t)(stateUsed->diveSettings.last_stop_depth_bar * 10); @@ -2699,7 +2700,7 @@ } if(decoPlanEntries == 5) /* add VPM deco zone */ { - textpointer += snprintf(&text[textpointer],20,"\031\034 Zone %2u\016\016%c%c\017\n\r",vpm_get_decozone(), unit_depth_char1(), unit_depth_char2()); + textpointer += snprintf(&text[textpointer],30,"\031\034 Zone %2u\016\016%c%c\017\n\r",vpm_get_decozone(), unit_depth_char1(), unit_depth_char2()); } if(!pSettings->FlipDisplay) { @@ -2878,9 +2879,21 @@ /* next deco stop */ if(nextstopDepthMeter) { - snprintf(TextR2,TEXTSIZE,"\032\f\002%c",TXT_Decostop); - GFX_write_string(&FontT42,&t7r2,TextR2,0); - textlength = snprintf(TextR2,TEXTSIZE,"\020\002%u%c%c %u'" + snprintf(TextR2,TEXTSIZE,"\032\f\002%c",TXT_Decostop); + GFX_write_string(&FontT42,&t7r2,TextR2,0); + + if((pSettings->VPM_conservatism.ub.alternative) && (fabs(stateUsed->lifeData.depth_meter - nextstopDepthMeter)) < 1.5) + { + TextR2[0] = '\026'; + textlength = 1; + } + else + { + TextR2[0] = '\020'; + textlength = 1; + } + + textlength += snprintf(&TextR2[textlength],TEXTSIZE,"\002%u%c%c %u'" , unit_depth_integer(nextstopDepthMeter) , unit_depth_char1_T105() , unit_depth_char2_T105()