Mercurial > public > hwos_code
annotate src/menu_tree.asm @ 247:5968af2839a4
BUGFIX: Always update CCR sensor data in Sensor-Menu
author | heinrichsweikamp |
---|---|
date | Fri, 13 Mar 2015 10:49:43 +0100 |
parents | ee81f46714cb |
children | 1207cf9a9408 |
rev | line source |
---|---|
0 | 1 ;============================================================================= |
2 ; | |
3 ; File menu_tree.asm | |
4 ; | |
5 ; OSTC3 menus | |
6 ; | |
7 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved. | |
8 ;============================================================================= | |
9 ; HISTORY | |
10 ; 2011-07-11 : [jDG] Creation. | |
11 | |
12 #include "ostc3.inc" ; Mandatory header | |
13 #include "gaslist.inc" | |
14 #include "menu_processor.inc" | |
15 #include "start.inc" | |
16 #include "comm.inc" | |
17 #include "logbook.inc" | |
18 #include "tft.inc" | |
19 #include "eeprom_rs232.inc" | |
20 #include "external_flash.inc" | |
21 #include "shared_definitions.h" ; Mailbox from/to p2_deco.c | |
22 #include "isr.inc" | |
23 #include "ghostwriter.inc" | |
24 #include "adc_lightsensor.inc" | |
25 | |
174
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
26 CBLOCK tmp+0x40 ; Keep space for menu processor |
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
27 gaslist_gas ; Check ram position in gaslist.asm, too! |
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
28 ENDC |
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
29 |
0 | 30 gui CODE |
31 ;============================================================================= | |
32 ; Main Menu | |
66
00636132cca6
BUGFIX: Maintain last selected customview in surface mode
heinrichsweikamp
parents:
64
diff
changeset
|
33 global do_main_menu,do_main_menu2 |
0 | 34 do_main_menu: |
39
e4e91fe8b09d
remember last customview in dive and surface mode
mh@mh-THINK.fritz.box
parents:
23
diff
changeset
|
35 movff menupos3,customview_surfmode; save last customview |
66
00636132cca6
BUGFIX: Maintain last selected customview in surface mode
heinrichsweikamp
parents:
64
diff
changeset
|
36 do_main_menu2: |
0 | 37 bcf sleepmode ; for timeout |
38 call menu_processor_reset ; restart from first icon. | |
39 | |
40 do_continue_main_menu: | |
41 call menu_processor_pop ; drop exit line. | |
42 call menu_processor_pop ; back to last icon. | |
43 | |
44 extern do_demo_divemode, restart | |
45 MENU_BEGIN tMainMenu, .7 | |
46 MENU_CALL tLogbook, logbook | |
47 MENU_CALL tGasSetup, do_gas_menu | |
48 MENU_CALL tCCRSetup, do_ccr_menu | |
49 MENU_CALL tPlan, do_planner_menu_reset | |
50 MENU_CALL tDiveModeMenu, do_divemode_menu | |
51 MENU_CALL tSystSets, do_settings_menu | |
52 MENU_CALL tExit, restart | |
53 MENU_END | |
54 | |
55 do_info_menu: | |
62 | 56 MENU_BEGIN tInfoMenu, .5 |
0 | 57 MENU_DYNAMIC info_menu_serial, 0 |
58 MENU_DYNAMIC info_menu_firmware, 0 | |
59 MENU_DYNAMIC info_menu_total_dives, 0 | |
62 | 60 MENU_DYNAMIC info_menu_battery_volts,0 |
0 | 61 MENU_CALL tExit, do_return_settings |
62 MENU_END | |
63 | |
64 ;============================================================================= | |
65 ; CCR Setup | |
66 | |
67 return_ccr_menu: | |
68 call menu_processor_pop ; drop exit line. | |
69 call menu_processor_pop ; back to last gas. | |
70 | |
71 do_ccr_menu: | |
113 | 72 bcf menu_show_sensors ; Clear flag |
73 bcf menu_show_sensors2 ; Clear flag | |
236 | 74 btfsc analog_o2_input |
240 | 75 bra do_ccr_menu_cR |
76 btfss optical_input | |
77 bra do_ccr_menu_ostc2 | |
78 | |
79 MENU_BEGIN tCCRSetup, .5 ; OSTC3 menu | |
174
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
80 MENU_OPTION tCCRMode, oCCRMode, 0 |
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
81 MENU_CALL tCCRSensor, do_ccr_sensor |
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
82 MENU_CALL tDiluentSetup, do_diluent_setup |
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
83 MENU_CALL tFixedSetpoints, do_fixed_setpoints |
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
84 MENU_CALL tExit, do_continue_main_menu |
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
85 MENU_END |
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
86 |
240 | 87 do_ccr_menu_cR: ; cR menu |
113 | 88 MENU_BEGIN tCCRSetup, .6 |
0 | 89 MENU_OPTION tCCRMode, oCCRMode, 0 |
90 MENU_CALL tCCRSensor, do_ccr_sensor | |
113 | 91 MENU_CALL tCalibrateMenu, do_calibrate_menu |
0 | 92 MENU_CALL tDiluentSetup, do_diluent_setup |
93 MENU_CALL tFixedSetpoints, do_fixed_setpoints | |
94 MENU_CALL tExit, do_continue_main_menu | |
95 MENU_END | |
96 | |
240 | 97 do_ccr_menu_ostc2: |
98 MENU_BEGIN tCCRSetup, .3 ; ostc2 menu | |
99 MENU_CALL tDiluentSetup, do_diluent_setup | |
100 MENU_CALL tFixedSetpoints, do_fixed_setpoints | |
101 MENU_CALL tExit, do_continue_main_menu | |
102 MENU_END | |
103 | |
104 | |
113 | 105 do_calibrate_menu: |
187
669b5d00706d
CHANGE: Longer timeout (4 min) for calibration menu
heinrichsweikamp
parents:
174
diff
changeset
|
106 call enable_ir_s8 ; Enable IR/S8-Port |
113 | 107 bsf menu_show_sensors2 ; Set flag |
108 do_calibrate_menu2: | |
109 MENU_BEGIN tCalibrateMenu, .6 | |
110 MENU_CALL tDiveHudMask1, 0 | |
111 MENU_CALL tDiveHudMask2, 0 | |
112 MENU_CALL tDiveHudMask3, 0 | |
113 MENU_OPTION tCalibrationGas,oCalGasO2, 0 | |
114 MENU_CALL tCalibrate, do_calibrate_mix | |
115 MENU_CALL tExit, return_ccr_menu | |
116 MENU_END | |
117 | |
118 do_calibrate_mix: | |
119 extern calibrate_mix | |
120 call calibrate_mix ; Calibrate with opt_calibration_O2_ratio, also calibrate S8 HUD if connected | |
121 goto restart ; Restart into surface mode | |
122 | |
0 | 123 do_ccr_sensor: |
187
669b5d00706d
CHANGE: Longer timeout (4 min) for calibration menu
heinrichsweikamp
parents:
174
diff
changeset
|
124 call enable_ir_s8 ; Enable IR/S8-Port |
0 | 125 bsf menu_show_sensors ; Set flag |
145
e3ac5b2021bc
NEW: Setpoint-Fallback option for external O2 sensor failure
heinrichsweikamp
parents:
144
diff
changeset
|
126 MENU_BEGIN tCCRSensor, .5 |
0 | 127 MENU_CALL tDiveHudMask1, 0 |
128 MENU_CALL tDiveHudMask2, 0 | |
129 MENU_CALL tDiveHudMask3, 0 | |
145
e3ac5b2021bc
NEW: Setpoint-Fallback option for external O2 sensor failure
heinrichsweikamp
parents:
144
diff
changeset
|
130 MENU_OPTION tSensorFallback,oSensorFallback, 0 |
0 | 131 MENU_CALL tExit, return_ccr_menu |
132 MENU_END | |
133 | |
134 do_diluent_setup: | |
135 bsf ccr_diluent_setup ; =1: Setting up Diluents ("Gas6-10") | |
139 | 136 bcf short_gas_decriptions ; =1: Use short versions of gaslist_strcat_gas_mod and gaslist_strcat_setpoint |
0 | 137 call gaslist_cleanup_list ; Takes care that only one gas can be first and first has 0m change depth |
138 MENU_BEGIN tDiluentSetup, .6 | |
139 MENU_DYNAMIC gaslist_strcat_gas_mod, do_edit_gas_menu | |
140 MENU_DYNAMIC gaslist_strcat_gas_mod, do_edit_gas_menu | |
141 MENU_DYNAMIC gaslist_strcat_gas_mod, do_edit_gas_menu | |
142 MENU_DYNAMIC gaslist_strcat_gas_mod, do_edit_gas_menu | |
143 MENU_DYNAMIC gaslist_strcat_gas_mod, do_edit_gas_menu | |
144 MENU_CALL tExit, return_ccr_menu | |
145 MENU_END | |
146 | |
147 do_return_fixed_setpoints: | |
148 call menu_processor_pop ; drop exit line. | |
149 call menu_processor_pop ; back to last gas. | |
150 | |
151 do_fixed_setpoints: | |
139 | 152 bcf short_gas_decriptions ; =1: Use short versions of gaslist_strcat_gas_mod and gaslist_strcat_setpoint |
0 | 153 MENU_BEGIN tFixedSetpoints, .6 |
154 MENU_DYNAMIC gaslist_strcat_setpoint, do_edit_sp_menu | |
155 MENU_DYNAMIC gaslist_strcat_setpoint, do_edit_sp_menu | |
156 MENU_DYNAMIC gaslist_strcat_setpoint, do_edit_sp_menu | |
157 MENU_DYNAMIC gaslist_strcat_setpoint, do_edit_sp_menu | |
158 MENU_DYNAMIC gaslist_strcat_setpoint, do_edit_sp_menu | |
159 MENU_CALL tExit, return_ccr_menu | |
160 MENU_END | |
161 | |
162 do_edit_sp_menu: | |
163 call gaslist_setSP ; Save current item. | |
164 MENU_BEGIN tFixedSetpoints, .5 | |
165 MENU_DYNAMIC gaslist_strcat_setpoint_0,0 | |
166 MENU_CALL tSPPlus, gaslist_spplus | |
167 MENU_CALL tDepthPlus, gaslist_spdepthplus | |
168 MENU_CALL tDepthMinus, gaslist_spdepthminus | |
169 MENU_CALL tExit, do_return_fixed_setpoints | |
170 MENU_END | |
171 | |
172 ;============================================================================= | |
173 ; OC Gas Setup | |
174 | |
175 return_gas_menu: | |
176 call menu_processor_pop ; drop exit line. | |
177 call menu_processor_pop ; back to last gas. | |
178 | |
179 btfsc ccr_diluent_setup ; Return to CCR-Menu? | |
180 bra do_diluent_setup ; Yes. | |
181 do_gas_menu: | |
182 bcf ccr_diluent_setup ; =1: Setting up Diluents ("Gas6-10") | |
139 | 183 bcf short_gas_decriptions ; =1: Use short versions of gaslist_strcat_gas_mod and gaslist_strcat_setpoint |
0 | 184 call gaslist_cleanup_list ; Takes care that only one gas can be first and first has 0m change depth |
185 MENU_BEGIN tGaslist, .6 | |
186 MENU_DYNAMIC gaslist_strcat_gas_mod, do_edit_gas_menu | |
187 MENU_DYNAMIC gaslist_strcat_gas_mod, do_edit_gas_menu | |
188 MENU_DYNAMIC gaslist_strcat_gas_mod, do_edit_gas_menu | |
189 MENU_DYNAMIC gaslist_strcat_gas_mod, do_edit_gas_menu | |
190 MENU_DYNAMIC gaslist_strcat_gas_mod, do_edit_gas_menu | |
191 MENU_CALL tExit, do_continue_main_menu | |
192 MENU_END | |
193 | |
194 return_gas_depth: | |
195 call menu_processor_pop ; drop exit line. | |
196 call menu_processor_pop ; back to last gas. | |
197 bra do_edit_gas_menu_1 | |
198 | |
199 do_edit_gas_menu: | |
200 call gaslist_setgas ; Save current item. | |
201 do_edit_gas_menu_1: ; Keep current gas. | |
202 MENU_BEGIN tGasEdit, .6 | |
203 MENU_DYNAMIC gaslist_gastitle, 0 | |
204 MENU_DYNAMIC gaslist_MOD_END, 0 | |
205 MENU_DYNAMIC gaslist_show_type, gaslist_toggle_type | |
206 MENU_CALL tSetup_mix, do_setup_mix | |
207 MENU_CALL tGasDepth, do_gas_depth_menu | |
208 MENU_CALL tExit, return_gas_menu | |
209 MENU_END | |
210 | |
211 do_setup_mix: | |
212 MENU_BEGIN tGasEdit, .7 | |
213 MENU_DYNAMIC gaslist_gastitle, 0 | |
214 MENU_DYNAMIC gaslist_MOD_END, 0 | |
215 MENU_CALL tO2Plus, gaslist_pO2 | |
216 MENU_CALL tO2Minus, gaslist_mO2 | |
217 MENU_CALL tHePlus, gaslist_pHe | |
218 MENU_CALL tHeMinus, gaslist_mHe | |
219 MENU_CALL tExit, return_gas_depth | |
220 MENU_END | |
221 | |
222 global do_gas_depth_menu | |
223 do_gas_depth_menu: | |
174
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
224 movff gaslist_gas,WREG |
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
225 lfsr FSR1,opt_gas_type ; Read opt_gas_type[WREG] |
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
226 movff PLUSW1,lo ; Used as temp |
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
227 movlw .3 ; 3=Deco |
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
228 btfsc ccr_diluent_setup ; =1: Setting up Diluents ("Gas6-10") |
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
229 movlw .2 ; 2=Normal |
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
230 cpfseq lo |
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
231 bra return_gas_depth ; Non-Deco gas or "Normal" Diluent, Return! |
932e91074bdb
CHANGE: Clarify Travel Gases with "---" as change depth
heinrichsweikamp
parents:
155
diff
changeset
|
232 |
154
afa31c815f24
NEW: Show ppO2 for change depth during gas setup
heinrichsweikamp
parents:
148
diff
changeset
|
233 MENU_BEGIN tGasEdit, .7 |
0 | 234 MENU_DYNAMIC gaslist_gastitle, 0 |
235 MENU_DYNAMIC gaslist_MOD_END, 0 | |
154
afa31c815f24
NEW: Show ppO2 for change depth during gas setup
heinrichsweikamp
parents:
148
diff
changeset
|
236 MENU_DYNAMIC gaslist_ppo2, 0 ; ppO2 at change depth |
0 | 237 MENU_CALL tDepthPlus, gaslist_pDepth |
238 MENU_CALL tDepthMinus, gaslist_mDepth | |
239 MENU_DYNAMIC gaslist_reset_mod_title,gaslist_reset_mod | |
240 MENU_CALL tExit, return_gas_depth | |
241 MENU_END | |
242 | |
243 ;============================================================================= | |
244 ; Simulator menus | |
245 | |
246 global do_planner_menu | |
247 | |
248 do_planner_menu_reset: | |
249 extern option_save_all | |
250 call option_save_all | |
251 ;---- Reset dive time/depth to default values | |
252 extern option_reset | |
253 lfsr FSR0,odiveInterval | |
254 call option_reset | |
255 lfsr FSR0,obottomTime | |
256 call option_reset | |
257 lfsr FSR0,obottomDepth | |
258 call option_reset | |
259 | |
260 do_planner_menu: | |
261 extern do_demo_planner | |
262 MENU_BEGIN tPlan, .6 | |
263 MENU_CALL tInter, do_demo_divemode | |
264 MENU_OPTION tIntvl, odiveInterval, 0 | |
265 MENU_OPTION tBtTm, obottomTime, 0 | |
266 MENU_OPTION tMxDep, obottomDepth, 0 | |
267 MENU_CALL tDeco, do_demo_planner | |
268 MENU_CALL tExit, do_continue_main_menu | |
269 MENU_END | |
270 | |
271 ;============================================================================= | |
272 ; Divemode menu | |
273 | |
274 do_return_divemode_menu: | |
275 call menu_processor_pop ; drop exit line. | |
276 call menu_processor_pop ; back to last gas. | |
277 | |
278 do_divemode_menu: | |
279 MENU_BEGIN tDiveModeMenu, .7 | |
280 MENU_OPTION tDvMode, oDiveMode, 0 | |
281 MENU_OPTION tDkMode, oDecoMode, 0 | |
104
223579e905c3
Show a Safety Stop if enabled (Menu "Deco Parameters")
heinrichsweikamp
parents:
90
diff
changeset
|
282 MENU_CALL tppO2settings, do_ppo2_menu |
223579e905c3
Show a Safety Stop if enabled (Menu "Deco Parameters")
heinrichsweikamp
parents:
90
diff
changeset
|
283 MENU_OPTION tsafetystopmenu,oSafetyStop, 0 |
0 | 284 MENU_OPTION tFTTSMenu, oExtraTime,0 |
285 MENU_CALL tDecoparameters, do_decoparameters_menu | |
286 MENU_CALL tExit, do_continue_main_menu | |
287 MENU_END | |
288 | |
104
223579e905c3
Show a Safety Stop if enabled (Menu "Deco Parameters")
heinrichsweikamp
parents:
90
diff
changeset
|
289 do_ppo2_menu: |
223579e905c3
Show a Safety Stop if enabled (Menu "Deco Parameters")
heinrichsweikamp
parents:
90
diff
changeset
|
290 MENU_BEGIN tppO2settings, .3 |
223579e905c3
Show a Safety Stop if enabled (Menu "Deco Parameters")
heinrichsweikamp
parents:
90
diff
changeset
|
291 MENU_DYNAMIC divesets_ppo2_max, do_toggle_ppo2_max |
223579e905c3
Show a Safety Stop if enabled (Menu "Deco Parameters")
heinrichsweikamp
parents:
90
diff
changeset
|
292 MENU_DYNAMIC divesets_ppo2_min, do_toggle_ppo2_min |
223579e905c3
Show a Safety Stop if enabled (Menu "Deco Parameters")
heinrichsweikamp
parents:
90
diff
changeset
|
293 MENU_CALL tExit, do_return_divemode_menu |
223579e905c3
Show a Safety Stop if enabled (Menu "Deco Parameters")
heinrichsweikamp
parents:
90
diff
changeset
|
294 MENU_END |
223579e905c3
Show a Safety Stop if enabled (Menu "Deco Parameters")
heinrichsweikamp
parents:
90
diff
changeset
|
295 |
0 | 296 do_return_decoparameters_menu: |
297 call menu_processor_pop ; drop exit line. | |
298 call menu_processor_pop ; back to setting | |
299 do_decoparameters_menu: | |
300 MENU_BEGIN tDecoparameters, .7 | |
301 MENU_OPTION tGF_low, oGF_low, 0 | |
302 MENU_OPTION tGF_high, oGF_high, 0 | |
303 MENU_CALL taGFMenu, do_aGF_menu | |
304 MENU_OPTION tSaturationMult,osatmult, 0 | |
305 MENU_OPTION tDesaturationMult,odesatmult,0 | |
306 MENU_OPTION tLastDecostop,oLastDeco, 0 | |
307 MENU_CALL tExit, do_return_divemode_menu | |
308 MENU_END | |
309 | |
310 do_aGF_menu: | |
311 MENU_BEGIN taGFMenu, .4 | |
312 MENU_OPTION taGF_enable,oEnable_aGF, 0 | |
313 MENU_OPTION taGF_low, oaGF_low, 0 | |
314 MENU_OPTION taGF_high, oaGF_high, 0 | |
315 MENU_CALL tExit, do_return_decoparameters_menu | |
316 MENU_END | |
317 ;============================================================================= | |
318 ; Setup Menu | |
319 | |
320 do_return_settings: | |
321 bcf settime_setdate ; Clear flag | |
322 call menu_processor_pop ; Drop exit entry | |
323 call menu_processor_pop ; Pop return line. | |
324 | |
325 extern compass_calibration_loop | |
326 do_settings_menu: | |
327 MENU_BEGIN tSystSets, .7 | |
328 MENU_CALL tInfoMenu, do_info_menu | |
329 MENU_CALL tSetTimeDate, do_date_time_menu | |
330 MENU_CALL tDispSets, do_dispsets_menu | |
331 MENU_OPTION tLanguage, oLanguage, 0 | |
155
5f71e31bd5b3
CHANGE: Re-arranged Settings Menu, add 180? rotate to menu
heinrichsweikamp
parents:
154
diff
changeset
|
332 MENU_CALL tResetMenu, do_reset_menu |
5f71e31bd5b3
CHANGE: Re-arranged Settings Menu, add 180? rotate to menu
heinrichsweikamp
parents:
154
diff
changeset
|
333 MENU_CALL tMore, do_settings_menu_more |
5f71e31bd5b3
CHANGE: Re-arranged Settings Menu, add 180? rotate to menu
heinrichsweikamp
parents:
154
diff
changeset
|
334 MENU_CALL tExit, do_continue_main_menu |
5f71e31bd5b3
CHANGE: Re-arranged Settings Menu, add 180? rotate to menu
heinrichsweikamp
parents:
154
diff
changeset
|
335 MENU_END |
5f71e31bd5b3
CHANGE: Re-arranged Settings Menu, add 180? rotate to menu
heinrichsweikamp
parents:
154
diff
changeset
|
336 |
220
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
337 |
155
5f71e31bd5b3
CHANGE: Re-arranged Settings Menu, add 180? rotate to menu
heinrichsweikamp
parents:
154
diff
changeset
|
338 do_settings_menu_more: |
243 | 339 btfsc rechargeable ; piezo buttons available |
220
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
340 bra do_settings_menu_more_c3 |
243 | 341 btfsc ble_available ; ble available |
342 bra do_settings_menu_more_ble | |
220
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
343 MENU_BEGIN tSystSets, .6 |
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
344 MENU_CALL tCompassMenu, do_compass_menu |
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
345 MENU_CALL tLogOffset, do_log_offset_menu |
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
346 MENU_OPTION tUnits, oUnits, 0 |
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
347 MENU_OPTION tSamplingrate,oSamplingRate,0 |
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
348 MENU_OPTION tDvSalinity,oDiveSalinity, 0 |
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
349 MENU_CALL tExit, do_return_settings |
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
350 MENU_END |
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
351 |
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
352 do_settings_menu_more_c3: |
218 | 353 MENU_BEGIN tSystSets, .7 |
18
4e3f133dfbf4
add new opt_compass_gain option to work with more magnetic battery types
heinrichsweikamp
parents:
0
diff
changeset
|
354 MENU_CALL tCompassMenu, do_compass_menu |
155
5f71e31bd5b3
CHANGE: Re-arranged Settings Menu, add 180? rotate to menu
heinrichsweikamp
parents:
154
diff
changeset
|
355 MENU_CALL tLogOffset, do_log_offset_menu |
5f71e31bd5b3
CHANGE: Re-arranged Settings Menu, add 180? rotate to menu
heinrichsweikamp
parents:
154
diff
changeset
|
356 MENU_OPTION tUnits, oUnits, 0 |
5f71e31bd5b3
CHANGE: Re-arranged Settings Menu, add 180? rotate to menu
heinrichsweikamp
parents:
154
diff
changeset
|
357 MENU_OPTION tSamplingrate,oSamplingRate,0 |
5f71e31bd5b3
CHANGE: Re-arranged Settings Menu, add 180? rotate to menu
heinrichsweikamp
parents:
154
diff
changeset
|
358 MENU_OPTION tDvSalinity,oDiveSalinity, 0 |
220
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
359 MENU_CALL tMore, do_settings_cr_menu |
155
5f71e31bd5b3
CHANGE: Re-arranged Settings Menu, add 180? rotate to menu
heinrichsweikamp
parents:
154
diff
changeset
|
360 MENU_CALL tExit, do_return_settings |
0 | 361 MENU_END |
362 | |
220
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
363 extern comm_mode0 |
243 | 364 |
220
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
365 do_settings_cr_menu: ; Menu with features only available in cR hardware |
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
366 MENU_BEGIN tSystSets, .4 |
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
367 MENU_CALL tUsbTitle, comm_mode0 |
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
368 MENU_OPTION tButtonleft,ocR_button_left ,0 ; left button sensitivity |
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
369 MENU_OPTION tButtonright,ocR_button_right,0 ; right button sensitivity |
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
370 MENU_CALL tExit, do_settings_menu_more_c3 |
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
371 MENU_END |
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
372 |
243 | 373 do_settings_menu_more_ble: ; Menu with BLE feature |
374 MENU_BEGIN tSystSets, .7 | |
375 MENU_CALL tCompassMenu, do_compass_menu | |
376 MENU_CALL tLogOffset, do_log_offset_menu | |
377 MENU_OPTION tUnits, oUnits, 0 | |
378 MENU_OPTION tSamplingrate,oSamplingRate,0 | |
379 MENU_OPTION tDvSalinity,oDiveSalinity, 0 | |
380 MENU_CALL tUsbTitle, comm_mode0 | |
381 MENU_CALL tExit, do_return_settings | |
382 MENU_END | |
220
effd7259f5a5
make button sensitivity configurable (cR hardware)
heinrichsweikamp
parents:
218
diff
changeset
|
383 |
18
4e3f133dfbf4
add new opt_compass_gain option to work with more magnetic battery types
heinrichsweikamp
parents:
0
diff
changeset
|
384 do_compass_menu: |
90
3274e87fd027
NEW: automatic compass gain makes calibration quicker
heinrichsweikamp
parents:
78
diff
changeset
|
385 MENU_BEGIN tSystSets, .2 |
18
4e3f133dfbf4
add new opt_compass_gain option to work with more magnetic battery types
heinrichsweikamp
parents:
0
diff
changeset
|
386 MENU_CALL tCompassMenu, compass_calibration_loop |
90
3274e87fd027
NEW: automatic compass gain makes calibration quicker
heinrichsweikamp
parents:
78
diff
changeset
|
387 ; MENU_OPTION tCompassGain, oCompassGain, 0 |
18
4e3f133dfbf4
add new opt_compass_gain option to work with more magnetic battery types
heinrichsweikamp
parents:
0
diff
changeset
|
388 MENU_CALL tExit, do_return_settings |
4e3f133dfbf4
add new opt_compass_gain option to work with more magnetic battery types
heinrichsweikamp
parents:
0
diff
changeset
|
389 MENU_END |
4e3f133dfbf4
add new opt_compass_gain option to work with more magnetic battery types
heinrichsweikamp
parents:
0
diff
changeset
|
390 |
0 | 391 ;============================================================================= |
392 ; Reset and confirmation menu. | |
393 | |
394 do_reset_menu: | |
63 | 395 MENU_BEGIN tResetMenu, .6 |
0 | 396 MENU_CALL tExit, do_return_settings |
397 MENU_CALL tReboot, do_reset_menu2 ; Confirm | |
398 MENU_CALL tResetDeco, do_reset_menu3 ; Confirm | |
399 MENU_CALL tResetSettings, do_reset_menu4 ; Confirm | |
63 | 400 MENU_CALL tResetLogbook, do_reset_menu5 ; Confirm |
0 | 401 MENU_CALL tResetBattery, new_battery_menu ; New Battery submenu |
402 MENU_END | |
403 | |
404 do_reset_menu2: | |
405 MENU_BEGIN tResetMenu2, .2 | |
406 MENU_CALL tAbort, do_continue_menu_3stack | |
407 MENU_CALL tReboot, do_reboot ; Reboot | |
408 MENU_END | |
409 | |
410 do_reset_menu3: | |
411 MENU_BEGIN tResetMenu2, .2 | |
412 MENU_CALL tAbort, do_continue_menu_3stack | |
413 MENU_CALL tResetDeco, do_reset_deco ; Reset Deco | |
414 MENU_END | |
415 | |
416 do_reset_menu4: | |
417 MENU_BEGIN tResetMenu2, .2 | |
418 MENU_CALL tAbort, do_continue_menu_3stack | |
419 MENU_CALL tResetSettings, do_reset_settings ; Reset all settings | |
420 MENU_END | |
421 | |
63 | 422 do_reset_menu5: |
423 MENU_BEGIN tResetMenu2, .2 | |
424 MENU_CALL tAbort, do_continue_menu_3stack | |
425 MENU_CALL tResetLogbook, do_reset_logbook ; Reset logbook | |
426 MENU_END | |
427 | |
428 do_reset_logbook: | |
429 clrf EEADRH ; Make sure to select eeprom bank 0 | |
430 clrf EEDATA | |
78
668b432dcae9
BUGFIX: Reset Logbook did not reset Logbook TOC properly
mh@mh-THINK.localdomain
parents:
76
diff
changeset
|
431 read_int_eeprom .2 |
668b432dcae9
BUGFIX: Reset Logbook did not reset Logbook TOC properly
mh@mh-THINK.localdomain
parents:
76
diff
changeset
|
432 write_int_eeprom .15 |
668b432dcae9
BUGFIX: Reset Logbook did not reset Logbook TOC properly
mh@mh-THINK.localdomain
parents:
76
diff
changeset
|
433 read_int_eeprom .3 |
668b432dcae9
BUGFIX: Reset Logbook did not reset Logbook TOC properly
mh@mh-THINK.localdomain
parents:
76
diff
changeset
|
434 write_int_eeprom .16 ; Copy number of dives |
144 | 435 clrf EEDATA |
78
668b432dcae9
BUGFIX: Reset Logbook did not reset Logbook TOC properly
mh@mh-THINK.localdomain
parents:
76
diff
changeset
|
436 write_int_eeprom .2 |
668b432dcae9
BUGFIX: Reset Logbook did not reset Logbook TOC properly
mh@mh-THINK.localdomain
parents:
76
diff
changeset
|
437 write_int_eeprom .3 ; Clear total dives |
63 | 438 write_int_eeprom .4 |
439 write_int_eeprom .5 | |
440 write_int_eeprom .6 ; Reset logbook pointers | |
441 call ext_flash_erase_logbook ; And complete logbook (!) | |
442 goto do_continue_main_menu ; back to menu | |
443 | |
0 | 444 |
445 do_reset_deco: | |
446 movlw d'79' ; 79% N2 | |
447 movff WREG,char_I_N2_ratio | |
448 movlw d'0' | |
449 movff WREG,char_I_step_is_1min ; 2 second deco mode | |
450 SAFE_2BYTE_COPY amb_pressure,int_I_pres_respiration ; copy for deco routine | |
451 movff int_I_pres_respiration+0,int_I_pres_surface+0 ; copy for desat routine | |
452 movff int_I_pres_respiration+1,int_I_pres_surface+1 | |
453 | |
454 extern deco_reset | |
455 call deco_reset | |
456 call deco_calc_desaturation_time ; calculate desaturation time | |
457 banksel common | |
458 call deco_calc_wo_deco_step_1_min ; calculate deco in surface mode | |
459 banksel common | |
460 clrf nofly_time+0 ; Reset NoFly | |
461 clrf nofly_time+1 | |
462 clrf desaturation_time+0 ; Reset Desat | |
463 clrf desaturation_time+1 | |
464 goto do_return_settings ; back to menu | |
465 | |
466 do_reset_settings: | |
139 | 467 banksel common |
0 | 468 extern option_reset_all |
469 call option_reset_all ; Reset all options to factory default. | |
76 | 470 goto restart ; Restart into surfacemode |
0 | 471 |
472 do_continue_menu_3stack: ; Return three levels deep | |
473 call menu_processor_pop | |
474 goto do_return_settings | |
475 | |
476 do_reboot: | |
477 call ext_flash_enable_protection ; Enables write protection | |
478 reset | |
479 | |
480 | |
481 do_date_time_menu: | |
482 MENU_BEGIN tSetTimeDate, .4 | |
483 MENU_CALL tSetTime, do_time_menu | |
484 MENU_CALL tSetDate, do_date_menu | |
485 MENU_OPTION tDateFormat,oDateFormat, 0 | |
486 MENU_CALL tExit, do_return_settings | |
487 MENU_END | |
488 | |
489 do_date_menu: | |
490 bsf settime_setdate | |
491 MENU_BEGIN tSetDate, .4 | |
492 MENU_OPTION tSetDay, oSetDay, 0 | |
50 | 493 MENU_OPTION tSetMonth, oSetMonth, 0 |
0 | 494 MENU_OPTION tSetYear, oSetYear, 0 |
495 MENU_CALL tExit, do_continue_menu_3stack | |
496 MENU_END | |
497 | |
498 | |
499 do_reset_seconds: | |
500 clrf secs | |
501 extern rtc_set_rtc | |
502 call rtc_set_rtc ; writes mins,sec,hours,day,month and year to rtc module | |
503 do_time_menu: | |
504 bsf settime_setdate | |
505 MENU_BEGIN tSetTime, .4 | |
506 MENU_OPTION tSetHours, oSetHours, 0 | |
507 MENU_OPTION tSetMinutes,oSetMinutes, 0 | |
508 MENU_CALL tSetSeconds, do_reset_seconds | |
509 MENU_CALL tExit, do_continue_menu_3stack | |
510 MENU_END | |
511 | |
512 | |
513 do_toggle_ppo2_max: ; add 0.1bar, with hard-coded max. | |
514 movff opt_ppO2_max,lo ; banksafe | |
515 movlw .10 | |
516 addwf lo,F | |
517 movlw ppo2_highest_setting | |
518 cpfsgt lo | |
519 bra do_toggle_ppo2_max2 | |
520 movlw .120 | |
521 movwf lo | |
522 do_toggle_ppo2_max2: | |
523 movff lo,opt_ppO2_max | |
524 return | |
525 | |
526 do_toggle_ppo2_min: ; sub 0.1bar, with hard-coded min. | |
527 movff opt_ppO2_min,lo ; banksafe | |
528 incf lo,F | |
529 movlw .21 | |
530 cpfsgt lo | |
531 bra do_toggle_ppo2_min2 | |
532 movlw ppo2_lowest_setting | |
533 movwf lo | |
534 do_toggle_ppo2_min2: | |
535 movff lo,opt_ppO2_min | |
536 return | |
537 | |
538 | |
539 ; Logbook offset sub-menu | |
540 do_log_offset_menu: | |
541 MENU_BEGIN tLogOffset, .6 | |
542 MENU_DYNAMIC TFT_LogOffset_Logtitle, 0 | |
543 MENU_CALL tLogOffsetp1, do_logoffset_plus1 | |
544 MENU_CALL tLogOffsetp10, do_logoffset_plus10 | |
545 MENU_CALL tLogOffsetm1, do_logoffset_minus1 | |
546 MENU_CALL tLogOffsetm10, do_logoffset_minus10 | |
547 MENU_CALL tExit, do_dispsets_menu_3stack | |
548 MENU_END | |
549 | |
550 | |
551 do_logoffset_minus1: | |
552 call do_logoffset_common_read ; Read into lo:hi | |
553 movlw d'1' | |
554 subwf lo | |
555 movlw d'0' | |
556 subwfb hi | |
557 btfss hi,7 ; <0? | |
558 goto do_logoffset_common_write ; Store and return | |
559 clrf lo | |
560 clrf hi | |
561 goto do_logoffset_common_write ; Store and return | |
562 | |
563 do_logoffset_minus10: | |
564 call do_logoffset_common_read ; Read into lo:hi | |
565 movlw d'10' | |
566 subwf lo | |
567 movlw d'0' | |
568 subwfb hi | |
569 btfss hi,7 ; <0? | |
570 goto do_logoffset_common_write ; Store and return | |
571 clrf lo | |
572 clrf hi | |
573 goto do_logoffset_common_write ; Store and return | |
574 | |
575 do_logoffset_plus1: | |
576 call do_logoffset_common_read ; Read into lo:hi | |
148 | 577 infsnz lo,F |
578 incf hi,F | |
0 | 579 goto do_logoffset_common_write ; Store and return |
580 | |
581 do_logoffset_plus10: | |
582 call do_logoffset_common_read ; Read into lo:hi | |
583 movlw d'10' | |
584 addwf lo | |
585 movlw d'0' | |
586 addwfc hi | |
587 goto do_logoffset_common_write ; Store and return | |
588 | |
589 do_dispsets_menu_3stack: | |
50 | 590 bcf in_color_menu |
0 | 591 call menu_processor_pop |
592 call menu_processor_pop | |
593 | |
594 do_dispsets_menu: | |
155
5f71e31bd5b3
CHANGE: Re-arranged Settings Menu, add 180? rotate to menu
heinrichsweikamp
parents:
154
diff
changeset
|
595 MENU_BEGIN tDispSets, .4 |
0 | 596 MENU_OPTION tBright, oBrightness, 0 |
50 | 597 MENU_CALL tColorScheme, do_color_scheme |
155
5f71e31bd5b3
CHANGE: Re-arranged Settings Menu, add 180? rotate to menu
heinrichsweikamp
parents:
154
diff
changeset
|
598 MENU_OPTION tFlip, oFlipScreen, 0 |
0 | 599 MENU_CALL tExit, do_return_settings |
600 MENU_END | |
601 | |
50 | 602 |
603 extern oColorSetDive | |
604 do_color_scheme: | |
605 bsf in_color_menu | |
606 MENU_BEGIN tColorScheme, .2 | |
607 MENU_OPTION tColorSetDive,oColorSetDive, 0 | |
608 MENU_CALL tExit, do_dispsets_menu_3stack | |
609 MENU_END | |
610 | |
611 | |
0 | 612 ;============================================================================= |
613 | |
614 global new_battery_menu | |
615 new_battery_menu: | |
616 bsf enable_screen_dumps ; To prevent exiting into COMM mode immediately | |
617 call TFT_boot ; Initialize TFT (includes clear screen) | |
618 call TFT_Display_FadeIn ; Show splash | |
619 movlw .100 | |
620 movwf batt_percent ; make sure to reset batt_percent | |
621 | |
622 ; Default (In cases of timeout or USB): Use old battery | |
623 clrf EEADRH | |
624 read_int_eeprom 0x07 | |
625 movff EEDATA,battery_gauge+0 | |
626 read_int_eeprom 0x08 | |
627 movff EEDATA,battery_gauge+1 | |
628 read_int_eeprom 0x09 | |
629 movff EEDATA,battery_gauge+2 | |
630 read_int_eeprom 0x0A | |
631 movff EEDATA,battery_gauge+3 | |
632 read_int_eeprom 0x0B | |
633 movff EEDATA,battery_gauge+4 | |
634 read_int_eeprom 0x0C | |
635 movff EEDATA,battery_gauge+5 | |
636 | |
76 | 637 call menu_processor_reset ; restart from first icon. |
638 | |
0 | 639 MENU_BEGIN tNewBattTitle, .3 |
640 MENU_CALL tNewBattOld, use_old_batteries | |
641 MENU_CALL tNewBattNew36, use_new_36V_batteries | |
642 MENU_CALL tNewBattNew15, use_new_15V_batteries | |
643 MENU_END | |
644 | |
645 global use_old_batteries | |
646 use_old_batteries: | |
647 clrf EEADRH | |
648 read_int_eeprom 0x07 | |
649 movff EEDATA,battery_gauge+0 | |
650 read_int_eeprom 0x08 | |
651 movff EEDATA,battery_gauge+1 | |
652 read_int_eeprom 0x09 | |
653 movff EEDATA,battery_gauge+2 | |
654 read_int_eeprom 0x0A | |
655 movff EEDATA,battery_gauge+3 | |
656 read_int_eeprom 0x0B | |
657 movff EEDATA,battery_gauge+4 | |
658 read_int_eeprom 0x0C | |
659 movff EEDATA,battery_gauge+5 | |
660 movlw .100 | |
661 movwf batt_percent ; To have 1,5V batteries right after firmware update | |
662 goto power_on_return | |
663 | |
664 use_new_15V_batteries: | |
665 use_new_36V_batteries: | |
666 call reset_battery_pointer ; Resets battery pointer 0x07-0x0C and battery_gauge:5 | |
667 goto power_on_return | |
668 | |
669 END |