changeset 202:d328abe2e44e

Merged heinrichsweikamp/ostc4 into default
author Thorsten <ideenmodellierer@o2mail.de>
date Sun, 17 Mar 2019 19:16:59 +0100
parents 4073b8091224 (current diff) cca59de24fe0 (diff)
children adc1e7d628be
files
diffstat 9 files changed, 83 insertions(+), 726 deletions(-) [+]
line wrap: on
line diff
--- a/Discovery/Src/data_exchange_main.c	Sat Mar 16 19:58:52 2019 +0000
+++ b/Discovery/Src/data_exchange_main.c	Sun Mar 17 19:16:59 2019 +0100
@@ -771,6 +771,20 @@
 	return (depth[0] + depth[1] + depth[2] + depth[3])/4.0f;
 }
 
+#define TEMP_AVERAGE_COUNT	3
+static float getTemperature(SDataExchangeSlaveToMaster *d)
+{
+	static uint8_t c = 0;
+	static float temp[TEMP_AVERAGE_COUNT] = {0};
+
+	temp[c] = d->data[d->boolPressureData].temperature;
+
+	c++;
+	if (c == TEMP_AVERAGE_COUNT) c = 0;
+
+	return (temp[0] + temp[1] + temp[2])/3.0f;
+}
+
 void DataEX_copy_to_LifeData(_Bool *modeChangeFlag)
 {
 	SDiveState *pStateReal = stateRealGetPointerWrite();
@@ -937,7 +951,7 @@
 			pStateReal->lifeData.depth_meter = meter;
 		}
 
-		pStateReal->lifeData.temperature_celsius = dataIn.data[dataIn.boolPressureData].temperature;
+		pStateReal->lifeData.temperature_celsius = getTemperature(&dataIn);
 		pStateReal->lifeData.ascent_rate_meter_per_min = dataIn.data[dataIn.boolPressureData].ascent_rate_meter_per_min;
 		if(pStateReal->mode != MODE_DIVE)
 			pStateReal->lifeData.max_depth_meter = 0;
--- a/Discovery/Src/show_logbook.c	Sat Mar 16 19:58:52 2019 +0000
+++ b/Discovery/Src/show_logbook.c	Sun Mar 17 19:16:59 2019 +0100
@@ -40,58 +40,27 @@
 
 /* Private variables ---------------------------------------------------------*/
 
-GFX_DrawCfgScreen	tLOGscreen;
-GFX_DrawCfgScreen	tLOGbackground;
+static GFX_DrawCfgScreen	tLOGscreen;
+static GFX_DrawCfgScreen	tLOGbackground;
 
 
-void print_gas_name(char* output,uint8_t lengh,uint8_t oxygen,uint8_t helium);
-int16_t get_colour(int16_t color);
+static void print_gas_name(char* output,uint8_t lengh,uint8_t oxygen,uint8_t helium);
+static int16_t get_colour(int16_t color);
 
 /* Overview */
-void show_logbook_logbook_show_log_page1(GFX_DrawCfgScreen *hgfx, uint8_t StepBackwards);
+static void show_logbook_logbook_show_log_page1(GFX_DrawCfgScreen *hgfx, uint8_t StepBackwards);
 /* Temperature */
-void show_logbook_logbook_show_log_page2(GFX_DrawCfgScreen *hgfx, uint8_t StepBackwards);
+static void show_logbook_logbook_show_log_page2(GFX_DrawCfgScreen *hgfx, uint8_t StepBackwards);
 /* Gas List */
-void show_logbook_logbook_show_log_page3(GFX_DrawCfgScreen *hgfx, uint8_t StepBackwards);
+static void show_logbook_logbook_show_log_page3(GFX_DrawCfgScreen *hgfx, uint8_t StepBackwards);
 /* ppO2 */
-void show_logbook_logbook_show_log_page4(GFX_DrawCfgScreen *hgfx, uint8_t StepBackwards);
+static void show_logbook_logbook_show_log_page4(GFX_DrawCfgScreen *hgfx, uint8_t StepBackwards);
 
-
-inline uint32_t MinU32LOG(uint32_t a, uint32_t b)
-{
-    return ((a<b)?a:b);
-}
-
-uint32_t MaxU32LOG(uint32_t a, uint32_t b)
+static inline uint32_t MaxU32LOG(uint32_t a, uint32_t b)
 {
     return((a>b)?a:b);
 }
 
-void write_label_(GFX_DrawCfgScreen *screenInput, SWindowGimpStyle win, const tFont *Font, uint8_t color, const char *text)
-{
-    GFX_DrawCfgWindow	hgfx;
-
-    if( win.right > 799)
-         win.right = 799;
-
-    if(win.top > 479)
-        win.top = 479;
-    hgfx.Image = screenInput;
-    hgfx.WindowNumberOfTextLines = 1;
-    hgfx.WindowLineSpacing = 0;
-    hgfx.WindowTab = 0;
-    hgfx.WindowX0 = win.left;
-    hgfx.WindowX1 = win.right;
-    hgfx.WindowY1 = 479 - win.top;
-    if(hgfx.WindowY1 < Font->height)
-        hgfx.WindowY0 = 0;
-    else
-        hgfx.WindowY0 = hgfx.WindowY1 - Font->height;
-
-    GFX_write_label(Font, &hgfx, text, color);
-}
-
-
 /**
   ******************************************************************************
   * @brief   GFX write label. /  print coordinate system & depth graph
@@ -108,7 +77,7 @@
   * @param  colordata: 			1
   * @retval None
   */
