# HG changeset patch # User heinrichsweikamp # Date 1726662666 -7200 # Node ID 94535e672583928831820efbd092af85c66d8814 # Parent 9e2f9b91e827e870f273f1efe5485315a55a75d2# Parent 1b05a84f6d0fc981d1b2cc2e3315e4e68c18b30c Zusammenf?hren diff -r 9e2f9b91e827 -r 94535e672583 Common/Inc/configuration.h --- a/Common/Inc/configuration.h Wed Sep 18 14:30:45 2024 +0200 +++ b/Common/Inc/configuration.h Wed Sep 18 14:31:06 2024 +0200 @@ -81,4 +81,7 @@ /* Enable if the menu item predive check shall be available */ /* #define ENABLE_PREDIVE_CHECK */ +/* Enable to have a faster transfer speed between bluetooth module and CPU */ +#define ENABLE_FAST_COMM + #endif diff -r 9e2f9b91e827 -r 94535e672583 Discovery/Src/data_central.c --- a/Discovery/Src/data_central.c Wed Sep 18 14:30:45 2024 +0200 +++ b/Discovery/Src/data_central.c Wed Sep 18 14:31:06 2024 +0200 @@ -922,23 +922,27 @@ #define SPEED_SLOW (5.0f) #define SPEED_MEDIUM (10.0f) #define SPEED_HIGH (15.0f) +#define SPEED_HYSTERESE (1.0f) uint8_t drawingColor_from_ascentspeed(float speed) { + static uint8_t lastColor = 0; + uint8_t color = CLUT_Font020; - if(speed >= SPEED_HIGH) + if((speed >= SPEED_HIGH) || ((lastColor == CLUT_WarningRed) && (speed >= SPEED_HIGH - SPEED_HYSTERESE))) { color = CLUT_WarningRed; } - else if(speed >= SPEED_MEDIUM) + else if((speed >= SPEED_MEDIUM) || ((lastColor == CLUT_WarningYellow) && (speed >= SPEED_MEDIUM - SPEED_HYSTERESE))) { color = CLUT_WarningYellow; } - else if(speed >= SPEED_SLOW) + else if((speed >= SPEED_SLOW) || ((lastColor == CLUT_NiceGreen) && (speed >= SPEED_SLOW - SPEED_HYSTERESE))) { color = CLUT_NiceGreen; } + lastColor = color; return color; } diff -r 9e2f9b91e827 -r 94535e672583 Discovery/Src/t7.c --- a/Discovery/Src/t7.c Wed Sep 18 14:30:45 2024 +0200 +++ b/Discovery/Src/t7.c Wed Sep 18 14:31:06 2024 +0200 @@ -2776,7 +2776,7 @@ /* ascent rate graph */ - if((pSettings->slowExitTime != 0) && (stateUsed->lifeData.depth_meter < pSettings->last_stop_depth_meter)) + if((pSettings->slowExitTime != 0) && (pDecoinfo->output_time_to_surface_seconds == 0) && (stateUsed->lifeData.depth_meter < pSettings->last_stop_depth_meter)) { color = t7_drawSlowExitGraph(); } @@ -4726,86 +4726,88 @@ { if(slowExitState != SE_END) { - if(slowExitState == SE_INIT) + if((slowExitState == SE_INIT) && (stateUsed->lifeData.dive_time_seconds > 900)) /* min 15min divetime */ { slowExitState = SE_ACTIVE; exitSecTick = HAL_GetTick(); } - if(time_elapsed_ms(exitSecTick, HAL_GetTick()) > 1000) + else if(slowExitState == SE_ACTIVE) { - exitSecTick = HAL_GetTick(); - - /* select depth digit color */ - if(fabsf(stateUsed->lifeData.depth_meter - exitDepthMeter) < 0.5 ) + if(time_elapsed_ms(exitSecTick, HAL_GetTick()) > 1000) { - color = CLUT_NiceGreen; + exitSecTick = HAL_GetTick(); + + /* select depth digit color */ + if(fabsf(stateUsed->lifeData.depth_meter - exitDepthMeter) < 0.5 ) + { + color = CLUT_NiceGreen; + } + else if(fabsf(stateUsed->lifeData.depth_meter - exitDepthMeter) <= 1.5) + { + color = CLUT_WarningYellow; + } + else if(stateUsed->lifeData.depth_meter - exitDepthMeter < -1.5 ) + { + color = CLUT_WarningRed; + } + else + { + color = 0; + } + + if((fabsf(stateUsed->lifeData.depth_meter - exitDepthMeter) <= 1.6 ) /* only decrease counter if diver is close to target depth */ + || (color == CLUT_WarningRed)) /* or if diver is far ahead */ + { + countDownSec--; + if(countDownSec == 0) + { + slowExitState = SE_END; + color = 0; + } + exitDepthMeter -= (pSettings->last_stop_depth_meter / (float)(pSettings->slowExitTime * 60)); + } } - else if(fabsf(stateUsed->lifeData.depth_meter - exitDepthMeter) <= 1.5) + if(!pSettings->FlipDisplay) { - color = CLUT_WarningYellow; - } - else if(stateUsed->lifeData.depth_meter - exitDepthMeter < -1.5 ) - { - color = CLUT_WarningRed; + start.y = t7l1.WindowY0 - 1; } else { - color = 0; + start.y = t7l3.WindowY0 - 25; } - if((fabsf(stateUsed->lifeData.depth_meter - exitDepthMeter) <= 1.6 ) /* only decrease counter if diver is close to target depth */ - || (color == CLUT_WarningRed)) /* or if diver is far ahead */ + for(index = 0; index < pSettings->last_stop_depth_meter; index++) /* draw meter indicators */ { - countDownSec--; - if(countDownSec == 0) - { - slowExitState = SE_END; - color = 0; - } - exitDepthMeter -= (pSettings->last_stop_depth_meter / (float)(pSettings->slowExitTime * 60)); + start.y += drawingMeterStep; + stop.y = start.y; + start.x = CUSTOMBOX_LINE_LEFT - 1; + stop.x = start.x - 40; + GFX_draw_line(&t7screen, start, stop, 0); } - } - if(!pSettings->FlipDisplay) - { - start.y = t7l1.WindowY0 - 1; - } - else - { - start.y = t7l3.WindowY0 - 25; - } - - for(index = 0; index < pSettings->last_stop_depth_meter; index++) /* draw meter indicators */ - { - start.y += drawingMeterStep; + + start.x = CUSTOMBOX_LINE_LEFT - CUSTOMBOX_OUTSIDE_OFFSET - 20; + stop.x = start.x; + if(!pSettings->FlipDisplay) + { + start.y = t7l1.WindowY0 + ASCENT_GRAPH_YPIXEL; + } + else + { + start.y = t7l3.WindowY0 - 25; + } + stop.y = start.y - countDownSec * (ASCENT_GRAPH_YPIXEL / (float)(pSettings->slowExitTime * 60.0)); + if(stop.y >= 470) + stop.y = 470; + + GFX_draw_thick_line(15,&t7screen, start, stop, 3); + /* mark diver depth */ + start.x = CUSTOMBOX_LINE_LEFT - CUSTOMBOX_OUTSIDE_OFFSET - 25; + stop.x = start.x + 15; + + start.y = start.y - (stateUsed->lifeData.depth_meter *120 / pSettings->last_stop_depth_meter); stop.y = start.y; - start.x = CUSTOMBOX_LINE_LEFT - 1; - stop.x = start.x - 40; - GFX_draw_line(&t7screen, start, stop, 0); - } - - start.x = CUSTOMBOX_LINE_LEFT - CUSTOMBOX_OUTSIDE_OFFSET - 20; - stop.x = start.x; - if(!pSettings->FlipDisplay) - { - start.y = t7l1.WindowY0 + ASCENT_GRAPH_YPIXEL; + GFX_draw_thick_line(10,&t7screen, start, stop, 9); } - else - { - start.y = t7l3.WindowY0 - 25; - } - stop.y = start.y - countDownSec * (ASCENT_GRAPH_YPIXEL / (float)(pSettings->slowExitTime * 60.0)); - if(stop.y >= 470) - stop.y = 470; - - GFX_draw_thick_line(15,&t7screen, start, stop, 3); - /* mark diver depth */ - start.x = CUSTOMBOX_LINE_LEFT - CUSTOMBOX_OUTSIDE_OFFSET - 25; - stop.x = start.x + 15; - - start.y = start.y - (stateUsed->lifeData.depth_meter *120 / pSettings->last_stop_depth_meter); - stop.y = start.y; - GFX_draw_thick_line(10,&t7screen, start, stop, 9); - //GFX_draw_line(&t7screen, start, stop, 2); } } return color; diff -r 9e2f9b91e827 -r 94535e672583 Discovery/Src/tComm.c --- a/Discovery/Src/tComm.c Wed Sep 18 14:30:45 2024 +0200 +++ b/Discovery/Src/tComm.c Wed Sep 18 14:31:06 2024 +0200 @@ -2193,7 +2193,12 @@ break; case BM_CONFIG_SIGNAL_POLL: sprintf(TxBuffer,"AT+BSTPOLL=100\r"); break; - case BM_CONFIG_BAUD: sprintf(TxBuffer,"AT%%B22\r"); + case BM_CONFIG_BAUD: +#ifdef ENABLE_FAST_COMM + sprintf(TxBuffer,"AT%%B22\r"); +#else + BmTmpConfig++; +#endif break; case BM_CONFIG_RETRY: ConfigRetryCnt--; HAL_Delay(1); @@ -2260,7 +2265,7 @@ UartHandle.Init.BaudRate = 460800; HAL_UART_Init(&UartHandle); } - if((BmTmpConfig == BM_CONFIG_BAUD) && (result == HAL_OK) && (UartHandle.Init.BaudRate == 460800)) /* This shut not happen because default speed is 115200 => update module configuration */ + else if((BmTmpConfig == BM_CONFIG_BAUD) && (result == HAL_OK) && (UartHandle.Init.BaudRate == 460800)) /* This shut not happen because default speed is 115200 => update module configuration */ { sprintf(TxBuffer,"AT%%B8\r"); /* set default baudrate */ CmdSize = strlen(TxBuffer);