Mercurial > public > ostc4
comparison Discovery/Src/tMenuEditDeco.c @ 38:5f11787b4f42
include in ostc4 repository
| author | heinrichsweikamp |
|---|---|
| date | Sat, 28 Apr 2018 11:52:34 +0200 |
| parents | |
| children | b7689d9e888a |
comparison
equal
deleted
inserted
replaced
| 37:ccc45c0e1ea2 | 38:5f11787b4f42 |
|---|---|
| 1 /////////////////////////////////////////////////////////////////////////////// | |
| 2 /// -*- coding: UTF-8 -*- | |
| 3 /// | |
| 4 /// \file Discovery/Src/tMenuEditDeco.c | |
| 5 /// \brief Main Template file for Menu Edit Deco Parameters | |
| 6 /// \author heinrichs weikamp gmbh | |
| 7 /// \date 31-July-2014 | |
| 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 ------------------------------------------------------------------*/ | |
| 30 #include "tMenuEditDeco.h" | |
| 31 | |
| 32 #include "gfx_fonts.h" | |
| 33 #include "tMenuEdit.h" | |
| 34 | |
| 35 /* Private variables ---------------------------------------------------------*/ | |
| 36 uint8_t lineSelected = 0; | |
| 37 | |
| 38 /* Private function prototypes -----------------------------------------------*/ | |
| 39 | |
| 40 void openEdit_DiveMode(void); | |
| 41 void openEdit_CCRModeSensorOrFixedSP(void); | |
| 42 void openEdit_ppO2max(void); | |
| 43 void openEdit_SafetyStop(void); | |
| 44 void openEdit_FutureTTS(void); | |
| 45 void openEdit_Salinity(void); | |
| 46 | |
| 47 /* Announced function prototypes -----------------------------------------------*/ | |
| 48 | |
| 49 uint8_t OnAction_OC (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
| 50 uint8_t OnAction_CC (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
| 51 uint8_t OnAction_Apnea (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
| 52 uint8_t OnAction_Gauge (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
| 53 uint8_t OnAction_FutureTTS (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
| 54 uint8_t OnAction_ppO2Max (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
| 55 uint8_t OnAction_SafetyStop (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
| 56 uint8_t OnAction_Salinity (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
| 57 /* Exported functions --------------------------------------------------------*/ | |
| 58 | |
| 59 void openEdit_Deco(uint8_t line) | |
| 60 { | |
| 61 set_globalState_Menu_Line(line); | |
| 62 resetMenuEdit(CLUT_MenuPageDeco); | |
| 63 | |
| 64 SSettings *data = settingsGetPointer(); | |
| 65 | |
| 66 lineSelected = line; | |
| 67 | |
| 68 if((data->dive_mode != DIVEMODE_CCR )&& (line > 1)) | |
| 69 line += 1; | |
| 70 | |
| 71 switch(line) | |
| 72 { | |
| 73 case 1: | |
| 74 default: | |
| 75 openEdit_DiveMode(); | |
| 76 break; | |
| 77 case 2: | |
| 78 openEdit_CCRModeSensorOrFixedSP(); | |
| 79 break; | |
| 80 case 3: | |
| 81 openEdit_ppO2max(); | |
| 82 break; | |
| 83 case 4: | |
| 84 openEdit_SafetyStop(); | |
| 85 break; | |
| 86 case 5: | |
| 87 openEdit_FutureTTS(); | |
| 88 break; | |
| 89 case 6: | |
| 90 openEdit_Salinity(); | |
| 91 break; | |
| 92 } | |
| 93 } | |
| 94 | |
| 95 /* Private functions ---------------------------------------------------------*/ | |
| 96 | |
| 97 | |
| 98 void openEdit_DiveMode(void) | |
| 99 { | |
| 100 #define APNEAANDGAUGE | |
| 101 | |
| 102 char text[32]; | |
| 103 uint8_t actualDiveMode, active; | |
| 104 SSettings *pSettings = settingsGetPointer(); | |
| 105 actualDiveMode = pSettings->dive_mode; | |
| 106 | |
| 107 text[0] = '\001'; | |
| 108 text[1] = TXT_DiveMode; | |
| 109 text[2] = 0; | |
| 110 write_topline(text); | |
| 111 | |
| 112 text[1] = 0; | |
| 113 | |
| 114 | |
| 115 text[0] = TXT_OpenCircuit; | |
| 116 if(actualDiveMode == DIVEMODE_OC) | |
| 117 active = 1; | |
| 118 else | |
| 119 active = 0; | |
| 120 write_field_on_off(StMDECO1_OC, 30, 500, ME_Y_LINE1, &FontT48, text, active); | |
| 121 | |
| 122 text[0] = TXT_ClosedCircuit; | |
| 123 if(actualDiveMode == DIVEMODE_CCR) | |
| 124 active = 1; | |
| 125 else | |
| 126 active = 0; | |
| 127 write_field_on_off(StMDECO1_CC, 30, 500, ME_Y_LINE2, &FontT48, text, active); | |
| 128 | |
| 129 #ifdef APNEAANDGAUGE | |
| 130 text[0] = TXT_Apnoe; | |
| 131 if(actualDiveMode == DIVEMODE_Apnea) | |
| 132 active = 1; | |
| 133 else | |
| 134 active = 0; | |
| 135 write_field_on_off(StMDECO1_Apnea, 30, 500, ME_Y_LINE3, &FontT48, text, active); | |
| 136 | |
| 137 text[0] = TXT_Gauge; | |
| 138 if(actualDiveMode == DIVEMODE_Gauge) | |
| 139 active = 1; | |
| 140 else | |
| 141 active = 0; | |
| 142 write_field_on_off(StMDECO1_Gauge, 30, 500, ME_Y_LINE4, &FontT48, text, active); | |
| 143 #endif | |
| 144 | |
| 145 setEvent(StMDECO1_OC, (uint32_t)OnAction_OC); | |
| 146 setEvent(StMDECO1_CC, (uint32_t)OnAction_CC); | |
| 147 #ifdef APNEAANDGAUGE | |
| 148 setEvent(StMDECO1_Apnea, (uint32_t)OnAction_Apnea); | |
| 149 setEvent(StMDECO1_Gauge, (uint32_t)OnAction_Gauge); | |
| 150 #endif | |
| 151 | |
| 152 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); | |
| 153 } | |
| 154 | |
| 155 uint8_t OnAction_OC (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 156 { | |
| 157 SSettings *pSettings = settingsGetPointer(); | |
| 158 if(pSettings->dive_mode == DIVEMODE_OC) | |
| 159 return EXIT_TO_MENU; | |
| 160 pSettings->dive_mode = DIVEMODE_OC; | |
| 161 setActualGasFirst(&stateRealGetPointerWrite()->lifeData); | |
| 162 tMenuEdit_set_on_off(editId, 1); | |
| 163 tMenuEdit_set_on_off(StMDECO1_CC, 0); | |
| 164 tMenuEdit_set_on_off(StMDECO1_Apnea, 0); | |
| 165 tMenuEdit_set_on_off(StMDECO1_Gauge, 0); | |
| 166 return UPDATE_DIVESETTINGS; | |
| 167 } | |
| 168 | |
| 169 | |
| 170 uint8_t OnAction_CC (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 171 { | |
| 172 SSettings *pSettings = settingsGetPointer(); | |
| 173 if(pSettings->dive_mode == DIVEMODE_CCR) | |
| 174 return EXIT_TO_MENU; | |
| 175 pSettings->dive_mode = DIVEMODE_CCR; | |
| 176 setActualGasFirst(&stateRealGetPointerWrite()->lifeData); | |
| 177 tMenuEdit_set_on_off(editId, 1); | |
| 178 tMenuEdit_set_on_off(StMDECO1_OC, 0); | |
| 179 tMenuEdit_set_on_off(StMDECO1_Apnea, 0); | |
| 180 tMenuEdit_set_on_off(StMDECO1_Gauge, 0); | |
| 181 return UPDATE_DIVESETTINGS; | |
| 182 } | |
| 183 | |
| 184 | |
| 185 uint8_t OnAction_Apnea (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 186 { | |
| 187 SSettings *pSettings = settingsGetPointer(); | |
| 188 if(pSettings->dive_mode == DIVEMODE_Apnea) | |
| 189 return EXIT_TO_MENU; | |
| 190 pSettings->dive_mode = DIVEMODE_Apnea; | |
| 191 setActualGasFirst(&stateRealGetPointerWrite()->lifeData); | |
| 192 tMenuEdit_set_on_off(editId, 1); | |
| 193 tMenuEdit_set_on_off(StMDECO1_CC, 0); | |
| 194 tMenuEdit_set_on_off(StMDECO1_OC, 0); | |
| 195 tMenuEdit_set_on_off(StMDECO1_Gauge, 0); | |
| 196 return UPDATE_DIVESETTINGS; | |
| 197 } | |
| 198 | |
| 199 | |
| 200 uint8_t OnAction_Gauge (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 201 { | |
| 202 SSettings *pSettings = settingsGetPointer(); | |
| 203 if(pSettings->dive_mode == DIVEMODE_Gauge) | |
| 204 return EXIT_TO_MENU; | |
| 205 pSettings->dive_mode = DIVEMODE_Gauge; | |
| 206 setActualGasFirst(&stateRealGetPointerWrite()->lifeData); | |
| 207 tMenuEdit_set_on_off(editId, 1); | |
| 208 tMenuEdit_set_on_off(StMDECO1_CC, 0); | |
| 209 tMenuEdit_set_on_off(StMDECO1_Apnea, 0); | |
| 210 tMenuEdit_set_on_off(StMDECO1_OC, 0); | |
| 211 return UPDATE_DIVESETTINGS; | |
| 212 } | |
| 213 | |
| 214 | |
| 215 void openEdit_CCRModeSensorOrFixedSP(void) | |
| 216 { | |
| 217 SSettings *pSettings = settingsGetPointer(); | |
| 218 | |
| 219 if(pSettings->CCR_Mode == CCRMODE_Sensors) | |
| 220 pSettings->CCR_Mode = CCRMODE_FixedSetpoint; | |
| 221 else | |
| 222 pSettings->CCR_Mode = CCRMODE_Sensors; | |
| 223 | |
| 224 exitEditWithUpdate(); | |
| 225 } | |
| 226 | |
| 227 | |
| 228 void openEdit_SafetyStop(void) | |
| 229 { | |
| 230 uint32_t safetystopDuration, safetystopDepth; | |
| 231 char text[64]; | |
| 232 uint16_t y_line; | |
| 233 | |
| 234 safetystopDuration = settingsGetPointer()->safetystopDuration; | |
| 235 safetystopDepth = settingsGetPointer()->safetystopDepth; | |
| 236 | |
| 237 y_line = ME_Y_LINE_BASE + (lineSelected * ME_Y_LINE_STEP); | |
| 238 | |
| 239 text[0] = '\001'; | |
| 240 text[1] = TXT_SafetyStop; | |
| 241 text[2] = 0; | |
| 242 write_topline(text); | |
| 243 | |
| 244 write_label_fix( 20, 800, y_line, &FontT48, TXT_SafetyStop); | |
| 245 | |
| 246 strcpy(text,"\016\016"); | |
| 247 text[2] = TXT_Minutes; | |
| 248 if(settingsGetPointer()->nonMetricalSystem) | |
| 249 { | |
| 250 strcpy(&text[3], | |
| 251 "\017" | |
| 252 " @ " | |
| 253 "\016\016" | |
| 254 " ft" | |
| 255 "\017" | |
| 256 ); | |
| 257 } | |
| 258 else | |
| 259 { | |
| 260 strcpy(&text[3], | |
| 261 "\017" | |
| 262 " @ " | |
| 263 "\016\016" | |
| 264 " m" | |
| 265 "\017" | |
| 266 ); | |
| 267 } | |
| 268 write_label_var( 410, 800, y_line, &FontT48, text); | |
| 269 | |
| 270 if(settingsGetPointer()->nonMetricalSystem) | |
| 271 { | |
| 272 write_field_2digit(StMDECO4_SafetyStop, 350, 800, y_line, &FontT48, "## ##", safetystopDuration, unit_depth_integer(safetystopDepth), 0, 0); | |
| 273 } | |
| 274 else | |
| 275 { | |
| 276 write_field_udigit(StMDECO4_SafetyStop, 370, 800, y_line, &FontT48, "# #", safetystopDuration, safetystopDepth, 0, 0); | |
| 277 } | |
| 278 | |
| 279 write_buttonTextline(TXT2BYTE_ButtonMinus,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonPlus); | |
| 280 | |
| 281 setEvent(StMDECO4_SafetyStop, (uint32_t)OnAction_SafetyStop); | |
| 282 startEdit(); | |
| 283 } | |
| 284 | |
| 285 | |
| 286 uint8_t OnAction_SafetyStop (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 287 { | |
| 288 uint8_t digitContentNew; | |
| 289 uint32_t newSafetystopDuration, newSafetystopDepth; | |
| 290 | |
| 291 if(action == ACTION_BUTTON_ENTER) | |
| 292 { | |
| 293 return digitContent; | |
| 294 } | |
| 295 if(action == ACTION_BUTTON_ENTER_FINAL) | |
| 296 { | |
| 297 evaluateNewString(editId, &newSafetystopDuration, &newSafetystopDepth, 0, 0); | |
| 298 | |
| 299 if(settingsGetPointer()->nonMetricalSystem != 0) // new hw 170718 | |
| 300 { | |
| 301 newSafetystopDepth += 2; // f�r rundung | |
| 302 newSafetystopDepth = (newSafetystopDepth * 3) / 10; | |
| 303 } | |
| 304 | |
| 305 | |
| 306 settingsGetPointer()->safetystopDuration = newSafetystopDuration; | |
| 307 settingsGetPointer()->safetystopDepth = newSafetystopDepth; | |
| 308 | |
| 309 tMenuEdit_newInput(editId, newSafetystopDuration, newSafetystopDepth, 0, 0); | |
| 310 return UPDATE_AND_EXIT_TO_MENU; | |
| 311 } | |
| 312 if(action == ACTION_BUTTON_NEXT) | |
| 313 { | |
| 314 digitContentNew = digitContent + 1; | |
| 315 if(blockNumber == 0) | |
| 316 { | |
| 317 if(digitContentNew > '5') | |
| 318 digitContentNew = '0'; | |
| 319 } | |
| 320 else | |
| 321 { | |
| 322 if(settingsGetPointer()->nonMetricalSystem == 0) | |
| 323 { | |
| 324 if(digitContentNew > '6') | |
| 325 digitContentNew = '3'; | |
| 326 } | |
| 327 else | |
| 328 { | |
| 329 if(digitContent < 13 + '0') | |
| 330 digitContentNew = 13 + '0'; | |
| 331 else if(digitContent < 16 + '0') | |
| 332 digitContentNew = 16 + '0'; | |
| 333 else if(digitContent < 20 + '0') | |
| 334 digitContentNew = 20 + '0'; | |
| 335 else | |
| 336 digitContentNew = 10 + '0'; | |
| 337 } | |
| 338 } | |
| 339 return digitContentNew; | |
| 340 } | |
| 341 if(action == ACTION_BUTTON_BACK) | |
| 342 { | |
| 343 digitContentNew = digitContent - 1; | |
| 344 if(blockNumber == 0) | |
| 345 { | |
| 346 if(digitContentNew < '0') | |
| 347 digitContentNew = '5'; | |
| 348 } | |
| 349 else | |
| 350 { | |
| 351 if(settingsGetPointer()->nonMetricalSystem == 0) | |
| 352 { | |
| 353 if(digitContentNew < '3') | |
| 354 digitContentNew = '6'; | |
| 355 } | |
| 356 else | |
| 357 { | |
| 358 if(digitContent >= 20 + '0') | |
| 359 digitContentNew = 16 + '0'; | |
| 360 else if(digitContent >= 16 + '0') | |
| 361 digitContentNew = 13 + '0'; | |
| 362 else if(digitContent >= 13 + '0') | |
| 363 digitContentNew = 10 + '0'; | |
| 364 else | |
| 365 digitContentNew = 20 + '0'; | |
| 366 } | |
| 367 } | |
| 368 return digitContentNew; | |
| 369 } | |
| 370 return EXIT_TO_MENU; | |
| 371 } | |
| 372 | |
| 373 | |
| 374 void openEdit_Salinity(void) | |
| 375 { | |
| 376 char text[32]; | |
| 377 uint16_t y_line; | |
| 378 | |
| 379 text[0] = '\001'; | |
| 380 text[1] = TXT_Salinity; | |
| 381 text[2] = 0; | |
| 382 write_topline(text); | |
| 383 | |
| 384 y_line = ME_Y_LINE_BASE + (lineSelected * ME_Y_LINE_STEP); | |
| 385 | |
| 386 write_label_fix( 30, 800, y_line, &FontT48, TXT_Salinity); | |
| 387 write_label_var( 400, 800, y_line, &FontT48, "\016\016 %\017"); | |
| 388 | |
| 389 write_field_udigit(StMDECO6_SALINITY, 370, 800, y_line, &FontT48, "#", (uint32_t)settingsGetPointer()->salinity, 0, 0, 0); | |
| 390 | |
| 391 write_buttonTextline(TXT2BYTE_ButtonMinus,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonPlus); | |
| 392 | |
| 393 setEvent(StMDECO6_SALINITY, (uint32_t)OnAction_Salinity); | |
| 394 startEdit(); | |
| 395 } | |
| 396 | |
| 397 | |
| 398 uint8_t OnAction_Salinity(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 399 { | |
| 400 SSettings *pSettings; | |
| 401 uint8_t digitContentNew; | |
| 402 uint32_t salinity; | |
| 403 | |
| 404 if(action == ACTION_BUTTON_ENTER) | |
| 405 { | |
| 406 return digitContent; | |
| 407 } | |
| 408 if(action == ACTION_BUTTON_ENTER_FINAL) | |
| 409 { | |
| 410 evaluateNewString(editId, &salinity, 0, 0, 0); | |
| 411 | |
| 412 if(salinity >= 4) | |
| 413 salinity = 4; | |
| 414 | |
| 415 pSettings = settingsGetPointer(); | |
| 416 | |
| 417 pSettings->salinity = salinity; | |
| 418 | |
| 419 tMenuEdit_newInput(editId, salinity, 0, 0, 0); | |
| 420 return UPDATE_AND_EXIT_TO_MENU; | |
| 421 } | |
| 422 if(action == ACTION_BUTTON_NEXT) | |
| 423 { | |
| 424 digitContentNew = digitContent + 1; | |
| 425 if(digitContentNew > '4') | |
| 426 digitContentNew = '0'; | |
| 427 return digitContentNew; | |
| 428 } | |
| 429 if(action == ACTION_BUTTON_BACK) | |
| 430 { | |
| 431 digitContentNew = digitContent - 1; | |
| 432 if(digitContentNew < '0') | |
| 433 digitContentNew = '4'; | |
| 434 return digitContentNew; | |
| 435 } | |
| 436 | |
| 437 return EXIT_TO_MENU; | |
| 438 } | |
| 439 | |
| 440 | |
| 441 void openEdit_ppO2max(void) | |
| 442 { | |
| 443 uint8_t maxL_std, maxL_deco; | |
| 444 uint16_t y_line; | |
| 445 char text[32]; | |
| 446 SSettings *pSettings = settingsGetPointer(); | |
| 447 | |
| 448 maxL_std = pSettings->ppO2_max_std - 100; | |
| 449 maxL_deco = pSettings->ppO2_max_deco - 100; | |
| 450 | |
| 451 y_line = ME_Y_LINE_BASE + (lineSelected * ME_Y_LINE_STEP); | |
| 452 | |
| 453 text[0] = '\001'; | |
| 454 text[1] = TXT_ppO2Name; | |
| 455 text[2] = 0; | |
| 456 write_topline(text); | |
| 457 | |
| 458 strcpy(text,"ppO2\016\016max\017"); | |
| 459 write_label_var( 20, 800, y_line, &FontT48, text); | |
| 460 strcpy(text, | |
| 461 "\016\016" | |
| 462 " bar " | |
| 463 " deco " | |
| 464 "\017" | |
| 465 " " | |
| 466 "\016\016" | |
| 467 " bar" | |
| 468 "\017" | |
| 469 ); | |
| 470 write_label_var( 460, 800, y_line, &FontT48, text); | |
| 471 | |
| 472 // write_field_udigit(StMDECO4_PPO2Max, 410, 800, y_line, &FontT48, "## ##", (uint32_t)maxL_std, (uint32_t)maxL_deco, 0, 0); | |
| 473 write_field_udigit(StMDECO3_PPO2Max, 370, 800, y_line, &FontT48, "1.## 1.##", (uint32_t)maxL_std, (uint32_t)maxL_deco, 0, 0); | |
| 474 | |
| 475 write_buttonTextline(TXT2BYTE_ButtonMinus,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonPlus); | |
| 476 | |
| 477 setEvent(StMDECO3_PPO2Max, (uint32_t)OnAction_ppO2Max); | |
| 478 startEdit(); | |
| 479 } | |
| 480 | |
| 481 | |
| 482 uint8_t OnAction_ppO2Max(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 483 { | |
| 484 SSettings *pSettings; | |
| 485 uint8_t digitContentNew; | |
| 486 uint32_t newPPO2LStd, newPPO2LDeco; | |
| 487 | |
| 488 if(action == ACTION_BUTTON_ENTER) | |
| 489 { | |
| 490 return digitContent; | |
| 491 } | |
| 492 if(action == ACTION_BUTTON_ENTER_FINAL) | |
| 493 { | |
| 494 evaluateNewString(editId, &newPPO2LStd, &newPPO2LDeco, 0, 0); | |
| 495 | |
| 496 if(newPPO2LStd > 90) | |
| 497 newPPO2LStd = 90; | |
| 498 | |
| 499 if(newPPO2LDeco > 90) | |
| 500 newPPO2LDeco = 90; | |
| 501 | |
| 502 pSettings = settingsGetPointer(); | |
| 503 pSettings->ppO2_max_std = 100 + newPPO2LStd; | |
| 504 pSettings->ppO2_max_deco = 100 + newPPO2LDeco; | |
| 505 | |
| 506 tMenuEdit_newInput(editId, newPPO2LStd, newPPO2LDeco, 0, 0); | |
| 507 return UPDATE_AND_EXIT_TO_MENU; | |
| 508 } | |
| 509 if(action == ACTION_BUTTON_NEXT) | |
| 510 { | |
| 511 digitContentNew = digitContent + 1; | |
| 512 if(digitContentNew > '9') | |
| 513 digitContentNew = '0'; | |
| 514 return digitContentNew; | |
| 515 } | |
| 516 if(action == ACTION_BUTTON_BACK) | |
| 517 { | |
| 518 digitContentNew = digitContent - 1; | |
| 519 if(digitContentNew < '0') | |
| 520 digitContentNew = '9'; | |
| 521 return digitContentNew; | |
| 522 } | |
| 523 return EXIT_TO_MENU; | |
| 524 } | |
| 525 | |
| 526 | |
| 527 void openEdit_FutureTTS(void) | |
| 528 { | |
| 529 uint8_t futureTTS; | |
| 530 uint16_t y_line; | |
| 531 | |
| 532 char text[32]; | |
| 533 SSettings *pSettings = settingsGetPointer(); | |
| 534 futureTTS = pSettings->future_TTS; | |
| 535 | |
| 536 y_line = ME_Y_LINE_BASE + (lineSelected * ME_Y_LINE_STEP); | |
| 537 | |
| 538 text[0] = '\001'; | |
| 539 text[1] = TXT_FutureTTS; | |
| 540 text[2] = 0; | |
| 541 write_topline(text); | |
| 542 | |
| 543 strcpy(text,"\016\016"); | |
| 544 text[2] = TXT_Minutes; | |
| 545 text[3] = 0; | |
| 546 write_label_fix( 20, 800, y_line, &FontT48, TXT_FutureTTS); | |
| 547 write_label_var( 435, 800, y_line, &FontT48, text); | |
| 548 write_field_2digit(StMDECO5_FUTURE, 370, 500, y_line, &FontT48, "##", (uint32_t)futureTTS, 0, 0, 0); | |
| 549 | |
| 550 write_buttonTextline(TXT2BYTE_ButtonMinus,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonPlus); | |
| 551 | |
| 552 setEvent(StMDECO5_FUTURE, (uint32_t)OnAction_FutureTTS); | |
| 553 startEdit(); | |
| 554 } | |
| 555 | |
| 556 | |
| 557 uint8_t OnAction_FutureTTS(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 558 { | |
| 559 SSettings *pSettings; | |
| 560 int8_t digitContentNew; | |
| 561 uint32_t newFutureTTS; | |
| 562 | |
| 563 if(action == ACTION_BUTTON_ENTER) | |
| 564 { | |
| 565 return digitContent; | |
| 566 } | |
| 567 if(action == ACTION_BUTTON_ENTER_FINAL) | |
| 568 { | |
| 569 evaluateNewString(editId, &newFutureTTS, 0, 0, 0); | |
| 570 | |
| 571 if(newFutureTTS > 15) | |
| 572 newFutureTTS = 15; | |
| 573 | |
| 574 pSettings = settingsGetPointer(); | |
| 575 pSettings->future_TTS = newFutureTTS; | |
| 576 | |
| 577 tMenuEdit_newInput(editId, newFutureTTS, 0, 0, 0); | |
| 578 return UPDATE_AND_EXIT_TO_MENU; | |
| 579 } | |
| 580 if(action == ACTION_BUTTON_NEXT) | |
| 581 { | |
| 582 digitContentNew = digitContent + 1; | |
| 583 if(digitContentNew > '0'+ 15) | |
| 584 digitContentNew = '0'; | |
| 585 return digitContentNew; | |
| 586 } | |
| 587 if(action == ACTION_BUTTON_BACK) | |
| 588 { | |
| 589 digitContentNew = digitContent - 1; | |
| 590 if(digitContentNew < '0') | |
| 591 digitContentNew = '0' + 15; | |
| 592 return digitContentNew; | |
| 593 } | |
| 594 /* | |
| 595 if(action == ACTION_BUTTON_NEXT) | |
| 596 { | |
| 597 digitContentNew = digitContent + 1; | |
| 598 if((digitNumber == 0) && (digitContentNew > '1')) | |
| 599 digitContentNew = '0'; | |
| 600 else | |
| 601 if(digitContentNew > '9') | |
| 602 digitContentNew = '0'; | |
| 603 return digitContentNew; | |
| 604 } | |
| 605 if(action == ACTION_BUTTON_BACK) | |
| 606 { | |
| 607 digitContentNew = digitContent - 1; | |
| 608 if((digitNumber == 0) && (digitContentNew < '0')) | |
| 609 digitContentNew = '1'; | |
| 610 else | |
| 611 if(digitContentNew < '0') | |
| 612 digitContentNew = '9'; | |
| 613 return digitContentNew; | |
| 614 } | |
| 615 */ | |
| 616 return EXIT_TO_MENU; | |
| 617 } | |
| 618 | |
| 619 |
