annotate Discovery/Src/tMenuXtra.c @ 863:0c89c6fa949c Evo_2_23 tip

Bugfix empty line in deco plan (VPM only): Floating numbers were used to calculate the target slot for the time entry of a deco stop. The float rounding caused a time to be written into one line above the intended one. In the next step the misplaced time was overwritten by the next shallower stop. To fix the problem the index calculation has been corrected and in addition digit numbers have generally been added to floating point operations to make the floating operation more visible.
author Ideenmodellierer
date Tue, 02 Jul 2024 20:05:08 +0200
parents 48b6a3b1f3f8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1 ///////////////////////////////////////////////////////////////////////////////
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
2 /// -*- coding: UTF-8 -*-
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
3 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
4 /// \file Discovery/Src/tMenuXtra.c
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
5 /// \brief Menu Xtra - Specials in Divemode like Reset Stopwatch
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
6 /// \author heinrichs weikamp gmbh
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
7 /// \date 02-Mar-2015
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
8 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
9 /// \details
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
10 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
11 /// $Id$
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
12 ///////////////////////////////////////////////////////////////////////////////
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
13 /// \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
14 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
15 /// This program is free software: you can redistribute it and/or modify
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
16 /// it under the terms of the GNU General Public License as published by
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
17 /// the Free Software Foundation, either version 3 of the License, or
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
18 /// (at your option) any later version.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
19 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
20 /// This program is distributed in the hope that it will be useful,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
21 /// but WITHOUT ANY WARRANTY; without even the implied warranty of
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
22 /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
23 /// GNU General Public License for more details.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
24 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
25 /// You should have received a copy of the GNU General Public License
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
26 /// along with this program. If not, see <http://www.gnu.org/licenses/>.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
27 //////////////////////////////////////////////////////////////////////////////
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
28
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
29 /* Includes ------------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
30 #include <stdio.h>
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
31 #include <string.h>
769
6b248bcdbf28 Deactivation of the 'fallback' option when the CCR mode is set to 'Fixed' - this makes it a little clearer that the option has no influence in this mode.
heinrichsweikamp
parents: 707
diff changeset
32 #include <stdbool.h>
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
33 #include "tMenu.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
34 #include "tStructure.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
35 #include "tMenuXtra.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
36 #include "text_multilanguage.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
37 #include "data_central.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
38 #include "simulation.h"
609
1b243c6c7067 Bugfix: CalibViewport were shown even in case the compile switch had not been set:
Ideenmodellierer
parents: 547
diff changeset
39 #include "configuration.h"
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
40
850
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
41
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
42 /* Exported functions --------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
43
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
44 uint32_t tMXtra_refresh(uint8_t line, char *text, uint16_t *tab, char *subtext)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
45 {
707
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
46 uint8_t textPointer = 0;
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
47 uint8_t CcrModusTxtId = 0;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
48
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
49 textPointer = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
50 *tab = 500;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
51 *subtext = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
52
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 654
diff changeset
53 SSettings *pSettings = settingsGetPointer();
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 654
diff changeset
54
854
48b6a3b1f3f8 Development bugfix menu id handling:
Ideenmodellierer
parents: 850
diff changeset
55 resetLineMask(StMXTRA);
48b6a3b1f3f8 Development bugfix menu id handling:
Ideenmodellierer
parents: 850
diff changeset
56
654
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
57 /* DIVE MODE */
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
58 if(actual_menu_content != MENU_SURFACE)
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
59 {
654
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
60 if((line == 0) || (line == 1))
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
61 {
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
62 text[textPointer++] = TXT_2BYTE;
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
63 text[textPointer++] = TXT2BYTE_ResetStopwatch;
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
64 }
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
65 strcpy(&text[textPointer],"\n\r");
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
66 textPointer += 2;
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
67 /*
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
68 if((line == 0) || (line == 2))
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
69 {
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
70 text[textPointer++] = TXT_2BYTE;
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
71 text[textPointer++] = TXT2BYTE_ResetAvgDepth;
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
72 }
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
73 strcpy(&text[textPointer],"\n\r");
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
74 textPointer += 2;
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
75 */
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
76 if((line == 0) || (line == 2))
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
77 {
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
78 text[textPointer++] = TXT_2BYTE;
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
79 text[textPointer++] = TXT2BYTE_CompassHeading;
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
80 }
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
81 strcpy(&text[textPointer],"\n\r");
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
82 textPointer += 2;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
83
654
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
84 if((line == 0) || (line == 3))
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
85 {
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
86 text[textPointer++] = TXT_2BYTE;
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
87 text[textPointer++] = TXT2BYTE_SetMarker;
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
88 }
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
89 strcpy(&text[textPointer],"\n\r");
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
90 textPointer += 2;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
91
609
1b243c6c7067 Bugfix: CalibViewport were shown even in case the compile switch had not been set:
Ideenmodellierer
parents: 547
diff changeset
92 #ifdef ENABLE_MOTION_CONTROL
654
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
93 if((line == 0) || (line == 4))
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
94 {
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
95 text[textPointer++] = TXT_2BYTE;
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
96 text[textPointer++] = TXT2BYTE_CalibView;
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
97 }
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
98 strcpy(&text[textPointer],"\n\r");
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
99 textPointer += 2;
609
1b243c6c7067 Bugfix: CalibViewport were shown even in case the compile switch had not been set:
Ideenmodellierer
parents: 547
diff changeset
100 #endif
547
12f8745c8a94 Added viewport calibration to dive menu:
Ideenmodellierer
parents: 347
diff changeset
101
654
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
102 if(is_stateUsedSetToSim())
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
103 {
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
104 if((line == 0) || (line == 5))
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
105 {
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
106 text[textPointer++] = TXT_2BYTE;
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
107 text[textPointer++] = TXT2BYTE_SimFollowDecoStops;
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
108 text[textPointer++] = ' ';
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
109 text[textPointer++] = ' ';
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
110 if(simulation_get_heed_decostops())
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
111 text[textPointer++] = '\005';
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
112 else
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
113 text[textPointer++] = '\006';
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
114 }
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
115 strcpy(&text[textPointer],"\n\r");
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
116 textPointer += 2;
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
117 }
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
118 else
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
119 {
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
120 if((line == 0) || (line == 5)) /* end dive mode only used during real dives */
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
121 {
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
122 text[textPointer++] = TXT_2BYTE;
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
123 text[textPointer++] = TXT2BYTE_EndDiveMode;
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
124 }
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
125 strcpy(&text[textPointer],"\n\r");
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
126 textPointer += 2;
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
127 }
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
128 }
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
129 else /* Surface MODE */
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
130 {
707
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
131
654
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
132 if((line == 0) || (line == 1))
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
133 {
707
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
134 switch(pSettings->CCR_Mode)
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
135 {
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
136 case CCRMODE_Sensors: CcrModusTxtId = TXT_Sensor;
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
137 break;
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
138 case CCRMODE_FixedSetpoint: CcrModusTxtId = TXT_FixedSP;
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
139 break;
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
140 case CCRMODE_Simulation: CcrModusTxtId = TXT_SimPpo2;
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
141 break;
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
142 default: CcrModusTxtId = 'X';
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
143 break;
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
144 }
654
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
145 textPointer += snprintf(&text[textPointer], 60,\
707
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
146 "%c"
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
147 "\t"
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
148 "%c"
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
149 , TXT_CCRmode
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
150 , CcrModusTxtId
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
151 );
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
152
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
153 strcpy(&text[textPointer],"\n\r");
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
154 textPointer += 2;
654
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
155 }
707
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
156
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
157 if((line == 0) || (line == 2))
816
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
158 {
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
159 bool canDoFallback = pSettings->CCR_Mode == CCRMODE_Sensors;
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
160 if (!canDoFallback) {
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
161 text[textPointer++] = '\031';
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
162 }
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
163 textPointer += snprintf(&text[textPointer], 60,\
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
164 "%c"
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
165 ,TXT_Fallback
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
166 );
707
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
167
816
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
168 text[textPointer++] = '\t';
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
169 if(settingsGetPointer()->fallbackToFixedSetpoint && canDoFallback)
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
170 text[textPointer++] = '\005';
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
171 else
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
172 text[textPointer++] = '\006';
707
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
173
850
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
174 if (!canDoFallback)
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
175 {
816
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
176 text[textPointer++] = '\020';
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
177 disableLine(StMXTRA_O2_Fallback);
850
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
178 } else
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
179 {
816
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
180 enableLine(StMXTRA_O2_Fallback);
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
181 }
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
182 strcpy(&text[textPointer],"\n\r");
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
183 textPointer += 2;
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
184 }
707
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
185
e81afd727993 Menu cleanup rebreather specific settings:
Ideenmodellierer
parents: 662
diff changeset
186
654
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
187 if((line == 0) || (line == 3))
816
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
188 {
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
189 textPointer += snprintf(&text[textPointer], 60,\
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
190 "%c"
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
191 ,TXT_ScrubTime
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
192 );
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
193 strcpy(&text[textPointer],"\n\r");
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
194 textPointer += 2;
c4ee952b9425 Fix a bug that disables arbitrary menu lines in dive mode if lines are disabled / inactive in surface mode. (mikeller)
heinrichsweikamp
parents: 811
diff changeset
195 }
654
890440ab993a Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents: 609
diff changeset
196
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 654
diff changeset
197 #ifdef ENABLE_PSCR_MODE
845
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
198 if((line == 0) || (line == 4))
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
199 {
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
200 if(pSettings->dive_mode == DIVEMODE_PSCR)
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
201 {
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
202 textPointer += snprintf(&text[textPointer], 60, "%c",TXT_PSClosedCircuit);
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
203 enableLine(StMXTRA_PSCR_O2_Drop);
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
204 }
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
205 else
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
206 {
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
207 text[textPointer++] = '\031'; /* change text color */
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
208 textPointer += snprintf(&text[textPointer], 60,"%c",TXT_PSClosedCircuit);
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
209 text[textPointer++] = '\020'; /* restore text color */
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
210 disableLine(StMXTRA_PSCR_O2_Drop);
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
211 }
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
212 strcpy(&text[textPointer],"\n\r");
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
213 textPointer += 2;
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
214 }
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
215 #endif
850
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
216 if((line == 0) || (line == 5))
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 654
diff changeset
217 {
850
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
218 if((pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_ANADIG) || (pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_DIGITAL))
845
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
219 {
850
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
220 textPointer += snprintf(&text[textPointer], 60,"%c",TXT_PreDive);
845
17d9d6eddd8d Added new PreDiveCheck info page:
Ideenmodellierer
parents: 827
diff changeset
221 }
850
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
222 else
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
223 {
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
224 text[textPointer++] = '\031'; /* change text color */
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
225 textPointer += snprintf(&text[textPointer], 60,"%c",TXT_PreDive);
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
226 text[textPointer++] = '\020'; /* restore text color */
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
227 disableLine(StMXTRA_Predive_Check);
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
228 }
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
229 strcpy(&text[textPointer],"\n\r");
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
230 textPointer += 2;
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 654
diff changeset
231 }
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
232 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
233 return StMXTRA;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
234 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
235
850
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
236 void tMXtra_checkLineStatus(void)
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
237 {
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
238 uint8_t localLineMask = 0;
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
239 uint8_t lineMask = getLineMask(StMXTRA);
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
240 SSettings *pSettings = settingsGetPointer();
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
241
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
242 if(pSettings->CCR_Mode != CCRMODE_Sensors)
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
243 {
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
244 localLineMask |= 1 << 2;
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
245 }
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
246 if(pSettings->dive_mode != DIVEMODE_PSCR)
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
247 {
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
248 localLineMask |= 1 << 4;
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
249 }
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
250 if((pSettings->ppo2sensors_source != O2_SENSOR_SOURCE_ANADIG) && (pSettings->ppo2sensors_source != O2_SENSOR_SOURCE_DIGITAL))
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
251 {
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
252 localLineMask |= 1 << 5;
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
253 }
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
254
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
255 if(lineMask != localLineMask)
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
256 {
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
257 updateMenu();
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
258 }
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
259 }
bc2fcd002fc4 Check line enable/disable state when a new page is selected:
Ideenmodellierer
parents: 845
diff changeset
260