-void show_logbook_draw_depth_graph(GFX_DrawCfgScreen *hgfx, uint8_t StepBackwards, SWindowGimpStyle* window, short mode, uint16_t dataLength, uint16_t* depthdata, uint8_t * colordata, uint16_t * decostopdata)
+static void show_logbook_draw_depth_graph(GFX_DrawCfgScreen *hgfx, uint8_t StepBackwards, SWindowGimpStyle* window, short mode, uint16_t dataLength, uint16_t* depthdata, uint8_t * colordata, uint16_t * decostopdata)
 {
     SLogbookHeader logbookHeader;
     SWindowGimpStyle wintemp = *window;
@@ -285,7 +254,7 @@
     * fit to multiples of 1�C (data format is 1/10�C)
     */
 
-void scaleAdapt(	int InputTop, int InputBottom,
+static void scaleAdapt(	int InputTop, int InputBottom,
                                     int16_t *OutputMinValue, int16_t *OutputMaxValue, int *OutputTop, int *OutputBottom,
                                     uint16_t *OutputStepOfScale, int16_t *OutputMaxValueOnScale)
 {
@@ -387,7 +356,7 @@
     * for temperature, input is �C * 10
     */
 
-void scaleHelper(	uint16_t InputDataLength, int16_t *InputDataArray, int InputTop, int InputBottom,
+static void scaleHelper(	uint16_t InputDataLength, int16_t *InputDataArray, int InputTop, int InputBottom,
                                     int16_t *OutputMinValue, int16_t *OutputMaxValue, int *OutputTop, int *OutputBottom,
                                     uint16_t *OutputStepOfScale, int16_t *OutputMaxValueOnScale)
 {
@@ -441,7 +410,7 @@
   * @param  hgfx:
   * @retval None
   */
-void show_logbook_logbook_show_log_page1(GFX_DrawCfgScreen *hgfx,uint8_t StepBackwards)
+static void show_logbook_logbook_show_log_page1(GFX_DrawCfgScreen *hgfx,uint8_t StepBackwards)
 {
     SWindowGimpStyle wintemp;
     SWindowGimpStyle winsmal;
@@ -661,7 +630,7 @@
 }
 
 
-void show_logbook_logbook_show_log_page2(GFX_DrawCfgScreen *hgfx, uint8_t StepBackwards)
+static void show_logbook_logbook_show_log_page2(GFX_DrawCfgScreen *hgfx, uint8_t StepBackwards)
 {
     //*** Page2: Depth and Temperature ****
 
@@ -751,189 +720,7 @@
 }
 
 
-void show_logbook_logbook_show_log_page2_original(GFX_DrawCfgScreen *hgfx, uint8_t StepBackwards)
-{
-    //*** Page2: Depth and Temperature ****
-
-    SWindowGimpStyle wintemp;
-    SWindowGimpStyle winsmal;
-    wintemp.left = 50;
-    wintemp.right = 799 - wintemp.left;
-    wintemp.top = 50;
-    wintemp.bottom = 479 - 40;
-
-    SLogbookHeader logbookHeader;
-
-    logbook_getHeader(StepBackwards,&logbookHeader);
-    uint16_t dataLength = 0;
-    uint16_t depthdata[1000];
-    uint8_t  gasdata[1000];
-    int16_t  tempdata[1000];
-    uint16_t decoDepthdata[1000];
-    uint16_t *pDecoDepthData = 0;
-
-    dataLength = logbook_readSampleData(StepBackwards, 1000, depthdata,gasdata, tempdata, NULL, NULL, NULL, NULL, NULL, NULL, NULL, decoDepthdata);
-
-/* test
-    for(int i = 0; i<dataLength/2; i++)
-        decoDepthdata[i] = 300;
-
-    for(int i = dataLength/2; i<dataLength; i++)
-        decoDepthdata[i] = 1200;
-*/
-    for(int i = 0; i<dataLength; i++)
-    {
-        if(decoDepthdata[i] >= 300)
-        {
-            pDecoDepthData = decoDepthdata;
-            break;
-        }
-    }
-    //--- print coordinate system & depth graph ---
-    show_logbook_draw_depth_graph(hgfx, StepBackwards, &wintemp, 0, dataLength, depthdata, gasdata, pDecoDepthData);
-
-    //*** Temperature *************************************************
-
-
-    int16_t datamax = -1000; // �C * 10
-    int16_t datamin = +1000;
-    for(int i = 0; i < dataLength;i++)
-    {
-        if(tempdata[i]>datamax)
-            datamax = tempdata[i];
-        if(tempdata[i]< datamin)
-            datamin = tempdata[i];
-    }
-    float maxTmp = ((float)datamax) /10.f;
-    float minTmp = ((float)datamin) /10.f;
-    int deltaTmp = maxTmp - minTmp;
-    int tmpstep = 2;
-
-    // 5 different scales: 1�C, 2�C, 4�C, 5�C, 10�C
-    // with 6 lines == 5 steps
-    if((deltaTmp) <=5)
-    {
-        tmpstep = 1;
-    }
-    else
-    if(deltaTmp <= (5*2))
-    {
-        tmpstep = 2;
-    }
-    else
-    if(deltaTmp <= (5 * 4))
-    {
-        tmpstep = 4;
-    }
-    else
-    if(deltaTmp <= (5 * 5))
-    {
-        tmpstep = 5;
-    }
-    else
-    {
-        tmpstep = 10;
-    }
-//	int steps = deltaTmp/tmpstep;
-
-
-//	int steps = deltaTmp/5;
-//	int tmpstep = 5;
-//	if(steps > 4)
-//		tmpstep = 10;
-
-    int maxtmpline = 0;
-    int mintmpline = 0;
-    if(minTmp < 0)
-    {
-        if(minTmp >= -5)
-        {
-            mintmpline = -5;
-
-        }
-        else if(minTmp >= -10)
-        {
-            mintmpline = -10;
-        }
-        else
-            mintmpline = -15;
-    }
-
-    if(maxTmp > 0)
-    {
-        while(maxtmpline < maxTmp)
-            maxtmpline += tmpstep;
-    }
-
-    if(tmpstep < 5)
-        maxtmpline = MaxU32LOG(maxtmpline, 10);
-    else if(tmpstep == 5)
-        maxtmpline = MaxU32LOG(maxtmpline, 25);
-    else
-        maxtmpline = 50;
-
-    maxtmpline += mintmpline;
-
-    //--- print temperature labels ---
-    // input maxtmpline, tmpstep, deltaline
-
-    winsmal.left = wintemp.right +6;
-    winsmal.top	= wintemp.top - 3;
-    winsmal.right =  wintemp.right + 30;
-    winsmal.bottom = winsmal.top + 16;
-
-    write_label_(hgfx, winsmal,&FontT24,CLUT_LogbookTemperature,"[C]");
-
-    int deltaline = (wintemp.bottom - wintemp.top)/5;
-    char msg[3];
-    int tmp = maxtmpline;
-    for(int i = 1; i<=5; i++)
-    {
-        tmp -= 	tmpstep;
-        //if(tmp < 0)
-            //break;
-        winsmal.top	= wintemp.top + deltaline * i - 14;
-        winsmal.bottom = winsmal.top + 16;
-        snprintf(msg,3,"%2i",tmp);
-        write_label_(hgfx, winsmal,&FontT24,CLUT_LogbookTemperature,msg);
-    }
-
-
-    //--- print temperature graph ---
-    // input tempdata[i], maxtmpline, mintmpline, maxTmp, minTmp, deltaline, wintemp.top, dataLength, datamax,
-
-    //adapt window
-    float ftmp =((maxtmpline - minTmp) * deltaline) /tmpstep +  wintemp.top;
-    wintemp.bottom = ftmp;
-    if((ftmp - (int)ftmp) >= 0.5f)
-        wintemp.bottom++;
-
-    ftmp = ((maxtmpline - maxTmp) * deltaline) /tmpstep + wintemp.top;
-    wintemp.top = ftmp;
-    if((ftmp - (int)ftmp) >= 0.5f)
-        wintemp.top++;
-
-    if(wintemp.top <= wintemp.bottom)
-    {
-        for(int i = 0; i < dataLength;i++)
-        {
-            tempdata[i] -= mintmpline;
-        }
-        datamax -= mintmpline;
-        // hw 160518
-        // es wird nur das Fenster (wintemp.top, wintemp.bottom) verwendet in dem Daten sind
-        // daher muss datamin angegeben werden
-        // der Gesamtbereich ist uninteressant
-        // Bsp Temperatur von 8�C bis 5�C
-        // Y-Achse ist 10�C (oben) bis 0�C (unten)
-        // aber wintemp.top ist 127
-        // und wintemp.bottom ist 243
-        GFX_graph_print(hgfx,&wintemp,0,1,datamax,datamin, (uint16_t *)tempdata,dataLength,CLUT_LogbookTemperature, NULL);
-    }
-}
-
-
-void build_logbook_test(uint8_t page, uint8_t StepBackwards)
+static void build_logbook_test(uint8_t page, uint8_t StepBackwards)
 {
     uint32_t lastScreen,lastBackground;
 
@@ -1000,7 +787,7 @@
 }
 
 
-void show_logbook_logbook_show_log_page3(GFX_DrawCfgScreen *hgfx, uint8_t StepBackwards)
+static void show_logbook_logbook_show_log_page3(GFX_DrawCfgScreen *hgfx, uint8_t StepBackwards)
 {
     SWindowGimpStyle wintemp;
     SWindowGimpStyle winsmal;
@@ -1051,7 +838,7 @@
         */
 }
 
-void show_logbook_logbook_show_log_page4(GFX_DrawCfgScreen *hgfx, uint8_t StepBackwards)
+static void show_logbook_logbook_show_log_page4(GFX_DrawCfgScreen *hgfx, uint8_t StepBackwards)
 { SWindowGimpStyle wintemp;
     SWindowGimpStyle winsmal;
     wintemp.left = 50;
@@ -1217,7 +1004,7 @@
     //button_start_single_action(surf1_menu_logbook_current_page, surf1_menu_logbook_show_log_page1, surf1_menu_logbook_show_log_next);
 }
 
-void print_gas_name(char* output,uint8_t length,uint8_t oxygen,uint8_t helium)
+static void print_gas_name(char* output,uint8_t length,uint8_t oxygen,uint8_t helium)
 {
     if(helium == 0)
     {
@@ -1238,7 +1025,7 @@
 
 }
 
-int16_t get_colour(int16_t color)
+static int16_t get_colour(int16_t color)
 {
      return CLUT_GasSensor1 + color;
 }
--- a/Discovery/Src/t3.c	Sat Mar 16 19:58:52 2019 +0000
+++ b/Discovery/Src/t3.c	Sun Mar 17 19:16:59 2019 +0100
@@ -52,9 +52,6 @@
 GFX_DrawCfgWindow	t3c1;
 GFX_DrawCfgWindow	t3c2;
 
-extern float temperatureLastCall[3];
-extern uint8_t idTemperatureLastCall;
-
 uint8_t t3_selection_customview = 0;
 
 /* TEM HAS TO MOVE TO GLOBAL--------------------------------------------------*/
@@ -507,7 +504,6 @@
     uint16_t textpointer = 0;
 
     // CVIEW_T3_Temperature
-    float temperatureThisCall;
     float temperature;
 
     SDivetime TotalDivetime = {0,0,0,0};
@@ -527,13 +523,7 @@
         snprintf(text,TEXTSIZE,"\032\f%c",TXT_Temperature);
         GFX_write_string(&FontT42,tXc1,text,0);
 
-        // mean value
-        temperatureThisCall = unit_temperature_float(stateUsed->lifeData.temperature_celsius);
-        temperature = (temperatureThisCall + temperatureLastCall[0] + temperatureLastCall[1] + temperatureLastCall[2]) / 4.0f;
-        idTemperatureLastCall++;
-        if(idTemperatureLastCall >= 3)
-            idTemperatureLastCall = 0;
-        temperatureLastCall[idTemperatureLastCall] = temperatureThisCall;
+        temperature = unit_temperature_float(stateUsed->lifeData.temperature_celsius);
         textpointer = snprintf(text,TEXTSIZE,"\020\003\016%01.0f\016\016\140",temperature); // "\016\016%01.1f `" + C or F
         if(settingsGetPointer()->nonMetricalSystem == 0)
             text[textpointer++] = 'C';
@@ -606,7 +596,6 @@
     uint8_t oxygen_percentage = 0;
 
     // CVIEW_T3_Temperature
-    float temperatureThisCall;
     float temperature;
 
     // CVIEW_T3_GasList
@@ -619,7 +608,6 @@
     SDivetime Stopwatch = {0,0,0,0};
     float fAverageDepth, fAverageDepthAbsolute;
 
-
     uint16_t tempWinX0;
     uint16_t tempWinX1;
     uint16_t tempWinY0;
@@ -749,13 +737,8 @@
     case CVIEW_T3_Temperature:
         snprintf(text,TEXTSIZE,"\032\f%c",TXT_Temperature);
         GFX_write_string(&FontT42,tXc1,text,0);
-        // mean value
-        temperatureThisCall = unit_temperature_float(stateUsed->lifeData.temperature_celsius);
-        temperature = (temperatureThisCall + temperatureLastCall[0] + temperatureLastCall[1] + temperatureLastCall[2]) / 4.0f;
-        idTemperatureLastCall++;
-        if(idTemperatureLastCall >= 3)
-            idTemperatureLastCall = 0;
-        temperatureLastCall[idTemperatureLastCall] = temperatureThisCall;
+
+        temperature = unit_temperature_float(stateUsed->lifeData.temperature_celsius);
         textpointer = snprintf(text,TEXTSIZE,"\030\003\016%01.1f \140",temperature); // "\016\016%01.1f `" + C or F
         if(settingsGetPointer()->nonMetricalSystem == 0)
             text[textpointer++] = 'C';
--- a/Discovery/Src/t6_apnea.c	Sat Mar 16 19:58:52 2019 +0000
+++ b/Discovery/Src/t6_apnea.c	Sun Mar 17 19:16:59 2019 +0100
@@ -74,8 +74,6 @@
 void t6_refresh_customview(float depth);
 
 uint8_t t6_test_customview_warnings(void);
-void t6_show_customview_warnings(void);
-void t6_compass(uint16_t ActualHeading, uint16_t UserSetHeading);
 
 /* Exported functions --------------------------------------------------------*/
 
@@ -331,398 +329,3 @@
     count = 0;
     return count;
 }
-
-/*
-
-    char text[512];
-    uint16_t textpointer = 0;
-
-
-    // CVIEW_T3_Temperature
-    float temperatureThisCall;
-    float temperature;
-
-
-    // CVIEW_T3_StopWatch
-    SDivetime Stopwatch = {0,0,0,0};
-    float fAverageDepth, fAverageDepthAbsolute;
-    uint16_t tempWinX0;
-    uint16_t tempWinY0;
-
-    switch(t6_selection_customview)
-    {
-        case CVIEW_T3_ApnoeTimes:
-        break;
-
-        case CVIEW_T3_StopWatch:
-            Stopwatch.Total = timer_Stopwatch_GetTime();
-            Stopwatch.Minutes = Stopwatch.Total / 60;
-            Stopwatch.Seconds = Stopwatch.Total - ( Stopwatch.Minutes * 60 );
-            fAverageDepth = timer_Stopwatch_GetAvarageDepth_Meter();
-            fAverageDepthAbsolute = stateUsed->lifeData.average_depth_meter;
-
-            snprintf(text,TEXTSIZE,"\032\f%c",TXT_AvgDepth);
-            GFX_write_string(&FontT42,&t6c1,text,0);
-            snprintf(text,TEXTSIZE,"\030\003\016%01.1f",fAverageDepthAbsolute);
-            GFX_write_string(&FontT105,&t6c1,text,0);
-
-            tempWinX0 = t6c1.WindowX0;
-            tempWinY0 = t6c1.WindowY0;
-            t6c1.WindowX0 = 480;
-//			snprintf(text,TEXTSIZE,"\032\f%c%c - %c",TXT_2BYTE, TXT2BYTE_Clock, TXT_AvgDepth);
-            snprintf(text,TEXTSIZE,"\032\f%c", TXT_Stopwatch);
-            GFX_write_string(&FontT42,&t6c1,text,0);
-            snprintf(text,TEXTSIZE,"\030\016%01.1f",fAverageDepth);
-            GFX_write_string(&FontT105,&t6c1,text,0);
-            t6c1.WindowY0 = 100;
-            snprintf(text,TEXTSIZE,"\030%u:\016\016%02u",Stopwatch.Minutes, Stopwatch.Seconds);
-            GFX_write_string(&FontT105,&t6c1,text,0);
-            t6c1.WindowX0 = tempWinX0;
-            t6c1.WindowY0 = tempWinY0;
-        break;
-
-        case CVIEW_T3_Temperature:
-            snprintf(text,TEXTSIZE,"\032\f%c",TXT_Temperature);
-            GFX_write_string(&FontT42,&t6c1,text,0);
-            // mean value
-            temperatureThisCall = unit_temperature_float(stateUsed->lifeData.temperature_celsius);
-            temperature = (temperatureThisCall + temperatureLastCall[0] + temperatureLastCall[1] + temperatureLastCall[2]) / 4.0f;
-            idTemperatureLastCall++;
-            if(idTemperatureLastCall >= 3)
-                idTemperatureLastCall = 0;
-            temperatureLastCall[idTemperatureLastCall] = temperatureThisCall;
-            textpointer = snprintf(text,TEXTSIZE,"\030\003\016%01.1f \140",temperature); // "\016\016%01.1f `" + C or F
-            if(settingsGetPointer()->nonMetricalSystem == 0)
-                text[textpointer++] = 'C';
-            else
-                text[textpointer++] = 'F';
-            text[textpointer++] = 0;
-            GFX_write_string(&FontT105,&t6c1,text,0);
-        break;
-
-        case CVIEW_Compass:
-            snprintf(text,TEXTSIZE,"\032\f%c%c",TXT_2BYTE, TXT2BYTE_Compass);
-            GFX_write_string(&FontT42,&t6c1,text,0);
-            snprintf(text,100,"\030\003%03i`",(uint16_t)stateUsed->lifeData.compass_heading);
-            GFX_write_string(&FontT105,&t6c1,text,0);
-            t6_compass((uint16_t)stateUsed->lifeData.compass_heading, stateUsed->diveSettings.compassHeading);
-        break;
-
-        case CVIEW_T3_MaxDepth:
-        default:
-            snprintf(text,TEXTSIZE,"\032\f%c",TXT_MaxDepth);
-            GFX_write_string(&FontT42,&t6c1,text,0);
-            snprintf(text,TEXTSIZE,"\020\003\016%01.1f",unit_depth_float(stateUsed->lifeData.max_depth_meter));
-            t3_basics_colorscheme_mod(text);
-            GFX_write_string(&FontT105,&t6c1,text,1);
-            break;
-    }
-}
-
-
-void t6_show_customview_warnings(void)
-{
-    char text[256], textMain[256];
-    uint8_t textpointer, textpointerMain, lineFree, more;
-
-    snprintf(text,TEXTSIZE,"\025\f%c",TXT_Warning);
-    GFX_write_string(&FontT42,&t6c1,text,0);
-
-    lineFree = 1;
-    more = 0;
-
-    textpointerMain = 0;
-    textMain[textpointerMain++] = '\025';
-    textMain[textpointerMain++] = '\003';
-
-    textpointer = 0;
-
-    text[textpointer++] = '\021';
-    text[textpointer++] = TXT_2BYTE;
-    text[textpointer++] = TXT2BYTE_WarnDecoMissed;
-    if(stateUsed->warnings.decoMissed)
-    {
-        text[textpointer - 3] =  '\025';
-        if(lineFree)
-        {
-            textMain[textpointerMain++] = TXT_2BYTE;
-            textMain[textpointerMain++] = text[textpointer - 1];
-            textMain[textpointerMain] = 0;
-            lineFree--;
-        }
-        else
-        {
-            more++;
-        }
-    }
-
-    text[textpointer++] = '\t';
-    text[textpointer++] = '\021';
-    text[textpointer++] = TXT_2BYTE;
-    text[textpointer++] = TXT2BYTE_WarnPPO2Low;
-    if(stateUsed->warnings.ppO2Low)
-    {
-        text[textpointer - 3] =  '\025';
-        if(lineFree)
-        {
-            textMain[textpointerMain++] = TXT_2BYTE;
-            textMain[textpointerMain++] = text[textpointer - 1];
-            textMain[textpointerMain] = 0;
-            lineFree--;
-        }
-        else
-        {
-            more++;
-        }
-    }
-
-    text[textpointer++] = '\n';
-    text[textpointer++] = '\r';
-    text[textpointer++] = '\021';
-    text[textpointer++] = TXT_2BYTE;
-    text[textpointer++] = TXT2BYTE_WarnPPO2High;
-    if(stateUsed->warnings.ppO2High)
-    {
-        text[textpointer - 3] =  '\025';
-        if(lineFree)
-        {
-            textMain[textpointerMain++] = TXT_2BYTE;
-            textMain[textpointerMain++] = text[textpointer - 1];
-            textMain[textpointerMain] = 0;
-            lineFree--;
-        }
-        else
-        {
-            more++;
-        }
-    }
-
-    text[textpointer++] = '\t';
-    text[textpointer++] = '\021';
-    text[textpointer++] = TXT_2BYTE;
-    text[textpointer++] = TXT2BYTE_WarnFallback;
-    if(stateUsed->warnings.fallback)
-    {
-        text[textpointer - 3] =  '\025';
-        if(lineFree)
-        {
-            textMain[textpointerMain++] = TXT_2BYTE;
-            textMain[textpointerMain++] = text[textpointer - 1];
-            textMain[textpointerMain] = 0;
-            lineFree--;
-        }
-        else
-        {
-            more++;
-        }
-    }
-
-    text[textpointer++] = '\n';
-    text[textpointer++] = '\r';
-    text[textpointer++] = '\021';
-    text[textpointer++] = TXT_2BYTE;
-    text[textpointer++] = TXT2BYTE_WarnSensorLinkLost;
-    if(stateUsed->warnings.sensorLinkLost)
-    {
-        text[textpointer - 3] =  '\025';
-        if(lineFree)
-        {
-            textMain[textpointerMain++] = TXT_2BYTE;
-            textMain[textpointerMain++] = text[textpointer - 1];
-            textMain[textpointerMain] = 0;
-            lineFree--;
-        }
-        else
-        {
-            more++;
-        }
-    }
-
-    text[textpointer] = 0;
-    GFX_write_string(&FontT48,&t6c1,textMain,1);
-    if(more)
-    {
-        GFX_write_string(&FontT48,&t6c2,text,1);
-    }
-}
-
-
-void t6_change_customview(void)
-{
-    const uint8_t *pViews;
-    pViews = t6_customviews;
-
-    while((*pViews != CVIEW_T3_END) && (*pViews != t6_selection_customview))
-        {pViews++;}
-
-    if(*pViews < CVIEW_T3_END)
-        pViews++;
-
-    if(*pViews == CVIEW_T3_END)
-    {
-        t6_selection_customview = t6_customviews[0];
-    }
-    else
-        t6_selection_customview = *pViews;
-}
-
-
-void t3_basics_colorscheme_mod(char *text)
-{
-    if((text[0] == '\020') && !GFX_is_colorschemeDiveStandard())
-    {
-        text[0] = '\027';
-    }
-}
-
-point_t t6_compass_circle(uint8_t id, uint16_t degree)
-{
-    float fCos, fSin;
-    const float piMult =  ((2 * 3.14159) / 360);
-//	const int radius[4] = {95,105,115,60};
-    const int radius[4] = {85,95,105,90};
-    const point_t offset = {.x = 600, .y = 116};
-
-    static point_t r[4][360] = { 0 };
-
-    if(r[0][0].y == 0)
-    {
-        for(int i=0;i<360;i++)
-        {
-            fCos = cos(i * piMult);
-            fSin = sin(i * piMult);
-            for(int j=0;j<4;j++)
-            {
-                r[j][i].x = offset.x + (int)(fSin * radius[j]);
-                r[j][i].y = offset.y + (int)(fCos * radius[j]);
-            }
-        }
-    }
-    if(id > 3) id = 0;
-    if(degree > 359) degree = 0;
-    return r[id][degree];
-}
-
-
-void t6_compass(uint16_t ActualHeading, uint16_t UserSetHeading)
-{
-    uint16_t LineHeading;
-    point_t center;
-    static int32_t LastHeading = 0;
-    int32_t newHeading = 0;
-    int32_t diff = 0;
-    int32_t diff2 = 0;
-
-    int32_t diffAbs = 0;
-    int32_t diffAbs2 = 0;
-
-    newHeading = ActualHeading;
-
-    diff = newHeading - LastHeading;
-
-    if(newHeading < LastHeading)
-        diff2 = newHeading + 360 - LastHeading;
-    else
-        diff2 = newHeading - 360 - LastHeading;
-
-    diffAbs = diff;
-    if(diffAbs < 0)
-        diffAbs *= -1;
-
-    diffAbs2 = diff2;
-    if(diffAbs2 < 0)
-        diffAbs2 *= -1;
-
-
-    if(diffAbs <= diffAbs2)
-        newHeading = LastHeading + (diff / 2);
-    else
-        newHeading = LastHeading + (diff2 / 2);
-
-    if(newHeading < 0)
-        newHeading += 360;
-    else
-    if(newHeading >= 360)
-        newHeading -= 360;
-
-    LastHeading = newHeading;
-    ActualHeading = newHeading;
-
-    if (ActualHeading < 90)
-        ActualHeading += 360;
-
-    while(ActualHeading > 359) ActualHeading -= 360;
-
-    LineHeading = 360 - ActualHeading;
-    GFX_draw_thick_line(9,&t6screen, t6_compass_circle(0,LineHeading),  t6_compass_circle(2,LineHeading), CLUT_Font030); // North
-    LineHeading += 90;
-    if(LineHeading > 359) LineHeading -= 360;
-    GFX_draw_thick_line(9,&t6screen, t6_compass_circle(1,LineHeading),  t6_compass_circle(2,LineHeading), CLUT_Font031); // Maintick
-    LineHeading += 90;
-    if(LineHeading > 359) LineHeading -= 360;
-    GFX_draw_thick_line(9,&t6screen, t6_compass_circle(1,LineHeading),  t6_compass_circle(2,LineHeading), CLUT_Font031);
-    LineHeading += 90;
-    if(LineHeading > 359) LineHeading -= 360;
-    GFX_draw_thick_line(9,&t6screen, t6_compass_circle(1,LineHeading),  t6_compass_circle(2,LineHeading), CLUT_Font031);
-
-    LineHeading = 360 - ActualHeading;
-    LineHeading += 45;
-    if(LineHeading > 359) LineHeading -= 360;
-    GFX_draw_thick_line(5,&t6screen, t6_compass_circle(1,LineHeading),  t6_compass_circle(2,LineHeading), CLUT_Font031); // Subtick
-    LineHeading += 90;
-    if(LineHeading > 359) LineHeading -= 360;
-    GFX_draw_thick_line(5,&t6screen, t6_compass_circle(1,LineHeading),  t6_compass_circle(2,LineHeading), CLUT_Font031);
-    LineHeading += 90;
-    if(LineHeading > 359) LineHeading -= 360;
-    GFX_draw_thick_line(5,&t6screen, t6_compass_circle(1,LineHeading),  t6_compass_circle(2,LineHeading), CLUT_Font031);
-    LineHeading += 90;
-    if(LineHeading > 359) LineHeading -= 360;
-    GFX_draw_thick_line(5,&t6screen, t6_compass_circle(1,LineHeading),  t6_compass_circle(2,LineHeading), CLUT_Font031);
-
-    LineHeading = 360 - ActualHeading;
-    LineHeading += 22;
-    if(LineHeading > 359) LineHeading -= 360;
-    GFX_draw_thick_line(3,&t6screen, t6_compass_circle(1,LineHeading),  t6_compass_circle(2,LineHeading), CLUT_Font031); // Subtick
-    LineHeading += 45;
-    if(LineHeading > 359) LineHeading -= 360;
-    GFX_draw_thick_line(3,&t6screen, t6_compass_circle(1,LineHeading),  t6_compass_circle(2,LineHeading), CLUT_Font031);
-    LineHeading += 45;
-    if(LineHeading > 359) LineHeading -= 360;
-    GFX_draw_thick_line(3,&t6screen, t6_compass_circle(1,LineHeading),  t6_compass_circle(2,LineHeading), CLUT_Font031);
-    LineHeading += 45;
-    if(LineHeading > 359) LineHeading -= 360;
-    GFX_draw_thick_line(3,&t6screen, t6_compass_circle(1,LineHeading),  t6_compass_circle(2,LineHeading), CLUT_Font031);
-    LineHeading += 45;
-    if(LineHeading > 359) LineHeading -= 360;
-    GFX_draw_thick_line(3,&t6screen, t6_compass_circle(1,LineHeading),  t6_compass_circle(2,LineHeading), CLUT_Font031); // Subtick
-    LineHeading += 45;
-    if(LineHeading > 359) LineHeading -= 360;
-    GFX_draw_thick_line(3,&t6screen, t6_compass_circle(1,LineHeading),  t6_compass_circle(2,LineHeading), CLUT_Font031);
-    LineHeading += 45;
-    if(LineHeading > 359) LineHeading -= 360;
-    GFX_draw_thick_line(3,&t6screen, t6_compass_circle(1,LineHeading),  t6_compass_circle(2,LineHeading), CLUT_Font031);
-    LineHeading += 45;
-    if(LineHeading > 359) LineHeading -= 360;
-    GFX_draw_thick_line(3,&t6screen, t6_compass_circle(1,LineHeading),  t6_compass_circle(2,LineHeading), CLUT_Font031);
-
-    if(UserSetHeading)
-    {
-        LineHeading = UserSetHeading + 360 - ActualHeading;
-        if(LineHeading > 359) LineHeading -= 360;
-        GFX_draw_thick_line(9,&t6screen, t6_compass_circle(3,LineHeading),  t6_compass_circle(2,LineHeading), CLUT_CompassUserHeadingTick);
-
-        // R�ckpeilung, User Back Heading
-        LineHeading = UserSetHeading + 360 + 180 - ActualHeading;
-        if(LineHeading > 359) LineHeading -= 360;
-        if(LineHeading > 359) LineHeading -= 360;
-        GFX_draw_thick_line(9,&t6screen, t6_compass_circle(3,LineHeading),  t6_compass_circle(2,LineHeading), CLUT_CompassUserBackHeadingTick);
-    }
-
-    center.x = 600;
-    center.y = 116;
-    GFX_draw_circle(&t6screen, center, 106, CLUT_Font030);
-    GFX_draw_circle(&t6screen, center, 107, CLUT_Font030);
-    GFX_draw_circle(&t6screen, center, 108, CLUT_Font030);
-}
-*/
-
--- a/Discovery/Src/t7.c	Sat Mar 16 19:58:52 2019 +0000
+++ b/Discovery/Src/t7.c	Sun Mar 17 19:16:59 2019 +0100
@@ -74,10 +74,6 @@
 /* Exported variables --------------------------------------------------------*/
 
 /* Private variables ---------------------------------------------------------*/
-float depthLastCall[9] = { 0,0,0,0,0,0,0,0,0};
-uint8_t idDepthLastCall = 0;
-float temperatureLastCall[3] = { 0,0,0};
-uint8_t idTemperatureLastCall = 0;
 
 GFX_DrawCfgScreen	t7screen;
 GFX_DrawCfgScreen	t7screenCompass;
@@ -663,7 +659,7 @@
         ytop = 800 - state;
     else
         ytop = 0 + state;
-    Gfx_write_label_var(&t7screen,  300,800, ytop,&FontT48,CLUT_Font020,"SLEEP SLEEP SLEEP");
+    Gfx_write_label_var(&t7screen,  300,800, ytop,&FontT48,CLUT_Font020,"Shutting down...");
 }
 
 void t7_refresh_surface(void)
@@ -2053,7 +2049,7 @@
     t7_colorscheme_mod(TextL2);
     GFX_write_string(&FontT105,&t7l2,TextL2,1);
 
-    /* ascentrate graph */
+    /* ascent rate graph */
     if(stateUsed->lifeData.ascent_rate_meter_per_min > 0)
     {
     	if(!pSettings->FlipDisplay)
@@ -2474,8 +2470,6 @@
     const SDecoinfo * pDecoinfoStandard;
     const SDecoinfo * pDecoinfoFuture;
     float fCNS;
-
-    float temperatureThisCall;
     float temperature;
 
     if(stateUsed->diveSettings.deco_type.ub.standard == GF_MODE)
@@ -2503,14 +2497,7 @@
     /* Temperature */
     case 1:
     default:
-        // mean value
-        temperatureThisCall = unit_temperature_float(stateUsed->lifeData.temperature_celsius);
-        temperature = (temperatureThisCall + temperatureLastCall[0] + temperatureLastCall[1] + temperatureLastCall[2]) / 4.0f;
-        idTemperatureLastCall++;
-        if(idTemperatureLastCall >= 3)
-            idTemperatureLastCall = 0;
-        temperatureLastCall[idTemperatureLastCall] = temperatureThisCall;
-        // output
+    	temperature = unit_temperature_float(stateUsed->lifeData.temperature_celsius);
         headerText[2] = TXT_Temperature;
         textpointer = snprintf(text,TEXTSIZE,"\020\016%01.1f \140",temperature); // "\016\016%01.1f `" + C or F
         if(settingsGetPointer()->nonMetricalSystem == 0)
--- a/Discovery/Src/tInfoLog.c	Sat Mar 16 19:58:52 2019 +0000
+++ b/Discovery/Src/tInfoLog.c	Sun Mar 17 19:16:59 2019 +0100
@@ -57,7 +57,6 @@
 SInfoLogMemory infolog;
 
 /* Private function prototypes -----------------------------------------------*/
-void nextLineInfoLog(void);
 void tInfoLog_BuildAndShowNextPage(void);
 void tInfoLog_nextLine(void);
 void showLog(void);
@@ -162,6 +161,7 @@
     case ACTION_MODE_CHANGE:
     case ACTION_BUTTON_BACK:
         stepBackInfo();
+        break;
     default:
         break;
     case ACTION_IDLE_TICK:
@@ -192,6 +192,7 @@
             showLogExit();
         }
         show_logbook_exit();
+        break;
     default:
         break;
     case ACTION_IDLE_TICK:
--- a/Discovery/Src/timer.c	Sat Mar 16 19:58:52 2019 +0000
+++ b/Discovery/Src/timer.c	Sun Mar 17 19:16:59 2019 +0100
@@ -28,11 +28,10 @@
 
 #include "data_central.h"
 
-long stopWatchTime_Second = 0;
-_Bool bStopWatch = false;
-float stopWatchAverageDepth_Meter = 0.0f;
-long safetyStopCountDown_Second = 0;
-_Bool bSafetyStop = false;
+static long stopWatchTime_Second = 0;
+static _Bool bStopWatch = false;
+static float stopWatchAverageDepth_Meter = 0.0f;
+static long safetyStopCountDown_Second = 0;
 
 void timer_init(void)
 {
@@ -48,7 +47,7 @@
     static int last_second = -1;
     static _Bool bSafetyStop = false;
     static float last_depth_meter = 0;
-    //static _Bool CountDownStarted = false;
+
     if(checkOncePerSecond)
     {
         int now =  current_second();
--- a/Small_CPU/Src/pressure.c	Sat Mar 16 19:58:52 2019 +0000
+++ b/Small_CPU/Src/pressure.c	Sun Mar 17 19:16:59 2019 +0100
@@ -46,30 +46,24 @@
 #define CMD_ADC_4096 0x08 // ADC OSR=4096
 #define CMD_PROM_RD 0xA0 // Prom read command
 
+static uint16_t get_ci_by_coef_num(uint8_t coef_num);
+//void pressure_calculation_new(void);
+//void pressure_calculation_old(void);
+static void pressure_calculation_AN520_004_mod_MS5803_30BA__09_2015(void);
+static uint8_t crc4(uint16_t n_prom[]);
 
-//uint16_t  get_ci(uint8_t cmd);
-//uint8_t  get_ci_crc(void);
-uint16_t  get_ci_by_coef_num(uint8_t coef_num);
-void pressure_calculation_new(void);
-void pressure_calculation_old(void);
-void pressure_calculation_AN520_004_mod_MS5803_30BA__09_2015(void);
-
-uint8_t crc4(uint16_t n_prom[]);
-
-HAL_StatusTypeDef pressure_sensor_get_data(void);
-uint32_t get_adc(void);
+static HAL_StatusTypeDef pressure_sensor_get_data(void);
+static uint32_t get_adc(void);
 uint8_t pressureSensorInitSuccess = 0;
 
-//void test_calculation(void);
+static uint16_t C[8] = { 1 };
+static uint32_t D1 = 1;
+static uint32_t D2 = 1;
+static uint8_t n_crc;
 
-uint16_t C[8] = { 1 };
-uint32_t D1 = 1;
-uint32_t D2 = 1;
-uint8_t n_crc;
-
-int64_t C5_x_2p8 = 1;
-int64_t C2_x_2p16 = 1;
-int64_t C1_x_2p15 = 1;
+static int64_t C5_x_2p8 = 1;
+static int64_t C2_x_2p16 = 1;
+static int64_t C1_x_2p15 = 1;
 
 /*
 short C2plus10000 = -1;
@@ -79,10 +73,10 @@
 short C6plus100 = -1;
 */
 
-float ambient_temperature = 0;
-float ambient_pressure_mbar = 0;
-float surface_pressure_mbar = 1000;
-float surface_ring_mbar[31] = { 0 };
+static float ambient_temperature = 0;
+static float ambient_pressure_mbar = 0;
+static float surface_pressure_mbar = 1000;
+static float surface_ring_mbar[31] = { 0 };
 
 uint8_t secondCounterSurfaceRing = 0;
 
@@ -91,15 +85,11 @@
 	return ambient_temperature;
 }
 
-//float test = 1000;
-
 float get_pressure_mbar(void)
 {
-//	return test;
 	return ambient_pressure_mbar;
 }
 
-
 float get_surface_mbar(void)
 {
 	return surface_pressure_mbar;
@@ -142,7 +132,7 @@
 	surface_ring_mbar[hole] = 0;
 }
 
-
+#ifdef DEMOMODE
 float demo_modify_temperature_helper(float bottom_mbar_diff_to_surface)
 {
 	const float temperature_surface = 31.0;
@@ -217,9 +207,11 @@
 		return 0;
 	}
 }
+#endif
 
 
 /* called just once on power on */
+/* TBD old DR5 code? */
 void init_pressure_DRx(void)
 {
 	uint8_t resetCommand[1] = {0x1E};
@@ -277,12 +269,12 @@
 }
 
 
-uint32_t get_adc(void)
+static uint32_t get_adc(void)
 {
 	uint8_t buffer[1];
 	uint8_t resivebuf[4];
 	uint32_t answer = 0;
-	//
+
 	buffer[0] = 0x00; // Get ADC
 	I2C_Master_Transmit( DEVICE_PRESSURE, buffer, 1);
 	I2C_Master_Receive(  DEVICE_PRESSURE, resivebuf, 4);
@@ -293,7 +285,7 @@
 }
 
 
-uint16_t  get_ci_by_coef_num(uint8_t coef_num)
+static uint16_t get_ci_by_coef_num(uint8_t coef_num)
 {
 	uint8_t resivebuf[2];
 
@@ -315,7 +307,7 @@
 }
 
 
-uint32_t pressure_sensor_get_one_value(uint8_t cmd, HAL_StatusTypeDef *statusReturn)
+static uint32_t pressure_sensor_get_one_value(uint8_t cmd, HAL_StatusTypeDef *statusReturn)
 {
 	uint8_t command = CMD_ADC_CONV + cmd;
 	HAL_StatusTypeDef statusReturnTemp = HAL_TIMEOUT;
@@ -339,7 +331,7 @@
 }
 
 
-HAL_StatusTypeDef pressure_sensor_get_data(void)
+static HAL_StatusTypeDef pressure_sensor_get_data(void)
 {
 	HAL_StatusTypeDef statusReturn1 = HAL_TIMEOUT;
 	HAL_StatusTypeDef statusReturn2 = HAL_TIMEOUT;
@@ -372,14 +364,9 @@
 		return;
 	
 	pressure_calculation_AN520_004_mod_MS5803_30BA__09_2015();
-	return;
-
-	// before October 2016:	pressure_calculation_old();
-	
-//	pressure_calculation_new();
 }
 
-void pressure_calculation_AN520_004_mod_MS5803_30BA__09_2015(void)
+static void pressure_calculation_AN520_004_mod_MS5803_30BA__09_2015(void)
 {
 	uint32_t local_D1; // ADC value of the pressure conversion
 	uint32_t local_D2; // ADC value of the temperature conversion
@@ -446,6 +433,7 @@
 }
 
 
+/*
 void pressure_calculation_new(void)
 {
 #define POW2_8	(256)
@@ -511,8 +499,9 @@
 	ambient_temperature 	= ((float)T) / 100;
 	ambient_pressure_mbar	= ((float)P) / 10;
 }
+*/
 
-
+/*
 void pressure_calculation_old(void) {
 	//
 	double ambient_temperature_centigrad = 0;
@@ -528,12 +517,6 @@
 	static int64_t sens2 = 0;
 	static int64_t t2 = 0;
 
-/* info
-uint16_t C[8] = { 1 };
-uint32_t D1 = 1;
-uint32_t D2 = 1;
-uint8_t n_crc;
-*/
 	if((D2 == 0) || (D1 == 0))
 		return;
 	//
@@ -597,12 +580,13 @@
 	ambient_pressure_decimbar = temp; // to float/double
 	ambient_pressure_mbar = ambient_pressure_decimbar / 10;
 }
+*/
 
 
 /* taken from AN520 by meas-spec.com dated 9. Aug. 2011
  * short and int are both 16bit according to AVR/GCC google results
  */
-uint8_t crc4(uint16_t n_prom[])
+static uint8_t crc4(uint16_t n_prom[])
 {
 uint16_t cnt; // simple counter
 uint16_t n_rem; // crc reminder
--- a/Small_CPU/Src/scheduler.c	Sat Mar 16 19:58:52 2019 +0000
+++ b/Small_CPU/Src/scheduler.c	Sun Mar 17 19:16:59 2019 +0100
@@ -458,11 +458,9 @@
   */
 void scheduleDiveMode(void)
 {
-//	uint32_t tickstart = 0;
 	uint32_t ticksdiff = 0; 
 	uint32_t lasttick = 0;
 
-	uint32_t turbo_seconds = 0;
 	uint8_t counterAscentRate = 0;
 	float lastPressure_bar = 0.0f;
 	global.dataSendToMaster.mode = MODE_DIVE;
@@ -498,9 +496,10 @@
 				global.check_sync_not_running++;
 				pressure_update();
 				scheduleUpdateDeviceData();
+#ifdef DEMOMODE
 				if(global.demo_mode)
 				{
-					turbo_seconds = demo_modify_temperature_and_pressure(global.lifeData.dive_time_seconds, Scheduler.counterPressure100msec, global.ceiling_from_main_CPU_mbar);
+					int turbo_seconds = demo_modify_temperature_and_pressure(global.lifeData.dive_time_seconds, Scheduler.counterPressure100msec, global.ceiling_from_main_CPU_mbar);
 					if(turbo_seconds)
 					{
 						global.lifeData.dive_time_seconds += turbo_seconds;
@@ -510,7 +509,7 @@
 					if((global.lifeData.counterSecondsShallowDepth > 1) && (global.lifeData.counterSecondsShallowDepth < (global.settings.timeoutDiveReachedZeroDepth - 10)))
 						global.lifeData.counterSecondsShallowDepth = (global.settings.timeoutDiveReachedZeroDepth - 10);
 				}
-				
+#endif
 				
 				//Calc ascentrate every two second (20 * 100 ms)
 				counterAscentRate++;
@@ -1543,7 +1542,7 @@
 }
 
 
-//save time diffenrence
+//save time difference
 uint32_t time_elapsed_ms(uint32_t ticksstart,uint32_t ticksnow)
 {
 	if(ticksstart <= ticksnow)