diff Discovery/Src/tMenuDecoParameter.c @ 38:5f11787b4f42

include in ostc4 repository
author heinrichsweikamp
date Sat, 28 Apr 2018 11:52:34 +0200
parents
children d4622533271d
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Discovery/Src/tMenuDecoParameter.c	Sat Apr 28 11:52:34 2018 +0200
@@ -0,0 +1,225 @@
+///////////////////////////////////////////////////////////////////////////////
+/// -*- coding: UTF-8 -*-
+///
+/// \file   Discovery/Src/tMenuDecoParameter.c
+/// \brief  Deco Parameter
+/// \author heinrichs weikamp gmbh
+/// \date   02-Feb-2015
+///
+/// \details
+///
+/// $Id$
+///////////////////////////////////////////////////////////////////////////////
+/// \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh
+///
+///     This program is free software: you can redistribute it and/or modify
+///     it under the terms of the GNU General Public License as published by
+///     the Free Software Foundation, either version 3 of the License, or
+///     (at your option) any later version.
+///
+///     This program is distributed in the hope that it will be useful,
+///     but WITHOUT ANY WARRANTY; without even the implied warranty of
+///     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+///     GNU General Public License for more details.
+///
+///     You should have received a copy of the GNU General Public License
+///     along with this program.  If not, see <http://www.gnu.org/licenses/>.
+//////////////////////////////////////////////////////////////////////////////
+
+/* Includes ------------------------------------------------------------------*/
+#include <stdio.h>
+#include <string.h>
+#include "tMenu.h"
+#include "tStructure.h"
+#include "tMenuDecoParameter.h"
+#include "text_multilanguage.h"
+#include "settings.h"
+#include "data_central.h"
+#include "unit.h"
+
+#define MDP_TAB (380)
+
+/* Exported functions --------------------------------------------------------*/
+
+uint32_t tMDecoParameters_refresh(uint8_t line, char *text, uint16_t *tab, char *subtext)
+{
+    uint8_t decoType, VpmConsveratism, GFlow, GFhigh, aGFlow, aGFhigh;
+    int8_t mode;
+    uint8_t textPointer;
+    uint8_t	lastStop;
+    char decotypeTxtId;
+
+    textPointer = 0;
+    *tab = MDP_TAB;
+    *subtext = 0;
+
+    if(actual_menu_content != MENU_SURFACE)
+    {
+      const SDiveSettings * pDiveSettings;
+
+        if(actual_menu_content == MENU_DIVE_REAL)
+        {
+            const SDiveState * pState = stateRealGetPointer();
+            pDiveSettings = &pState->diveSettings;
+        }
+        else
+        {
+            const SDiveState * pState = stateSimGetPointer();
+            pDiveSettings = &pState->diveSettings;
+        }
+
+        if(pDiveSettings->deco_type.ub.standard == VPM_MODE)
+            mode = VPM_MODE;
+        else
+    if((pDiveSettings->gf_high == settingsGetPointer()->GF_high) && (pDiveSettings->gf_low == settingsGetPointer()->GF_low))
+            mode = GF_MODE;
+        else
+            mode = -1;
+
+
+        VpmConsveratism = pDiveSettings->vpm_conservatism;
+        GFlow = settingsGetPointer()->GF_low;
+        GFhigh = settingsGetPointer()->GF_high;
+        aGFlow = settingsGetPointer()->aGF_low;
+        aGFhigh = settingsGetPointer()->aGF_high;
+
+        text[textPointer++] = '\006' - (mode == VPM_MODE);
+        text[textPointer++] = ' ';
+        textPointer += snprintf(&text[textPointer], 60,\
+            "VPM"
+            "\t"
+            "+"
+            "%u"
+            "\n\r"
+            , VpmConsveratism
+        );
+
+        text[textPointer++] = '\006' - (mode == GF_MODE);
+        text[textPointer++] = ' ';
+        textPointer += snprintf(&text[textPointer], 60,\
+            "GF"
+            "\016\016"
+            "low/high"
+            "\017"
+            "\t"
+            "%u"
+            "/"
+            "%u"
+            "\n\r"
+            , GFlow, GFhigh
+        );
+
+        text[textPointer++] = '\006' - (mode == -1);
+        text[textPointer++] = ' ';
+        textPointer += snprintf(&text[textPointer], 60,\
+            "aGF"
+            "\016\016"
+            "low/high"
+            "\017"
+            "\t"
+            "%u"
+            "/"
+            "%u"
+            "\n\r"
+            , aGFlow, aGFhigh
+        );
+
+        text[textPointer++] = 0;
+        return StMDECOP;
+    }
+
+    SSettings *data = settingsGetPointer();
+
+    decoType = settingsGetPointer()->deco_type.ub.standard;
+    VpmConsveratism = data->VPM_conservatism.ub.standard;
+    GFlow = data->GF_low;
+    GFhigh = data->GF_high;
+    aGFlow = data->aGF_low;
+    aGFhigh = data->aGF_high;
+    lastStop = data->last_stop_depth_meter;
+
+    if((line == 0) || (line == 1))
+    {
+        if(decoType == VPM_MODE)
+            decotypeTxtId = TXT_VPM;
+        else
+            decotypeTxtId = TXT_ZHL16GF;
+
+        textPointer += snprintf(&text[textPointer], 60,\
+            "%c"
+            "\t"
+            "%c"
+            , TXT_DecoAlgorithm
+            , decotypeTxtId
+        );
+    }
+    strcpy(&text[textPointer],"\n\r");
+    textPointer += 2;
+
+    if((line == 0) || (line == 2))
+    {
+        textPointer += snprintf(&text[textPointer], 60,\
+            "VPM"
+            "\t"
+            "+"
+            "%u"
+            , VpmConsveratism
+        );
+    }
+    strcpy(&text[textPointer],"\n\r");
+    textPointer += 2;
+
+    if((line == 0) || (line == 3))
+    {
+        textPointer += snprintf(&text[textPointer], 60,\
+            "GF"
+            "\016\016"
+            "low/high"
+            "\017"
+            "\t"
+            "%u"
+            "/"
+            "%u"
+            , GFlow, GFhigh
+        );
+    }
+    strcpy(&text[textPointer],"\n\r");
+    textPointer += 2;
+
+    if((line == 0) || (line == 4))
+    {
+        textPointer += snprintf(&text[textPointer], 60,\
+            "aGF"
+            "\016\016"
+            "low/high"
+            "\017"
+            "\t"
+            "%u"
+            "/"
+            "%u"
+            , aGFlow, aGFhigh
+        );
+    }
+    strcpy(&text[textPointer],"\n\r");
+    textPointer += 2;
+
+    if((line == 0) || (line == 5))
+    {
+        textPointer += snprintf(&text[textPointer], 60,\
+            "%c"
+            "\t"
+            "%u"
+            "\016\016"
+            " %c%c"
+            "\017"
+            , TXT_LastDecostop
+            , unit_depth_integer(lastStop)
+            , unit_depth_char1()
+            , unit_depth_char2()
+        );
+    }
+    strcpy(&text[textPointer],"\n\r");
+    textPointer += 2;
+
+    return StMDECOP;
+}