Mercurial > public > ostc4
annotate Discovery/Src/tMenuEditXtra.c @ 998:5a690195b6b7 GasConsumption
Added dual operation of scrubber timers:
In the previous version only one scrubber timer could be selected for operation. In the new version the activation of both timers is possible. In that case both timers will be displayed as well. To enable this a new activation item has been added to the scrubber menu.
| author | Ideenmodellierer |
|---|---|
| date | Wed, 23 Apr 2025 14:52:03 +0200 |
| parents | 9b418e63dbc2 |
| children | 8c0134a287da |
| rev | line source |
|---|---|
| 38 | 1 /////////////////////////////////////////////////////////////////////////////// |
| 2 /// -*- coding: UTF-8 -*- | |
| 3 /// | |
| 4 /// \file Discovery/Src/tMenuEditXtra.c | |
| 5 /// \brief Menu Edit Xtra - Specials in Divemode like Reset Stopwatch | |
| 6 /// \author heinrichs weikamp gmbh | |
| 7 /// \date 02-Mar-2015 | |
| 8 /// | |
| 9 /// \details | |
| 10 /// | |
| 11 /// $Id$ | |
| 12 /////////////////////////////////////////////////////////////////////////////// | |
| 13 /// \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh | |
| 14 /// | |
| 15 /// This program is free software: you can redistribute it and/or modify | |
| 16 /// it under the terms of the GNU General Public License as published by | |
| 17 /// the Free Software Foundation, either version 3 of the License, or | |
| 18 /// (at your option) any later version. | |
| 19 /// | |
| 20 /// This program is distributed in the hope that it will be useful, | |
| 21 /// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 22 /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 23 /// GNU General Public License for more details. | |
| 24 /// | |
| 25 /// You should have received a copy of the GNU General Public License | |
| 26 /// along with this program. If not, see <http://www.gnu.org/licenses/>. | |
| 27 ////////////////////////////////////////////////////////////////////////////// | |
| 28 | |
| 29 /* Includes ------------------------------------------------------------------*/ | |
|
774
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
30 #include <stdbool.h> |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
31 |
| 38 | 32 #include "tMenuEditXtra.h" |
| 33 | |
| 34 #include "gfx_fonts.h" | |
| 35 #include "simulation.h" | |
| 36 #include "timer.h" | |
| 37 #include "tMenuEdit.h" | |
|
347
77de014928d6
Added option to manually leave dive mode to system menu
ideenmodellierer
parents:
288
diff
changeset
|
38 #include "data_exchange_main.h" |
| 547 | 39 #include "motion.h" |
| 662 | 40 #include "configuration.h" |
| 845 | 41 #include "tInfoPreDive.h" |
|
347
77de014928d6
Added option to manually leave dive mode to system menu
ideenmodellierer
parents:
288
diff
changeset
|
42 |
| 38 | 43 |
| 44 /* Private function prototypes -----------------------------------------------*/ | |
| 45 void openEdit_CompassHeading(void); | |
| 46 void openEdit_ResetStopwatch(void); | |
| 47 void openEdit_SimFollowDecostops(void); | |
| 48 void openEdit_SetManualMarker(void); | |
|
347
77de014928d6
Added option to manually leave dive mode to system menu
ideenmodellierer
parents:
288
diff
changeset
|
49 void openEdit_SetEndDive(void); |
|
552
531e7818b737
Added menu structure to acces viewport calibration:
Ideenmodellierer
parents:
547
diff
changeset
|
50 void openEdit_CalibViewport(void); |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
51 |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
52 static void openEdit_CCRModeSensorOrFixedSP(void); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
53 static void openEdit_Fallback(void); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
54 static void openEdit_Scrubber(void); |
| 662 | 55 #ifdef ENABLE_PSCR_MODE |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
56 static void openEdit_PSCR(void); |
| 662 | 57 #endif |
| 38 | 58 |
| 59 /* Announced function prototypes -----------------------------------------------*/ | |
| 60 uint8_t OnAction_CompassHeading (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
| 710 | 61 uint8_t OnAction_ScrubberTimerId(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
| 62 static uint8_t OnAction_ScrubberTimerMax(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
63 static uint8_t OnAction_ScrubberReset(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
64 static uint8_t OnAction_ScrubberMode(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
| 998 | 65 static uint8_t OnAction_ScrubberActive(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
| 662 | 66 #ifdef ENABLE_PSCR_MODE |
| 67 static uint8_t OnAction_PSCRO2Drop(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
| 68 static uint8_t OnAction_PSCRLungRation(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
| 69 #endif | |
| 70 | |
| 38 | 71 /* Exported functions --------------------------------------------------------*/ |
| 72 | |
| 998 | 73 static uint8_t scrubberMenuId = 0; |
| 710 | 74 |
| 38 | 75 void openEdit_Xtra(uint8_t line) |
| 76 { | |
| 77 set_globalState_Menu_Line(line); | |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
78 |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
79 /* DIVE MODE */ |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
80 if(actual_menu_content != MENU_SURFACE) |
| 38 | 81 { |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
82 resetMenuEdit(CLUT_MenuPageXtra); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
83 |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
84 switch(line) |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
85 { |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
86 case 1: |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
87 default: |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
88 openEdit_ResetStopwatch(); |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
89 break; |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
90 case 2: |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
91 openEdit_CompassHeading(); |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
92 break; |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
93 case 3: |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
94 openEdit_SetManualMarker(); |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
95 break; |
|
906
49ee233c7a74
Bugfix de-/activation of deco stop consideration in simulator:
ideenmodellierer
parents:
883
diff
changeset
|
96 #ifdef ENABLE_MOTION_CONTROL |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
97 case 4: |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
98 openEdit_CalibViewport(); |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
99 break; |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
100 case 5: |
|
906
49ee233c7a74
Bugfix de-/activation of deco stop consideration in simulator:
ideenmodellierer
parents:
883
diff
changeset
|
101 #else |
|
49ee233c7a74
Bugfix de-/activation of deco stop consideration in simulator:
ideenmodellierer
parents:
883
diff
changeset
|
102 case 4: |
|
49ee233c7a74
Bugfix de-/activation of deco stop consideration in simulator:
ideenmodellierer
parents:
883
diff
changeset
|
103 #endif |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
104 if(is_stateUsedSetToSim()) |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
105 { |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
106 openEdit_SimFollowDecostops(); |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
107 } |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
108 else |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
109 { |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
110 openEdit_SetEndDive(); |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
111 } |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
112 break; |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
113 } |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
114 } |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
115 else /* surface mode */ |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
116 { |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
117 switch(line) |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
118 { |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
119 case 1: openEdit_CCRModeSensorOrFixedSP(); |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
120 break; |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
121 case 2: openEdit_Fallback(); |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
122 break; |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
123 case 3: openEdit_Scrubber(); |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
124 break; |
| 662 | 125 #ifdef ENABLE_PSCR_MODE |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
126 case 4: openEdit_PSCR(); |
| 662 | 127 break; |
| 128 #endif | |
|
883
7755a476f164
Added compile switch for predive check menu:
Ideenmodellierer
parents:
845
diff
changeset
|
129 #ifdef ENABLE_PREDIVE_CHECK |
| 845 | 130 case 5: openInfo_PreDive(); |
| 131 break; | |
|
883
7755a476f164
Added compile switch for predive check menu:
Ideenmodellierer
parents:
845
diff
changeset
|
132 #endif |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
133 default: |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
134 break; |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
135 } |
| 38 | 136 } |
| 137 } | |
| 138 | |
| 139 /* Private functions ---------------------------------------------------------*/ | |
| 140 void openEdit_ResetStopwatch(void) | |
| 141 { | |
| 142 timer_Stopwatch_Restart(); | |
| 143 exitMenuEdit_to_Home(); | |
| 144 } | |
| 145 | |
| 146 void openEdit_SetManualMarker(void) | |
| 147 { | |
|
288
ba229a012ac7
cleanup: no useless checks for simulator state
Jan Mulder <jlmulder@xs4all.nl>
parents:
272
diff
changeset
|
148 stateUsedWrite->events.manualMarker = 1; |
| 38 | 149 exitMenuEdit_to_Home(); |
| 150 } | |
| 151 | |
|
347
77de014928d6
Added option to manually leave dive mode to system menu
ideenmodellierer
parents:
288
diff
changeset
|
152 void openEdit_SetEndDive(void) |
|
77de014928d6
Added option to manually leave dive mode to system menu
ideenmodellierer
parents:
288
diff
changeset
|
153 { |
|
77de014928d6
Added option to manually leave dive mode to system menu
ideenmodellierer
parents:
288
diff
changeset
|
154 dataOutGetPointer()->setEndDive = 1; |
|
77de014928d6
Added option to manually leave dive mode to system menu
ideenmodellierer
parents:
288
diff
changeset
|
155 exitMenuEdit_to_Home(); |
|
77de014928d6
Added option to manually leave dive mode to system menu
ideenmodellierer
parents:
288
diff
changeset
|
156 } |
|
77de014928d6
Added option to manually leave dive mode to system menu
ideenmodellierer
parents:
288
diff
changeset
|
157 |
| 38 | 158 void openEdit_SimFollowDecostops(void) |
| 159 { | |
| 160 simulation_set_heed_decostops(!simulation_get_heed_decostops()); | |
| 161 exitMenuEdit_to_Menu_with_Menu_Update(); | |
| 162 } | |
| 163 | |
| 547 | 164 void openEdit_CalibViewport(void) |
| 165 { | |
| 166 calibrateViewport(stateUsed->lifeData.compass_roll, stateUsed->lifeData.compass_pitch, stateUsed->lifeData.compass_heading); | |
|
648
ff2b393e290f
Motion detection: Enable focus after focus calibration:
Ideenmodellierer
parents:
552
diff
changeset
|
167 suspendMotionDetection(0); /* exit to focus mode directly */ |
| 547 | 168 exitMenuEdit_to_Home(); |
| 169 } | |
| 170 | |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
171 |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
172 static void openEdit_CCRModeSensorOrFixedSP(void) |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
173 { |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
174 SSettings *pSettings = settingsGetPointer(); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
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 if(pSettings->CCR_Mode == CCRMODE_Sensors) { |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
177 pSettings->CCR_Mode = CCRMODE_FixedSetpoint; |
|
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
|
178 } else { |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
179 pSettings->CCR_Mode = CCRMODE_Sensors; |
|
811
4c41d9a18c7f
Added function to skip lines which are not needed for operation:
Ideenmodellierer
parents:
793
diff
changeset
|
180 } |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
181 |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
182 exitEditWithUpdate(); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
183 } |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
184 |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
185 static void openEdit_Fallback(void) |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
186 { |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
187 /* does not work like this resetEnterPressedToStateBeforeButtonAction(); */ |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
188 |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
189 SSettings *pSettings = settingsGetPointer(); |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
190 |
|
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:
758
diff
changeset
|
191 if (pSettings->CCR_Mode == CCRMODE_Sensors) { |
|
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:
758
diff
changeset
|
192 pSettings->fallbackToFixedSetpoint = (pSettings->fallbackToFixedSetpoint + 1) % 2; |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
193 } |
|
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:
758
diff
changeset
|
194 |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
195 exitMenuEdit_to_Menu_with_Menu_Update_do_not_write_settings_for_this_only(); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
196 } |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
197 |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
198 |
| 998 | 199 static void printScrubberResetText(char *text, SSettings *settings, uint8_t scrubberId) |
|
758
b6d8a6fbf4fd
- Colours for scrubber display when time remaining falls below a threshold value
heinrichsweikamp
parents:
748
diff
changeset
|
200 { |
| 998 | 201 int16_t currentTimerMinutes = settings->scrubberData[scrubberId].TimerCur; |
|
758
b6d8a6fbf4fd
- Colours for scrubber display when time remaining falls below a threshold value
heinrichsweikamp
parents:
748
diff
changeset
|
202 char colour = '\020'; |
|
b6d8a6fbf4fd
- Colours for scrubber display when time remaining falls below a threshold value
heinrichsweikamp
parents:
748
diff
changeset
|
203 if (currentTimerMinutes <= 0) { |
|
b6d8a6fbf4fd
- Colours for scrubber display when time remaining falls below a threshold value
heinrichsweikamp
parents:
748
diff
changeset
|
204 colour = '\025'; |
|
b6d8a6fbf4fd
- Colours for scrubber display when time remaining falls below a threshold value
heinrichsweikamp
parents:
748
diff
changeset
|
205 } else if (currentTimerMinutes <= 30) { |
|
b6d8a6fbf4fd
- Colours for scrubber display when time remaining falls below a threshold value
heinrichsweikamp
parents:
748
diff
changeset
|
206 colour = '\024'; |
|
b6d8a6fbf4fd
- Colours for scrubber display when time remaining falls below a threshold value
heinrichsweikamp
parents:
748
diff
changeset
|
207 } |
|
b6d8a6fbf4fd
- Colours for scrubber display when time remaining falls below a threshold value
heinrichsweikamp
parents:
748
diff
changeset
|
208 snprintf(text, 32, "%c\002%c%03i\016\016 %c\017", TXT_ScrubTimeReset, colour, currentTimerMinutes, TXT_Minutes); |
|
b6d8a6fbf4fd
- Colours for scrubber display when time remaining falls below a threshold value
heinrichsweikamp
parents:
748
diff
changeset
|
209 } |
|
b6d8a6fbf4fd
- Colours for scrubber display when time remaining falls below a threshold value
heinrichsweikamp
parents:
748
diff
changeset
|
210 |
|
b6d8a6fbf4fd
- Colours for scrubber display when time remaining falls below a threshold value
heinrichsweikamp
parents:
748
diff
changeset
|
211 |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
212 static void openEdit_Scrubber(void) |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
213 { |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
214 char text[32]; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
215 uint8_t textIndex = 0; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
216 uint16_t localScrubTimer; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
217 |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
218 SSettings *pSettings = settingsGetPointer(); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
219 |
| 998 | 220 localScrubTimer = pSettings->scrubberData[scrubberMenuId].TimerMax; |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
221 |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
222 resetMenuEdit(CLUT_MenuPageXtra); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
223 |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
224 |
| 710 | 225 snprintf(&text[0], 32,"\001%c",TXT_ScrubTime); |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
226 write_topline(text); |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
227 |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
228 |
| 998 | 229 snprintf(&text[0], 32,"%c \002#%d",TXT_ScrubTime,scrubberMenuId); |
| 710 | 230 write_field_button(StMXTRA_ScrubTimer, 20, 780, ME_Y_LINE1, &FontT48, text); |
| 231 | |
| 998 | 232 if(pSettings->scubberActiveId & (1 << scrubberMenuId)) |
| 233 { | |
| 234 snprintf(&text[0], 32,"%c %c \002\005", TXT_ScrubTime, TXT_Active); | |
| 235 } | |
| 236 else | |
| 237 { | |
| 238 snprintf(&text[0], 32,"%c %c \002\006", TXT_ScrubTime, TXT_Active); | |
| 239 } | |
| 240 write_field_button(StMXTRA_ScrubTimer_Active, 20, 780, ME_Y_LINE2, &FontT48, text); | |
| 241 | |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
242 snprintf(&text[textIndex], 32,\ |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
243 "%c" |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
244 "\016\016(%c)\017" |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
245 ,TXT_ScrubTime |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
246 ,TXT_Maximum); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
247 |
| 998 | 248 write_label_var( 20, 340, ME_Y_LINE3, &FontT48, text); |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
249 snprintf(&text[textIndex], 32, "\002###\016\016 %c\017",TXT_Minutes); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
250 |
| 998 | 251 write_field_udigit(StMXTRA_ScrubTimer_Max, 610, 780, ME_Y_LINE3, &FontT48, text,localScrubTimer, 0, 0, 0); |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
252 |
| 998 | 253 printScrubberResetText(text, pSettings, scrubberMenuId); |
| 254 write_field_button(StMXTRA_ScrubTimer_Reset, 20, 780, ME_Y_LINE4, &FontT48, text); | |
| 710 | 255 |
| 998 | 256 if(pSettings->scrubberData[scrubberMenuId].lastDive.WeekDay != 0) |
| 710 | 257 { |
| 998 | 258 snprintf(&text[0], 32,"%c%c\002 %02d.%02d.%02d", TXT_2BYTE, TXT2BYTE_SimDiveTime, pSettings->scrubberData[scrubberMenuId].lastDive.Date, |
| 259 pSettings->scrubberData[scrubberMenuId].lastDive.Month, | |
| 260 pSettings->scrubberData[scrubberMenuId].lastDive.Year); | |
| 710 | 261 } |
| 262 else | |
| 263 { | |
| 264 snprintf(&text[0], 32,"%c%c\002 --.--.--", TXT_2BYTE, TXT2BYTE_SimDiveTime); | |
| 265 } | |
| 998 | 266 write_label_var( 20, 780, ME_Y_LINE5, &FontT48, text); |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
267 |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
268 switch(pSettings->scrubTimerMode) |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
269 { |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
270 case SCRUB_TIMER_OFF: |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
271 default: snprintf(&text[0], 32,"%c\002%c%c",TXT_ScrubTimeMode, TXT_2BYTE, TXT2BYTE_MoCtrlNone ); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
272 break; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
273 case SCRUB_TIMER_MINUTES: snprintf(&text[0], 32,"%c\002%c",TXT_ScrubTimeMode, TXT_Minutes ); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
274 break; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
275 case SCRUB_TIMER_PERCENT: snprintf(&text[0], 32,"%c\002%c",TXT_ScrubTimeMode, TXT_Percent ); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
276 break; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
277 } |
| 998 | 278 write_field_button(StMXTRA_ScrubTimer_OP_Mode, 20, 780, ME_Y_LINE6, &FontT48, text); |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
279 |
| 710 | 280 setEvent(StMXTRA_ScrubTimer, (uint32_t)OnAction_ScrubberTimerId); |
| 998 | 281 setEvent(StMXTRA_ScrubTimer_Active, (uint32_t)OnAction_ScrubberActive); |
| 710 | 282 setEvent(StMXTRA_ScrubTimer_Max, (uint32_t)OnAction_ScrubberTimerMax); |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
283 setEvent(StMXTRA_ScrubTimer_Reset, (uint32_t)OnAction_ScrubberReset); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
284 setEvent(StMXTRA_ScrubTimer_OP_Mode, (uint32_t)OnAction_ScrubberMode); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
285 |
| 998 | 286 |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
287 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
288 |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
289 } |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
290 |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
291 static void openEdit_PSCR(void) |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
292 { |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
293 uint8_t localO2Drop,localLungRatio; |
| 662 | 294 char text[32]; |
| 295 SSettings *pSettings = settingsGetPointer(); | |
| 296 localO2Drop = pSettings->pscr_o2_drop; | |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
297 localLungRatio = pSettings->pscr_lung_ratio; |
| 662 | 298 |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
299 resetMenuEdit(CLUT_MenuPageXtra); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
300 |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
301 snprintf(text, 32, "\001%c",TXT_PSClosedCircuit); |
| 662 | 302 write_topline(text); |
| 303 | |
| 304 text[0] = '\002'; | |
| 305 text[1] = '\016'; | |
| 306 text[2] = '\016'; | |
| 307 text[3] = '%'; | |
| 308 text[4] = 0; | |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
309 write_label_fix( 20, 800, ME_Y_LINE1, &FontT48, TXT_PSCRO2Drop); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
310 write_label_var( 435, 780, ME_Y_LINE1, &FontT48, text); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
311 write_field_udigit(StMXTRA_PSCR_O2_Drop, 710, 779, ME_Y_LINE1, &FontT48, "##", (uint32_t)localO2Drop, 0, 0, 0); |
| 662 | 312 |
| 313 | |
| 314 text[0] = '\002'; | |
| 315 text[1] = '1'; | |
| 316 text[2] = '/'; | |
| 317 text[3] = 0; | |
| 318 | |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
319 write_label_fix( 20, 800, ME_Y_LINE2, &FontT48, TXT_PSCRLungRatio); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
320 write_label_var( 435, 710, ME_Y_LINE2, &FontT48, text); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
321 write_field_udigit(StMXTRA_PSCR_LUNG_RATIO, 710, 779, ME_Y_LINE2, &FontT48, "##", (uint32_t)localLungRatio, 0, 0, 0); |
| 662 | 322 |
| 712 | 323 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); |
| 662 | 324 |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
325 setEvent(StMXTRA_PSCR_O2_Drop, (uint32_t)OnAction_PSCRO2Drop); |
| 662 | 326 setEvent(StMXTRA_PSCR_LUNG_RATIO, (uint32_t)OnAction_PSCRLungRation); |
| 327 } | |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
328 |
| 662 | 329 |
|
774
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
330 |
|
967
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
331 static uint8_t OnAction_CompassHeadingReverse(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
332 { |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
333 setCompassHeading((stateUsed->diveSettings.compassHeading + 180) % 360); |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
334 |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
335 exitMenuEdit_to_Home_with_Menu_Update(); |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
336 |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
337 return EXIT_TO_HOME; |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
338 } |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
339 |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
340 |
|
774
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
341 static uint8_t OnAction_CompassHeadingClear(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
342 { |
|
929
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
343 clearCompassHeading(); |
|
774
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
344 |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
345 exitMenuEdit_to_Home_with_Menu_Update(); |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
346 |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
347 return EXIT_TO_HOME; |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
348 } |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
349 |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
350 |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
351 static uint8_t OnAction_CompassHeadingReset(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
352 { |
|
929
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
353 setCompassHeading(settingsGetPointer()->compassBearing); |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
354 |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
355 exitMenuEdit_to_Home_with_Menu_Update(); |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
356 |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
357 return EXIT_TO_HOME; |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
358 } |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
359 |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
360 |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
361 static uint8_t OnAction_CompassHeadingLog(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
362 { |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
363 logCompassHeading((uint16_t)stateUsed->lifeData.compass_heading); |
|
774
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
364 |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
365 exitMenuEdit_to_Home_with_Menu_Update(); |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
366 |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
367 return EXIT_TO_HOME; |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
368 } |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
369 |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
370 |
|
776
45b8f3c2acce
Add support for a configurable compass declination in a range of -99 to 99 degrees.
heinrichsweikamp
parents:
774
diff
changeset
|
371 static void drawCompassHeadingMenu(bool isRefresh) |
|
774
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
372 { |
|
776
45b8f3c2acce
Add support for a configurable compass declination in a range of -99 to 99 degrees.
heinrichsweikamp
parents:
774
diff
changeset
|
373 SSettings *settings = settingsGetPointer(); |
|
45b8f3c2acce
Add support for a configurable compass declination in a range of -99 to 99 degrees.
heinrichsweikamp
parents:
774
diff
changeset
|
374 |
|
774
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
375 char text[32]; |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
376 snprintf(text, 32, "\001%c%c", TXT_2BYTE, TXT2BYTE_CompassHeading); |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
377 write_topline(text); |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
378 |
|
967
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
379 if (!isRefresh) { |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
380 snprintf(text, 32, "%c%c", TXT_2BYTE, TXT2BYTE_Set); |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
381 write_field_button(StMXTRA_CompassHeading, 20, 800, ME_Y_LINE1, &FontT48, text); |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
382 } else { |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
383 tMenuEdit_refresh_field(StMXTRA_CompassHeading); |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
384 } |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
385 |
|
776
45b8f3c2acce
Add support for a configurable compass declination in a range of -99 to 99 degrees.
heinrichsweikamp
parents:
774
diff
changeset
|
386 uint16_t heading; |
|
45b8f3c2acce
Add support for a configurable compass declination in a range of -99 to 99 degrees.
heinrichsweikamp
parents:
774
diff
changeset
|
387 if (settings->compassInertia) { |
|
45b8f3c2acce
Add support for a configurable compass declination in a range of -99 to 99 degrees.
heinrichsweikamp
parents:
774
diff
changeset
|
388 heading = (uint16_t)compass_getCompensated(); |
|
45b8f3c2acce
Add support for a configurable compass declination in a range of -99 to 99 degrees.
heinrichsweikamp
parents:
774
diff
changeset
|
389 } else { |
|
45b8f3c2acce
Add support for a configurable compass declination in a range of -99 to 99 degrees.
heinrichsweikamp
parents:
774
diff
changeset
|
390 heading = (uint16_t)stateUsed->lifeData.compass_heading; |
|
45b8f3c2acce
Add support for a configurable compass declination in a range of -99 to 99 degrees.
heinrichsweikamp
parents:
774
diff
changeset
|
391 } |
|
774
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
392 snprintf(text,32,"\001%03i`",heading); |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
393 write_label_var(0, 800, ME_Y_LINE1, &FontT54, text); |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
394 |
|
967
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
395 bool headingIsSet = stateUsed->diveSettings.compassHeading; |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
396 snprintf(text, 32, "%s%c%c", makeGrey(!headingIsSet), TXT_2BYTE, TXT2BYTE_Reverse); |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
397 if (headingIsSet) { |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
398 if (!isRefresh) { |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
399 write_field_button(StMXTRA_CompassHeadingReverse, 20, 800, ME_Y_LINE2, &FontT48, text); |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
400 } else { |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
401 tMenuEdit_refresh_field(StMXTRA_CompassHeadingReverse); |
|
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
402 } |
|
774
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
403 } else { |
|
967
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
404 write_label_var(20, 800, ME_Y_LINE2, &FontT48, text); |
|
774
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
405 } |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
406 |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
407 snprintf(text, 32, "%s%c%c", makeGrey(!headingIsSet), TXT_2BYTE, TXT2BYTE_Clear); |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
408 if (headingIsSet) { |
|
776
45b8f3c2acce
Add support for a configurable compass declination in a range of -99 to 99 degrees.
heinrichsweikamp
parents:
774
diff
changeset
|
409 if (!isRefresh) { |
|
774
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
410 write_field_button(StMXTRA_CompassHeadingClear, 20, 800, ME_Y_LINE3, &FontT48, text); |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
411 } else { |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
412 tMenuEdit_refresh_field(StMXTRA_CompassHeadingClear); |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
413 } |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
414 } else { |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
415 write_label_var(20, 800, ME_Y_LINE3, &FontT48, text); |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
416 } |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
417 |
|
776
45b8f3c2acce
Add support for a configurable compass declination in a range of -99 to 99 degrees.
heinrichsweikamp
parents:
774
diff
changeset
|
418 int16_t compassBearing = settings->compassBearing; |
|
774
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
419 bool canSetBearing = compassBearing && compassBearing != stateUsed->diveSettings.compassHeading; |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
420 snprintf(text, 32, "%s%c%c (%03u`)", makeGrey(!canSetBearing), TXT_2BYTE, TXT2BYTE_Reset, compassBearing); |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
421 if (canSetBearing) { |
|
776
45b8f3c2acce
Add support for a configurable compass declination in a range of -99 to 99 degrees.
heinrichsweikamp
parents:
774
diff
changeset
|
422 if (!isRefresh) { |
|
774
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
423 write_field_button(StMXTRA_CompassHeadingReset, 20, 800, ME_Y_LINE4, &FontT48, text); |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
424 } else { |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
425 tMenuEdit_refresh_field(StMXTRA_CompassHeadingReset); |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
426 } |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
427 } else { |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
428 write_label_var(20, 800, ME_Y_LINE4, &FontT48, text); |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
429 } |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
430 |
|
929
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
431 snprintf(text, 32, "%c%c", TXT_2BYTE, TXT2BYTE_Log); |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
432 if (!isRefresh) { |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
433 write_field_button(StMXTRA_CompassHeadingLog, 20, 800, ME_Y_LINE5, &FontT48, text); |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
434 } else { |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
435 tMenuEdit_refresh_field(StMXTRA_CompassHeadingLog); |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
436 } |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
437 |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
438 if (headingIsSet) { |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
439 snprintf(text, 32, "%s%c%c (%03u`)", makeGrey(true), TXT_2BYTE, TXT2BYTE_Current, stateUsed->diveSettings.compassHeading); |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
440 write_label_var(20, 800, ME_Y_LINE6, &FontT48, text); |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
441 } |
|
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
442 |
|
776
45b8f3c2acce
Add support for a configurable compass declination in a range of -99 to 99 degrees.
heinrichsweikamp
parents:
774
diff
changeset
|
443 if (!isRefresh) { |
|
774
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
444 setEvent(StMXTRA_CompassHeading, (uint32_t)OnAction_CompassHeading); |
|
967
9b418e63dbc2
Add a 'Reverse' action to the compass heading dive menu.
heinrichsweikamp
parents:
929
diff
changeset
|
445 setEvent(StMXTRA_CompassHeadingReverse, (uint32_t)OnAction_CompassHeadingReverse); |
|
774
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
446 setEvent(StMXTRA_CompassHeadingClear, (uint32_t)OnAction_CompassHeadingClear); |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
447 setEvent(StMXTRA_CompassHeadingReset, (uint32_t)OnAction_CompassHeadingReset); |
|
929
63c340abd70e
Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents:
906
diff
changeset
|
448 setEvent(StMXTRA_CompassHeadingLog, (uint32_t)OnAction_CompassHeadingLog); |
|
774
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
449 } |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
450 |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
451 write_buttonTextline(TXT2BYTE_ButtonBack, TXT2BYTE_ButtonEnter, TXT2BYTE_ButtonNext); |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
452 } |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
453 |
|
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
454 |
| 38 | 455 void refresh_CompassHeading(void) |
| 456 { | |
|
776
45b8f3c2acce
Add support for a configurable compass declination in a range of -99 to 99 degrees.
heinrichsweikamp
parents:
774
diff
changeset
|
457 drawCompassHeadingMenu(true); |
|
774
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
458 } |
| 38 | 459 |
| 460 | |
| 461 void openEdit_CompassHeading(void) | |
| 462 { | |
|
776
45b8f3c2acce
Add support for a configurable compass declination in a range of -99 to 99 degrees.
heinrichsweikamp
parents:
774
diff
changeset
|
463 drawCompassHeadingMenu(false); |
| 38 | 464 } |
| 465 | |
| 466 | |
| 467 uint8_t OnAction_CompassHeading (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 468 { | |
|
774
6169309d6eb9
more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents:
769
diff
changeset
|
469 setCompassHeading((uint16_t)stateUsed->lifeData.compass_heading); |
| 38 | 470 exitMenuEdit_to_Home_with_Menu_Update(); |
| 471 return EXIT_TO_HOME; | |
| 472 } | |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
473 |
| 710 | 474 |
| 475 uint8_t OnAction_ScrubberTimerId(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 476 { | |
| 477 char text[32]; | |
| 478 SSettings *pSettings; | |
| 479 pSettings = settingsGetPointer(); | |
| 480 | |
| 998 | 481 |
| 482 if(scrubberMenuId == 0) | |
| 710 | 483 { |
| 998 | 484 scrubberMenuId = 1; |
| 710 | 485 } |
| 486 else | |
| 487 { | |
| 998 | 488 scrubberMenuId = 0; |
| 710 | 489 } |
| 490 | |
| 998 | 491 snprintf(&text[0], 32,"%c \002#%d",TXT_ScrubTime,scrubberMenuId); |
| 710 | 492 tMenuEdit_newButtonText(StMXTRA_ScrubTimer, text); |
| 493 | |
| 998 | 494 printScrubberResetText(text, pSettings, scrubberMenuId); |
| 710 | 495 tMenuEdit_newButtonText(StMXTRA_ScrubTimer_Reset, text); |
| 496 | |
| 998 | 497 tMenuEdit_newInput(StMXTRA_ScrubTimer_Max, pSettings->scrubberData[scrubberMenuId].TimerMax, 0, 0, 0); |
| 710 | 498 |
| 998 | 499 if(pSettings->scrubberData[scrubberMenuId].lastDive.WeekDay != 0) |
| 710 | 500 { |
| 998 | 501 snprintf(&text[0], 32,"%c%c\002 %02d.%02d.%02d", TXT_2BYTE, TXT2BYTE_SimDiveTime, pSettings->scrubberData[scrubberMenuId].lastDive.Date, |
| 502 pSettings->scrubberData[scrubberMenuId].lastDive.Month, | |
| 503 pSettings->scrubberData[scrubberMenuId].lastDive.Year); | |
| 710 | 504 } |
| 505 else | |
| 506 { | |
| 507 snprintf(&text[0], 32,"%c%c\002 --.--.--", TXT_2BYTE, TXT2BYTE_SimDiveTime); | |
| 508 } | |
| 998 | 509 clean_content( 20, 780, ME_Y_LINE5, &FontT48); |
| 510 write_label_var( 20, 780, ME_Y_LINE5, &FontT48, text); | |
| 511 | |
| 512 if(pSettings->scubberActiveId & (1 << scrubberMenuId)) | |
| 513 { | |
| 514 snprintf(&text[0], 32,"%c %c \002\005", TXT_ScrubTime, TXT_Active); | |
| 515 } | |
| 516 else | |
| 517 { | |
| 518 snprintf(&text[0], 32,"%c %c \002\006", TXT_ScrubTime, TXT_Active); | |
| 519 } | |
| 520 tMenuEdit_newButtonText(StMXTRA_ScrubTimer_Active, text); | |
| 710 | 521 |
| 522 return UNSPECIFIC_RETURN; | |
| 523 } | |
| 524 | |
| 525 static uint8_t OnAction_ScrubberTimerMax(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
526 { |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
527 SSettings *pSettings; |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
528 uint8_t digitContentNew = EXIT_TO_MENU; |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
529 uint32_t newScrubberTime; |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
530 |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
531 if(action == ACTION_BUTTON_ENTER) |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
532 { |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
533 return digitContent; |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
534 } |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
535 if(action == ACTION_BUTTON_ENTER_FINAL) |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
536 { |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
537 evaluateNewString(editId, &newScrubberTime, 0, 0, 0); |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
538 |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
539 if(newScrubberTime > MAX_SCRUBBER_TIME) |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
540 newScrubberTime = MAX_SCRUBBER_TIME; |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
541 |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
542 pSettings = settingsGetPointer(); |
| 998 | 543 pSettings->scrubberData[scrubberMenuId].TimerMax = newScrubberTime; |
| 544 if(pSettings->scrubberData[scrubberMenuId].TimerCur > newScrubberTime) | |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
545 { |
| 998 | 546 pSettings->scrubberData[scrubberMenuId].TimerCur = newScrubberTime; |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
547 } |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
548 |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
549 tMenuEdit_newInput(editId, newScrubberTime, 0, 0, 0); |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
550 digitContentNew = UNSPECIFIC_RETURN; |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
551 } |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
552 if(action == ACTION_BUTTON_NEXT) |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
553 { |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
554 digitContentNew = digitContent + 1; |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
555 if(digitContentNew > '9') |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
556 digitContentNew = '0'; |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
557 } |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
558 if(action == ACTION_BUTTON_BACK) |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
559 { |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
560 digitContentNew = digitContent - 1; |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
561 if(digitContentNew < '0') |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
562 digitContentNew = '9'; |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
563 } |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
564 return digitContentNew; |
|
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
565 } |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
566 |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
567 uint8_t OnAction_ScrubberReset(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
568 { |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
569 char text[32]; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
570 SSettings *pSettings; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
571 pSettings = settingsGetPointer(); |
| 998 | 572 pSettings->scrubberData[scrubberMenuId].TimerCur = pSettings->scrubberData[scrubberMenuId].TimerMax; |
| 573 pSettings->scrubberData[scrubberMenuId].lastDive.WeekDay = 0; /* invalidate date */ | |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
574 |
| 998 | 575 printScrubberResetText(text, pSettings, scrubberMenuId); |
| 710 | 576 tMenuEdit_newButtonText(StMXTRA_ScrubTimer_Reset, text); |
| 577 | |
| 578 snprintf(&text[0], 32,"%c%c\002 --.--.--", TXT_2BYTE, TXT2BYTE_SimDiveTime); | |
| 998 | 579 clean_content( 20, 780, ME_Y_LINE5, &FontT48); |
| 580 write_label_var( 20, 780, ME_Y_LINE5, &FontT48, text); | |
|
707
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
581 |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
582 return UNSPECIFIC_RETURN; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
583 } |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
584 |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
585 uint8_t OnAction_ScrubberMode(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
586 { |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
587 char text[32]; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
588 uint8_t newMode; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
589 SSettings *pSettings; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
590 pSettings = settingsGetPointer(); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
591 newMode = pSettings->scrubTimerMode + 1; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
592 if(newMode >= SCRUB_TIMER_END) |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
593 { |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
594 newMode = SCRUB_TIMER_OFF; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
595 } |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
596 pSettings->scrubTimerMode = newMode; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
597 |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
598 switch(pSettings->scrubTimerMode) |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
599 { |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
600 case SCRUB_TIMER_OFF: |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
601 default: snprintf(&text[0], 32,"%c\002%c%c",TXT_ScrubTimeMode, TXT_2BYTE, TXT2BYTE_MoCtrlNone ); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
602 break; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
603 case SCRUB_TIMER_MINUTES: snprintf(&text[0], 32,"%c\002%c",TXT_ScrubTimeMode, TXT_Minutes ); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
604 break; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
605 case SCRUB_TIMER_PERCENT: snprintf(&text[0], 32,"%c\002%c",TXT_ScrubTimeMode, TXT_Percent ); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
606 break; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
607 } |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
608 tMenuEdit_newButtonText(StMXTRA_ScrubTimer_OP_Mode, text); |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
609 |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
610 return UNSPECIFIC_RETURN; |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
611 } |
|
e81afd727993
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
662
diff
changeset
|
612 |
| 998 | 613 uint8_t OnAction_ScrubberActive(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) |
| 614 { | |
| 615 char text[32]; | |
| 616 SSettings *pSettings; | |
| 617 pSettings = settingsGetPointer(); | |
| 618 | |
| 619 if(pSettings->scubberActiveId & (1 << scrubberMenuId)) | |
| 620 { | |
| 621 pSettings->scubberActiveId &= ~(1 << scrubberMenuId); | |
| 622 snprintf(&text[0], 32,"%c %c \002\006", TXT_ScrubTime, TXT_Active); | |
| 623 } | |
| 624 else | |
| 625 { | |
| 626 pSettings->scubberActiveId |= (1 << scrubberMenuId); | |
| 627 snprintf(&text[0], 32,"%c %c \002\005", TXT_ScrubTime, TXT_Active); | |
| 628 } | |
| 629 | |
| 630 tMenuEdit_newButtonText(StMXTRA_ScrubTimer_Active, text); | |
| 631 | |
| 632 return UNSPECIFIC_RETURN; | |
| 633 } | |
| 634 | |
| 662 | 635 #ifdef ENABLE_PSCR_MODE |
| 636 static uint8_t OnAction_PSCRO2Drop(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 637 { | |
| 638 SSettings *pSettings; | |
| 639 uint8_t digitContentNew = EXIT_TO_MENU; | |
| 640 uint32_t newO2Drop; | |
|
654
890440ab993a
Introduced new menu tab for addition CCR options:
Ideenmodellierer
parents:
648
diff
changeset
|
641 |
| 662 | 642 if(action == ACTION_BUTTON_ENTER) |
| 643 { | |
| 644 return digitContent; | |
| 645 } | |
| 646 if(action == ACTION_BUTTON_ENTER_FINAL) | |
| 647 { | |
| 648 evaluateNewString(editId, &newO2Drop, 0, 0, 0); | |
| 649 | |
| 650 if(newO2Drop > PSCR_MAX_O2_DROP) | |
| 651 newO2Drop = PSCR_MAX_O2_DROP; | |
| 652 | |
| 653 pSettings = settingsGetPointer(); | |
| 654 pSettings->pscr_o2_drop = newO2Drop; | |
| 655 | |
| 656 tMenuEdit_newInput(editId, newO2Drop, 0, 0, 0); | |
| 793 | 657 digitContentNew = UPDATE_DIVESETTINGS; |
| 662 | 658 } |
| 659 if(action == ACTION_BUTTON_NEXT) | |
| 660 { | |
| 661 digitContentNew = digitContent + 1; | |
| 662 if(digitContentNew > '9') | |
| 663 digitContentNew = '0'; | |
| 664 } | |
| 665 if(action == ACTION_BUTTON_BACK) | |
| 666 { | |
| 667 digitContentNew = digitContent - 1; | |
| 668 if(digitContentNew < '0') | |
| 669 digitContentNew = '9'; | |
| 670 } | |
| 671 return digitContentNew; | |
| 672 } | |
| 673 | |
| 674 static uint8_t OnAction_PSCRLungRation(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 675 { | |
| 676 SSettings *pSettings; | |
| 677 uint8_t digitContentNew = EXIT_TO_MENU; | |
| 678 uint32_t newLungRatio; | |
| 679 | |
| 680 if(action == ACTION_BUTTON_ENTER) | |
| 681 { | |
| 682 return digitContent; | |
| 683 } | |
| 684 if(action == ACTION_BUTTON_ENTER_FINAL) | |
| 685 { | |
| 686 evaluateNewString(editId, &newLungRatio, 0, 0, 0); | |
| 687 | |
| 688 if(newLungRatio > PSCR_MAX_LUNG_RATIO) | |
| 689 newLungRatio = PSCR_MAX_LUNG_RATIO; | |
| 690 | |
| 691 if(newLungRatio < PSCR_MIN_LUNG_RATIO) | |
| 692 newLungRatio = PSCR_MIN_LUNG_RATIO; | |
| 693 | |
| 694 pSettings = settingsGetPointer(); | |
| 695 pSettings->pscr_lung_ratio = newLungRatio; | |
| 696 | |
| 697 tMenuEdit_newInput(editId, newLungRatio, 0, 0, 0); | |
| 793 | 698 digitContentNew = UPDATE_DIVESETTINGS; |
| 662 | 699 } |
| 700 if(action == ACTION_BUTTON_NEXT) | |
| 701 { | |
| 702 digitContentNew = digitContent + 1; | |
| 703 if(digitContentNew > '9') | |
| 704 digitContentNew = '0'; | |
| 705 } | |
| 706 if(action == ACTION_BUTTON_BACK) | |
| 707 { | |
| 708 digitContentNew = digitContent - 1; | |
| 709 if(digitContentNew < '0') | |
| 710 digitContentNew = '9'; | |
| 711 } | |
| 712 return digitContentNew; | |
| 713 } | |
| 714 #endif | |
| 715 | |
| 716 |
