diff options
author | Oxore <oxore@protonmail.com> | 2023-03-03 00:02:25 +0300 |
---|---|---|
committer | Oxore <oxore@protonmail.com> | 2023-03-03 00:24:54 +0300 |
commit | 2a260911f5abc4e03cb41474a49e01a571395155 (patch) | |
tree | a2342b619430d52c06cc90f37ad19b1eba3b7a10 /Libraries/Button/button_handler.c | |
parent | d16620e6ba7467e9ef99bf61336ccd8fb4dfd813 (diff) |
Remove precious comments, change encoding to utf-8
Diffstat (limited to 'Libraries/Button/button_handler.c')
-rw-r--r-- | Libraries/Button/button_handler.c | 153 |
1 files changed, 54 insertions, 99 deletions
diff --git a/Libraries/Button/button_handler.c b/Libraries/Button/button_handler.c index 8df1e6b..7c3ea91 100644 --- a/Libraries/Button/button_handler.c +++ b/Libraries/Button/button_handler.c @@ -3,48 +3,39 @@ #include "nixie_driver_process.h" -// FreeRTOS includes +// FreeRTOS includes #include "FreeRTOS.h" #include "task.h" #include "queue.h" -// Обработчик нажатий представляет собой конечный автомат для обработки -// результата работы сенсорной библиотеки, обработки комбинаций и времени -// нажатий и выдачи результата во внешнюю программу +// Обработчик нажатий представляет СЃРѕР±РѕР№ конечный автомат для обработки +// результата работы сенсорной библиотеки, обработки комбинаций Рё времени +// нажатий Рё выдачи результата РІРѕ внешнюю программу -#define TIME_BUTTON_LONG_PRESS 1000 // 3 секунды для долгого жмака +#define TIME_BUTTON_LONG_PRESS 1000 // 3 секунды для долгого жмака -// Состояние конечного автомата обработчика нажатий +// Состояние конечного автомата обработчика нажатий typedef enum { - BUTTON_STATE_START = 0, BUTTON_STATE_ONE_BUT_IS_PRESSING_NOW, BUTTON_STATE_TWO_BUTS_AND_TIMER, BUTTON_STATE_TWO_BUTS_AFTER_TIMER - } Button_FSMStates_t; -// Комбнации нажатостей кнопушек (нажата одна, зажаты две и тд.) +// Комбнации нажатостей кнопушек (нажата РѕРґРЅР°, зажаты РґРІРµ Рё тд.) enum { - BUT_COMB_NONE = 0, BUT_COMB_BUT1 = 1, BUT_COMB_BUT2 = 2, BUT_COMB_BOTH = 3 - } ; - -//extern const uint8_t tube_digits [MAX_DIGITS]; -//static uint8_t test_button_bufer[MAX_TUBES] = {TUBE_DIGIT_0}; -//static uint8_t cnt [6] = {0}; - QueueHandle_t queue_but_comb; -// - сделать в обработчике вывода индикации ламп на нижнем уровне, -// чтобы ты отправлял цифру на индикатор, а он сам уже преобразовывал +// - сделать РІ обработчике вывода индикации ламп РЅР° нижнем СѓСЂРѕРІРЅРµ, +// чтобы ты отправлял цифру РЅР° индикатор, Р° РѕРЅ сам СѓР¶Рµ преобразовывал // ---------------------------------------------------------------------------- @@ -58,155 +49,132 @@ void ButtonInit ( void ) // ---------------------------------------------------------------------------- -// Конечный автомат-обработчик нажатий кнопушек +// Конечный автомат-обработчик нажатий кнопушек // Note: -// Антидребезг в данном автомате не нужен, т.к. обработчик сенсорной библиотеки -// уже все сделал (а вот не сделал, возможно от микродребезга есть защита, -// а вот от крупного дребезга нет защиты) +// Антидребезг РІ данном автомате РЅРµ нужен, С‚.Рє. обработчик сенсорной библиотеки +// СѓР¶Рµ РІСЃРµ сделал (Р° РІРѕС‚ РЅРµ сделал, РІРѕР·РјРѕР¶РЅРѕ РѕС‚ микродребезга есть защита, +// Р° РІРѕС‚ РѕС‚ РєСЂСѓРїРЅРѕРіРѕ дребезга нет защиты) // ---------------------------------------------------------------------------- void Button_ProcessFSM ( void ) { static Button_FSMStates_t state_fsm_button = BUTTON_STATE_START; static uint8_t still_pushed = 0; - + static uint8_t prev_button_comb; static uint8_t curr_button_comb; static ButtonCombName_t msg_but_comb_name; - + switch ( state_fsm_button ) { // ------------------------------------------------------------------------- case BUTTON_STATE_START: - + curr_button_comb = Button_GetCurrButtons(); - + if ( curr_button_comb != BUT_COMB_NONE ) { prev_button_comb = curr_button_comb; state_fsm_button = BUTTON_STATE_ONE_BUT_IS_PRESSING_NOW; still_pushed = 0; } - + break; // ------------------------------------------------------------------------- case BUTTON_STATE_ONE_BUT_IS_PRESSING_NOW: - // - 1 отпустили - // - 2 нажали вторую - // - 3 вторая кнопка, но такого не должно быть(ошибка) - + // - 1 отпустили + // - 2 нажали вторую + // - 3 вторая РєРЅРѕРїРєР°, РЅРѕ такого РЅРµ должно быть(ошибка) + curr_button_comb = Button_GetCurrButtons(); - - // Сначала проверим, вдруг кнопушку отпустили + + // Сначала проверим, РІРґСЂСѓРі кнопушку отпустили if ( (curr_button_comb == BUT_COMB_NONE) && (still_pushed == 0) ) { - // - сообщ.: "Одиночный обратный жмак" - + // - СЃРѕРѕР±С‰.: "Одиночный обратный жмак" + switch ( prev_button_comb ) { case BUT_COMB_BUT1: - -// test_button_bufer[0] == TUBE_DIGIT_9 ? cnt[0] = 0 : cnt[0]++; -// test_button_bufer[0] = tube_digits [cnt[0]]; -// NixieDriver_SendValue ( &test_button_bufer[0] ); xQueueReceive ( queue_but_comb, &msg_but_comb_name, 0 ); msg_but_comb_name = BUTTON_SINGLE_FORWARD; xQueueSend ( queue_but_comb, &msg_but_comb_name, 0 ); - break; case BUT_COMB_BUT2: -// test_button_bufer[1] == TUBE_DIGIT_9 ? cnt[1] = 0 : cnt[1]++; -// test_button_bufer[1] = tube_digits [cnt[1]]; -// NixieDriver_SendValue ( &test_button_bufer[0] ); xQueueReceive ( queue_but_comb, &msg_but_comb_name, 0 ); msg_but_comb_name = BUTTON_SINGLE_BACKWARD; xQueueSend ( queue_but_comb, &msg_but_comb_name, 0 ); - break; - default: break; } - + state_fsm_button = BUTTON_STATE_START; - + return; } - + if ( (curr_button_comb == BUT_COMB_NONE) && (still_pushed == 1) ) { state_fsm_button = BUTTON_STATE_START; return; } - + switch ( prev_button_comb ) { case BUT_COMB_BUT1: - + if ( curr_button_comb == BUT_COMB_BOTH ) { - // - тогда сообщ.: "Зажатый прямой жмак вперед" -// test_button_bufer[2] == TUBE_DIGIT_9 ? cnt[2] = 0 : cnt[2]++; -// test_button_bufer[2] = tube_digits [cnt[2]]; -// -// NixieDriver_SendValue ( &test_button_bufer[0] ); + // - тогда СЃРѕРѕР±С‰.: "Зажатый РїСЂСЏРјРѕР№ жмак вперед" xQueueReceive ( queue_but_comb, &msg_but_comb_name, 0 ); //msg_but_comb_name = BUTTON_HOLD_FORWARD; msg_but_comb_name = BUTTON_HOLD_BACKWARD; xQueueSend ( queue_but_comb, &msg_but_comb_name, 0 ); - StartLTimer ( LTIMER_BUTTON_LONG_PRESS ); state_fsm_button = BUTTON_STATE_TWO_BUTS_AND_TIMER; still_pushed = 1; } - + break; - + case BUT_COMB_BUT2: - + if ( curr_button_comb == BUT_COMB_BOTH ) { - // - тогда сообщ.: "Зажатый прямой жмак назад" -// test_button_bufer[3] == TUBE_DIGIT_9 ? cnt[3] = 0 : cnt[3]++; -// test_button_bufer[3] = tube_digits [cnt[3]]; -// -// NixieDriver_SendValue ( &test_button_bufer[0] ); + // - тогда СЃРѕРѕР±С‰.: "Зажатый РїСЂСЏРјРѕР№ жмак назад" xQueueReceive ( queue_but_comb, &msg_but_comb_name, 0 ); //msg_but_comb_name = BUTTON_HOLD_BACKWARD; msg_but_comb_name = BUTTON_HOLD_FORWARD; xQueueSend ( queue_but_comb, &msg_but_comb_name, 0 ); - + StartLTimer ( LTIMER_BUTTON_LONG_PRESS ); state_fsm_button = BUTTON_STATE_TWO_BUTS_AND_TIMER; still_pushed = 1; } - + break; - + default: state_fsm_button = BUTTON_STATE_START; break; } - + break; - + // ------------------------------------------------------------------------- case BUTTON_STATE_TWO_BUTS_AND_TIMER: - + curr_button_comb = Button_GetCurrButtons(); - + if ( curr_button_comb == BUT_COMB_BOTH ) { - if ( GetLTimer (LTIMER_BUTTON_LONG_PRESS) == TIME_BUTTON_LONG_PRESS ) + if ( GetLTimer (LTIMER_BUTTON_LONG_PRESS) == TIME_BUTTON_LONG_PRESS ) { - // - сообщ.: "Две долго" -// test_button_bufer[4] == TUBE_DIGIT_9 ? cnt[4] = 0 : cnt[4]++; -// test_button_bufer[4] = tube_digits [cnt[4]]; -// -// NixieDriver_SendValue ( &test_button_bufer[0] ); + // - СЃРѕРѕР±С‰.: "Две долго" xQueueReceive ( queue_but_comb, &msg_but_comb_name, 0 ); msg_but_comb_name = BUTTON_LONG; xQueueSend ( queue_but_comb, &msg_but_comb_name, 0 ); - + state_fsm_button = BUTTON_STATE_TWO_BUTS_AFTER_TIMER; } } @@ -215,14 +183,14 @@ void Button_ProcessFSM ( void ) prev_button_comb = curr_button_comb; state_fsm_button = BUTTON_STATE_ONE_BUT_IS_PRESSING_NOW; } - + break; - - // ------------------------------------------------------------------------- + + // ------------------------------------------------------------------------- case BUTTON_STATE_TWO_BUTS_AFTER_TIMER: - + curr_button_comb = Button_GetCurrButtons(); - + if ( curr_button_comb == BUT_COMB_NONE ) { state_fsm_button = BUTTON_STATE_START; @@ -232,23 +200,10 @@ void Button_ProcessFSM ( void ) prev_button_comb = curr_button_comb; state_fsm_button = BUTTON_STATE_ONE_BUT_IS_PRESSING_NOW; } - + break; - + default: - break; + break; } } - - - - - - - - - - - - - |