Mercurial > public > ostc4
comparison Discovery/Src/t3.c @ 387:0dbb74be972f
Merged in Ideenmodellierer/ostc4/MotionDetection (pull request #34)
MotionDetection
author | heinrichsweikamp <bitbucket@heinrichsweikamp.com> |
---|---|
date | Sun, 24 Nov 2019 15:46:58 +0000 (2019-11-24) |
parents | 39c147e47c1c |
children | 65c7b009136f |
comparison
equal
deleted
inserted
replaced
358:c6a084d1433f | 387:0dbb74be972f |
---|---|
56 | 56 |
57 /* TEM HAS TO MOVE TO GLOBAL--------------------------------------------------*/ | 57 /* TEM HAS TO MOVE TO GLOBAL--------------------------------------------------*/ |
58 | 58 |
59 /* Private types -------------------------------------------------------------*/ | 59 /* Private types -------------------------------------------------------------*/ |
60 #define TEXTSIZE 16 | 60 #define TEXTSIZE 16 |
61 #define NUMBER_OF_VIEWS 7 /* number of views defined in the array below */ | |
61 | 62 |
62 const uint8_t t3_customviewsStandard[] = | 63 const uint8_t t3_customviewsStandard[] = |
63 { | 64 { |
64 CVIEW_T3_Decostop, | 65 CVIEW_T3_Decostop, |
65 CVIEW_sensors, | 66 CVIEW_sensors, |
257 depthChangeRate = (uint8_t)(0 - stateUsed->lifeData.ascent_rate_meter_per_min); | 258 depthChangeRate = (uint8_t)(0 - stateUsed->lifeData.ascent_rate_meter_per_min); |
258 else | 259 else |
259 depthChangeRate = 200; | 260 depthChangeRate = 200; |
260 } | 261 } |
261 start.y = tXl1->WindowY0 - 1; | 262 start.y = tXl1->WindowY0 - 1; |
263 startZeroLine.y = start.y; | |
262 for(int i = 0; i<5;i++) | 264 for(int i = 0; i<5;i++) |
263 { | 265 { |
264 start.y += 40; | 266 start.y += 40; |
265 stop.y = start.y; | 267 stop.y = start.y; |
266 start.x = tXl1->WindowX1 - 1; | 268 start.x = tXl1->WindowX1 - 1; |
482 | 484 |
483 | 485 |
484 | 486 |
485 void t3_refresh_customview(float depth) | 487 void t3_refresh_customview(float depth) |
486 { | 488 { |
489 #if 0 | |
487 if((t3_selection_customview == CVIEW_sensors) &&(stateUsed->diveSettings.ccrOption == 0)) | 490 if((t3_selection_customview == CVIEW_sensors) &&(stateUsed->diveSettings.ccrOption == 0)) |
488 t3_change_customview(); | 491 t3_change_customview(); |
489 | 492 #endif |
490 t3_basics_refresh_customview(depth, t3_selection_customview, &t3screen, &t3c1, &t3c2, stateUsedWrite->diveSettings.diveMode); | 493 t3_basics_refresh_customview(depth, t3_selection_customview, &t3screen, &t3c1, &t3c2, stateUsedWrite->diveSettings.diveMode); |
491 } | 494 } |
492 | 495 |
493 | 496 |
494 void t3_basics_refresh_apnoeRight(float depth, uint8_t tX_selection_customview, GFX_DrawCfgScreen *tXscreen, GFX_DrawCfgWindow* tXc1, GFX_DrawCfgWindow* tXc2, uint8_t mode) | 497 void t3_basics_refresh_apnoeRight(float depth, uint8_t tX_selection_customview, GFX_DrawCfgScreen *tXscreen, GFX_DrawCfgWindow* tXc1, GFX_DrawCfgWindow* tXc2, uint8_t mode) |
1057 GFX_write_string(&FontT48,&t3c2,text,1); | 1060 GFX_write_string(&FontT48,&t3c2,text,1); |
1058 } | 1061 } |
1059 } | 1062 } |
1060 | 1063 |
1061 | 1064 |
1062 void t3_change_customview(void) | 1065 void t3_change_customview(uint8_t action) |
1063 { | 1066 { |
1064 t3_basics_change_customview(&t3_selection_customview, t3_customviews); | 1067 t3_basics_change_customview(&t3_selection_customview, t3_customviews, action); |
1065 } | 1068 } |
1066 | 1069 |
1067 | 1070 |
1068 void t3_basics_change_customview(uint8_t *tX_selection_customview, const uint8_t *tX_customviews) | 1071 void t3_basics_change_customview(uint8_t *tX_selection_customview, const uint8_t *tX_customviews, uint8_t action) |
1069 { | 1072 { |
1070 const SDecoinfo * pDecoinfo; | 1073 const SDecoinfo * pDecoinfo; |
1071 if(stateUsed->diveSettings.deco_type.ub.standard == GF_MODE) | 1074 if(stateUsed->diveSettings.deco_type.ub.standard == GF_MODE) |
1072 pDecoinfo = &stateUsed->decolistBuehlmann; | 1075 pDecoinfo = &stateUsed->decolistBuehlmann; |
1073 else | 1076 else |
1074 pDecoinfo = &stateUsed->decolistVPM; | 1077 pDecoinfo = &stateUsed->decolistVPM; |
1075 | 1078 |
1076 const uint8_t *pViews; | 1079 uint8_t *pViews; |
1077 pViews = tX_customviews; | 1080 pViews = tX_customviews; |
1078 | 1081 |
1079 while((*pViews != CVIEW_T3_END) && (*pViews != *tX_selection_customview)) | 1082 uint8_t *pStartView,*pCurView, *pLastView; |
1080 {pViews++;} | 1083 uint8_t iterate = 0; /* set to 1 if a view has to be skipped */ |
1081 | 1084 |
1082 if(*pViews < CVIEW_T3_END) | 1085 pStartView = pViews; |
1083 pViews++; | 1086 /* set pointer to currently selected view and count number of entries */ |
1084 | 1087 while((*pViews != CVIEW_T3_END)) |
1085 if((*pViews == CVIEW_T3_TTS) && !pDecoinfo->output_time_to_surface_seconds) | 1088 { |
1086 pViews++; | 1089 if (*pViews == *tX_selection_customview) |
1087 | 1090 { |
1088 if(*pViews == CVIEW_T3_END) | 1091 pCurView = pViews; |
1089 { | 1092 } |
1090 *tX_selection_customview = tX_customviews[0]; | 1093 pViews++; |
1091 } | 1094 } |
1092 else | 1095 pLastView = pViews; |
1093 *tX_selection_customview = *pViews; | 1096 pViews = pCurView; |
1097 | |
1098 do | |
1099 { | |
1100 iterate = 0; | |
1101 if((action == ACTION_BUTTON_ENTER) || (action == ACTION_PITCH_POS)) | |
1102 { | |
1103 if(*pViews != CVIEW_T3_END) | |
1104 pViews++; | |
1105 | |
1106 if(*pViews == CVIEW_T3_END) | |
1107 { | |
1108 pViews = pStartView; | |
1109 } | |
1110 } | |
1111 else | |
1112 { | |
1113 if(pViews == pStartView) | |
1114 { | |
1115 pViews = pLastView - 1; | |
1116 } | |
1117 else | |
1118 { | |
1119 pViews--; | |
1120 } | |
1121 } | |
1122 if((*pViews == CVIEW_sensors) &&(stateUsed->diveSettings.ccrOption == 0)) | |
1123 { | |
1124 iterate = 1; | |
1125 } | |
1126 if((*pViews == CVIEW_T3_TTS) && !pDecoinfo->output_time_to_surface_seconds) | |
1127 { | |
1128 iterate = 1; | |
1129 } | |
1130 }while (iterate == 1); | |
1131 | |
1132 *tX_selection_customview = *pViews; | |
1094 } | 1133 } |
1095 | 1134 |
1096 | 1135 |
1097 void t3_basics_colorscheme_mod(char *text) | 1136 void t3_basics_colorscheme_mod(char *text) |
1098 { | 1137 { |
1249 center.y = 116; | 1288 center.y = 116; |
1250 GFX_draw_circle(tXscreen, center, 106, CLUT_Font030); | 1289 GFX_draw_circle(tXscreen, center, 106, CLUT_Font030); |
1251 GFX_draw_circle(tXscreen, center, 107, CLUT_Font030); | 1290 GFX_draw_circle(tXscreen, center, 107, CLUT_Font030); |
1252 GFX_draw_circle(tXscreen, center, 108, CLUT_Font030); | 1291 GFX_draw_circle(tXscreen, center, 108, CLUT_Font030); |
1253 } | 1292 } |
1293 | |
1294 uint8_t t3_GetEnabled_customviews() | |
1295 { | |
1296 int8_t i; | |
1297 uint8_t enabledViewCnt = 0; | |
1298 uint32_t cv_config = settingsGetPointer()->cv_configuration; | |
1299 | |
1300 i=0; | |
1301 do | |
1302 { | |
1303 if(cv_changelist[i] == CVIEW_sensors) /* at the moment specific big font view may not be selected. Only sensor setting is taken from t7 configuration */ | |
1304 { | |
1305 if(!CHECK_BIT_THOME(cv_config, cv_changelist[i])) | |
1306 { | |
1307 enabledViewCnt = NUMBER_OF_VIEWS - 1; /* sensor shall not be displayed */ | |
1308 } | |
1309 else | |
1310 { | |
1311 enabledViewCnt = NUMBER_OF_VIEWS; /* enable all possible views */ | |
1312 } | |
1313 break; | |
1314 } | |
1315 i++; | |
1316 } while(cv_changelist[i] != CVIEW_END); | |
1317 if ((stateUsed->diveSettings.ppo2sensors_deactivated) || (stateUsed->diveSettings.ccrOption == 0)) | |
1318 { | |
1319 enabledViewCnt = NUMBER_OF_VIEWS - 1; /* sensor shall not be displayed */ | |
1320 } | |
1321 | |
1322 return enabledViewCnt; | |
1323 } | |
1324 | |
1325 |