comparison Discovery/Src/tMenuEditCustom.c @ 841:70092f552f5a Evo_2_23

Added autofocus for T3_DecoTTS view: a switch to the DecoTTS view will now be triggered in case a new deco stop depth is added, a deco stopp has been missed or if a new 10 minutes TTS is passed.
author Ideenmodellierer
date Sun, 07 Jan 2024 21:25:34 +0100
parents 8d6c35655d4d
children b2aad621aeb0
comparison
equal deleted inserted replaced
840:7e714662b93f 841:70092f552f5a
45 45
46 #define CV_PER_PAGE (5u) /* number of cv selections shown at one page */ 46 #define CV_PER_PAGE (5u) /* number of cv selections shown at one page */
47 #define MAX_BACKLIGHT_BOOST (2u) /* max number of backlight levels which may be increased during focus state */ 47 #define MAX_BACKLIGHT_BOOST (2u) /* max number of backlight levels which may be increased during focus state */
48 48
49 #define MAX_FOCUS_LIMITER (2u) /* max number for reducing the spot used for focus detection */ 49 #define MAX_FOCUS_LIMITER (2u) /* max number for reducing the spot used for focus detection */
50
51 /* defines for autofocus of compass */
52 #define AF_COMPASS_ACTIVATION_ANGLE (5.0f) /* angle for pitch and roll. Compass gets activated in case the value is smaller (OSTC4 hold in horitontal position */
53 #define AF_COMPASS_DEBOUNCE (10u) /* debouncing value to avoid compass activation during normal movement */
54 50
55 static uint8_t customviewsSubpage = 0; 51 static uint8_t customviewsSubpage = 0;
56 static uint8_t customviewsSubpageMax = 0; /* number of pages needed to display all selectable views */ 52 static uint8_t customviewsSubpageMax = 0; /* number of pages needed to display all selectable views */
57 static const uint8_t* pcv_curchangelist; 53 static const uint8_t* pcv_curchangelist;
58 /* Private function prototypes -----------------------------------------------*/ 54 /* Private function prototypes -----------------------------------------------*/
1106 text[textPointer] = 0; 1102 text[textPointer] = 0;
1107 write_label_var( 30, 800, ME_Y_LINE6, &FontT48, text); 1103 write_label_var( 30, 800, ME_Y_LINE6, &FontT48, text);
1108 } 1104 }
1109 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); 1105 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext);
1110 } 1106 }
1111
1112 uint8_t HandleAFCompass()
1113 {
1114 static uint8_t debounce = 0;
1115 static uint8_t lastState = AF_VIEW_NOCHANGE;
1116 uint8_t detectionState = AF_VIEW_NOCHANGE;
1117
1118 float pitch = stateRealGetPointer()->lifeData.compass_pitch;
1119 float roll = stateRealGetPointer()->lifeData.compass_roll;
1120
1121 /* OSTC in horizontal position ?*/
1122 if((pitch > -AF_COMPASS_ACTIVATION_ANGLE) && (pitch < AF_COMPASS_ACTIVATION_ANGLE) && (roll > -AF_COMPASS_ACTIVATION_ANGLE) && (roll < AF_COMPASS_ACTIVATION_ANGLE))
1123 {
1124 if(debounce < AF_COMPASS_DEBOUNCE) debounce++;
1125 if(debounce == AF_COMPASS_DEBOUNCE)
1126 {
1127 detectionState = AF_VIEW_ACTIVATED;
1128 }
1129 }
1130 else
1131 {
1132 if(debounce > 0) debounce--;
1133 if(debounce == 0)
1134 {
1135 detectionState = AF_VIEW_DEACTIVATED;
1136 }
1137 }
1138 if(detectionState) /* no state change => return 0 */
1139 {
1140 if((detectionState == lastState))
1141 {
1142 detectionState = AF_VIEW_NOCHANGE;
1143 }
1144 else
1145 {
1146 lastState = detectionState;
1147 }
1148 }
1149 return detectionState;
1150 }