# HG changeset patch # User Ideenmodellierer # Date 1560223809 -7200 # Node ID b111fc4250e91a11fe2fd4df47fa40d3c6f52c3d # Parent fc5e9fdcb15604dddc21009cc1b652b467de8cee Pass action to customer vie update function. By intoducing shakes the reason for calling an update may not only be the middle button. To be able to handle positiv and negativ shake events the action is now provided to the update function diff -r fc5e9fdcb156 -r b111fc4250e9 Discovery/Inc/base.h --- a/Discovery/Inc/base.h Fri May 24 22:01:46 2019 +0200 +++ b/Discovery/Inc/base.h Tue Jun 11 05:30:09 2019 +0200 @@ -86,6 +86,8 @@ ACTION_BUTTON_NEXT, ACTION_BUTTON_ENTER, ACTION_BUTTON_ENTER_FINAL, + ACTION_SHAKE_POS, + ACTION_SHAKE_NEG, ACTION_END } SAction; diff -r fc5e9fdcb156 -r b111fc4250e9 Discovery/Inc/t7.h --- a/Discovery/Inc/t7.h Fri May 24 22:01:46 2019 +0200 +++ b/Discovery/Inc/t7.h Tue Jun 11 05:30:09 2019 +0200 @@ -40,7 +40,7 @@ void t7_refresh_customview_old(void); void t7_change_field(void); -void t7_change_customview(void); +void t7_change_customview(uint8_t action); void t7_set_field_to_primary(void); void t7_set_customview_to_primary(void); diff -r fc5e9fdcb156 -r b111fc4250e9 Discovery/Inc/tHome.h --- a/Discovery/Inc/tHome.h Fri May 24 22:01:46 2019 +0200 +++ b/Discovery/Inc/tHome.h Tue Jun 11 05:30:09 2019 +0200 @@ -116,7 +116,7 @@ void tHome_sleepmode_fun(void); void set_globalState_tHome(void); void tHome_change_field_button_pressed(void); -void tHome_change_customview_button_pressed(void); +void tHome_change_customview_button_pressed(uint8_t action); void tHome_findNextStop(const uint16_t *list, uint8_t *depthOut, uint16_t *lengthOut); void tHomeDiveMenuControl(uint8_t sendAction); diff -r fc5e9fdcb156 -r b111fc4250e9 Discovery/Src/base.c --- a/Discovery/Src/base.c Fri May 24 22:01:46 2019 +0200 +++ b/Discovery/Src/base.c Tue Jun 11 05:30:09 2019 +0200 @@ -238,6 +238,7 @@ static void TIM_DEMO_init(void); #endif + //#include "lodepng.h" //#include // for malloc and free @@ -519,7 +520,11 @@ if(DETECT_NEG_SHAKE == detectShake(stateRealGetPointer()->lifeData.compass_pitch)) { - StoreButtonAction((uint8_t)ACTION_BUTTON_ENTER); + StoreButtonAction((uint8_t)ACTION_SHAKE_NEG); + } + if(DETECT_POS_SHAKE == detectShake(stateRealGetPointer()->lifeData.compass_pitch)) + { + StoreButtonAction((uint8_t)ACTION_SHAKE_POS); } // Enable this to make the simulator write a logbook entry @@ -910,14 +915,16 @@ set_globalState(StD); } else tHome_change_field_button_pressed(); - } else if (action == ACTION_BUTTON_ENTER) { - if ((status.page == PageDive) && (status.line == 0)) - tHome_change_customview_button_pressed(); - else if (status.page == PageSurface) - tHome_change_customview_button_pressed(); - else - tHomeDiveMenuControl(action); - } + } else if ((action == ACTION_BUTTON_ENTER) || (action == ACTION_SHAKE_NEG) || (action == ACTION_SHAKE_POS)) + { + + if ((status.page == PageDive) && (status.line == 0)) + tHome_change_customview_button_pressed(action); + else if (status.page == PageSurface) + tHome_change_customview_button_pressed(action); + else + tHomeDiveMenuControl(action); + } break; case BaseMenu: diff -r fc5e9fdcb156 -r b111fc4250e9 Discovery/Src/t7.c --- a/Discovery/Src/t7.c Fri May 24 22:01:46 2019 +0200 +++ b/Discovery/Src/t7.c Tue Jun 11 05:30:09 2019 +0200 @@ -1479,9 +1479,10 @@ selection_customview = settingsGetPointer()->tX_customViewPrimary; } -void t7_change_customview(void) +void t7_change_customview(uint8_t action) { const uint8_t *pViews; + uint8_t *pStartView,*pCurView, *pLastView; _Bool cv_disabled = 0; if(stateUsed->mode == MODE_DIVE) @@ -1489,21 +1490,37 @@ else pViews = customviewsSurface; - while((*pViews != CVIEW_END) && (*pViews != selection_customview)) - {pViews++;} - - if(*pViews < CVIEW_END) - pViews++; - - - if(*pViews == CVIEW_END) + pStartView = pViews; + /* set pointer to currently selected view and count number of entries */ + while((*pViews != CVIEW_END)) + { + if (*pViews == selection_customview) + { + pCurView = pViews; + } + pViews++; + } + pLastView = pViews; + pViews = pCurView; + + if((action == ACTION_BUTTON_ENTER) || (action == ACTION_SHAKE_POS)) { - if(stateUsed->mode == MODE_DIVE) - pViews = customviewsDive; - else - pViews = customviewsSurface; + if(*pViews < CVIEW_END) + pViews++; + + if(*pViews == CVIEW_END) + { + pViews = pStartView; + } } - + else + { + pViews--; + if(pViews = pStartView) + { + pViews = pLastView - 1; + } + } if(stateUsed->mode == MODE_DIVE) { do @@ -1524,16 +1541,24 @@ cv_disabled = 1; } - if(cv_disabled) + if(cv_disabled) /* view is disabled => jump to next view */ { - if(*pViews < CVIEW_END) - { - pViews++; - } - else - { - pViews = customviewsDive; - } + if((action == ACTION_BUTTON_ENTER) || (action == ACTION_SHAKE_POS)) + { + pViews++; + if(*pViews == CVIEW_END) + { + pViews = pStartView; + } + } + else + { + pViews--; + if(pViews == pStartView) + { + pViews = pLastView - 1; + } + } } } while(cv_disabled); } @@ -1570,11 +1595,11 @@ pSettings = settingsGetPointer(); if((selection_customview == CVIEW_sensors) &&(stateUsed->diveSettings.ccrOption == 0)) - t7_change_customview(); + t7_change_customview(ACTION_BUTTON_ENTER); if((selection_customview == CVIEW_sensors_mV) &&(stateUsed->diveSettings.ccrOption == 0)) - t7_change_customview(); + t7_change_customview(ACTION_BUTTON_ENTER); if((selection_customview == CVIEW_sensors) &&(stateUsed->diveSettings.ccrOption == 0)) - t7_change_customview(); + t7_change_customview(ACTION_BUTTON_ENTER); switch(selection_customview) { diff -r fc5e9fdcb156 -r b111fc4250e9 Discovery/Src/tHome.c --- a/Discovery/Src/tHome.c Fri May 24 22:01:46 2019 +0200 +++ b/Discovery/Src/tHome.c Tue Jun 11 05:30:09 2019 +0200 @@ -42,6 +42,7 @@ #include "tMenuEditGasOC.h" // for openEdit_DiveSelectBetterGas() #include "tMenuEditSetpoint.h" // for openEdit_DiveSelectBetterSetpoint() #include "simulation.h" +#include "motion.h" /* Private types -------------------------------------------------------------*/ @@ -330,11 +331,11 @@ } -void tHome_change_customview_button_pressed(void) +void tHome_change_customview_button_pressed(uint8_t action) { tHome_tick_count_cview = 0; if(settingsGetPointer()->design == 7) - t7_change_customview(); + t7_change_customview(action); else if(settingsGetPointer()->design == 3) t3_change_customview();