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

include in ostc4 repository
author heinrichsweikamp
date Sat, 28 Apr 2018 11:52:34 +0200
parents
children 1f557e5f4b5a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Discovery/Src/tMenuSetpoint.c	Sat Apr 28 11:52:34 2018 +0200
@@ -0,0 +1,137 @@
+///////////////////////////////////////////////////////////////////////////////
+/// -*- coding: UTF-8 -*-
+///
+/// \file   Discovery/Src/tMenuSetpoint.c
+/// \brief
+/// \author heinrichs weikamp gmbh
+/// \date   19-Dec-2014
+///
+/// \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 "tMenu.h"
+#include "tMenuSetpoint.h"
+#include "unit.h"
+
+/* Private function prototypes -----------------------------------------------*/
+
+/* Exported functions --------------------------------------------------------*/
+
+uint32_t tMSP_refresh(uint8_t line,
+                      char *text,
+                      uint16_t *tab,
+                      char *subtext)
+{
+    const SSetpointLine * pSetpointLine;
+
+    uint8_t textPointer, setpoint_cbar, sp_high, depthUp, first; //  active
+
+    if(actual_menu_content == MENU_SURFACE)
+        pSetpointLine = settingsGetPointer()->setpoint;
+    else
+        pSetpointLine = stateUsed->diveSettings.setpoint;
+
+    textPointer = 0;
+    *tab = 130;
+    *subtext = 0;
+
+    for(int spId=1;spId<=NUM_GASES;spId++)
+    {
+        if(line && (line != spId))
+        {
+                first = pSetpointLine[spId].note.ub.first;
+                if(first == 0)
+                {
+                    strcpy(&text[textPointer],
+                        "\t"
+                        "\177"
+                        "*"
+                        "\n\r"
+                    );
+                    textPointer += 5;
+                }
+                else
+                {
+                    strcpy(&text[textPointer],"\n\r");
+                    textPointer += 2;
+                }
+        }
+        else
+        {
+            setpoint_cbar = pSetpointLine[spId].setpoint_cbar;
+            depthUp = pSetpointLine[spId].depth_meter;
+            //active = pSetpointLine[spId].note.ub.active;
+            first = pSetpointLine[spId].note.ub.first;
+
+            strcpy(&text[textPointer],"\020"); // if(active) always active
+            textPointer += 1;
+
+            sp_high = setpoint_cbar / 100;
+
+            text[textPointer++] = 'S';
+            text[textPointer++] = 'P';
+            text[textPointer++] = '0' + spId;
+            text[textPointer++] = '\t';
+
+            if((first == 0) || (actual_menu_content != MENU_SURFACE))
+                strcpy(&text[textPointer++],"\177");
+
+            char color = '\021';
+            if(depthUp)
+                color = '\020';
+
+            textPointer += snprintf(&text[textPointer], 57,
+                "* "
+                "%u.%02u"
+                "\016\016"
+                " bar"
+                "\017"
+                "\034"
+                "   "
+                "\016\016"
+                " "
+                "\017"
+                "%c"
+                "%3u"
+                "\016\016"
+                " %c%c"
+                "\017"
+                "\035"
+                "\n\r",
+                sp_high, setpoint_cbar - (100 * sp_high),
+                color,
+                unit_depth_integer(depthUp),
+                unit_depth_char1(),
+                unit_depth_char2()
+            );
+        }
+    }
+    if((actual_menu_content != MENU_SURFACE) /*&& (line == 0)*/)
+    {
+        text[textPointer++] = '\020';
+        text[textPointer++] = TXT_2BYTE;
+        text[textPointer++] = TXT2BYTE_UseSensor;
+        text[textPointer++] = '\n';
+        text[textPointer++] = '\r';
+        text[textPointer++] = 0;
+    }
+    return StMSP;
+}