pachas

Dependencies:   mbed QEI FastPWM

Committer:
miguelangel_2511
Date:
Thu Apr 16 13:22:16 2020 +0000
Revision:
2:6f618b905d4f
Parent:
1:aa5df1878126
Child:
6:d38287621cca
Los parametros del sistema fueron movidos desde tft_interface.cpp a ventilator.cpp.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
miguelangel_2511 0:9d0b9785d3d6 1
miguelangel_2511 0:9d0b9785d3d6 2 /* File inclusion */
miguelangel_2511 0:9d0b9785d3d6 3 #include "mbed.h"
miguelangel_2511 0:9d0b9785d3d6 4 #include "stdint.h"
miguelangel_2511 0:9d0b9785d3d6 5 #include "QEI.h"
miguelangel_2511 0:9d0b9785d3d6 6 #include "project_defines.h"
miguelangel_2511 0:9d0b9785d3d6 7 #include "buttons.h"
miguelangel_2511 0:9d0b9785d3d6 8 #include "encoder_interface.h"
miguelangel_2511 0:9d0b9785d3d6 9 #include "tft_interface.h"
miguelangel_2511 0:9d0b9785d3d6 10 #include "ventilator.h"
miguelangel_2511 0:9d0b9785d3d6 11
miguelangel_2511 0:9d0b9785d3d6 12
miguelangel_2511 2:6f618b905d4f 13 /* Global variable definition */
miguelangel_2511 2:6f618b905d4f 14 uint16_t volume_setpoint = VOLUME_SETPOINT_VALUE_DEFAULT;
miguelangel_2511 2:6f618b905d4f 15 uint16_t volume_measured = 480;
miguelangel_2511 2:6f618b905d4f 16 uint8_t resp_frequency = RESP_FREQUENCY_VALUE_DEFAULT;
miguelangel_2511 2:6f618b905d4f 17 float inspiration_time = INSPIRATION_TIME_VALUE_DEFAULT;
miguelangel_2511 2:6f618b905d4f 18 float expiration_time = EXPIRATION_TIME_VALUE_DEFAULT;
miguelangel_2511 2:6f618b905d4f 19 uint8_t pressure_measured = 16;
miguelangel_2511 2:6f618b905d4f 20 uint8_t gas_input = AIR_INPUT;
miguelangel_2511 0:9d0b9785d3d6 21
miguelangel_2511 2:6f618b905d4f 22
miguelangel_2511 1:aa5df1878126 23 Main_Screen_State_t main_screen_state = MAIN_SCREEN_DEFAULT_STATE;
miguelangel_2511 0:9d0b9785d3d6 24 uint8_t first_time_in_state = 1;
miguelangel_2511 0:9d0b9785d3d6 25
miguelangel_2511 0:9d0b9785d3d6 26 /* Function definition */
miguelangel_2511 0:9d0b9785d3d6 27 void TFT_Encoder_Interaction(void){
miguelangel_2511 0:9d0b9785d3d6 28
miguelangel_2511 1:aa5df1878126 29 switch(main_screen_state){
miguelangel_2511 0:9d0b9785d3d6 30 case Main_Screen_Cursor_Disable:
miguelangel_2511 0:9d0b9785d3d6 31 if(Get_Button_Press(1 << ENTER_SW)){
miguelangel_2511 0:9d0b9785d3d6 32 rotary_encoder.reset();
miguelangel_2511 1:aa5df1878126 33 main_screen_state = Main_Screen_Cursor_Enable;
miguelangel_2511 0:9d0b9785d3d6 34 }
miguelangel_2511 0:9d0b9785d3d6 35
miguelangel_2511 0:9d0b9785d3d6 36 break;
miguelangel_2511 0:9d0b9785d3d6 37
miguelangel_2511 0:9d0b9785d3d6 38 case Main_Screen_Cursor_Enable:
miguelangel_2511 0:9d0b9785d3d6 39 if(first_time_in_state){
miguelangel_2511 0:9d0b9785d3d6 40 first_time_in_state = 0;
miguelangel_2511 0:9d0b9785d3d6 41 Parameter_Selection_Box_Update();
miguelangel_2511 0:9d0b9785d3d6 42 }else if(parameter_selection_index_change_flag){
miguelangel_2511 0:9d0b9785d3d6 43 parameter_selection_index_change_flag = 0;
miguelangel_2511 0:9d0b9785d3d6 44 Parameter_Selection_Box_Update();
miguelangel_2511 0:9d0b9785d3d6 45 }else{
miguelangel_2511 0:9d0b9785d3d6 46 //Does nothing
miguelangel_2511 0:9d0b9785d3d6 47 }
miguelangel_2511 0:9d0b9785d3d6 48
miguelangel_2511 0:9d0b9785d3d6 49 if(Get_Button_Press(1 << ENTER_SW)){
miguelangel_2511 1:aa5df1878126 50 main_screen_state = (Main_Screen_State_t)(2 + parameter_selection_index);
miguelangel_2511 0:9d0b9785d3d6 51 first_time_in_state = 1;
miguelangel_2511 0:9d0b9785d3d6 52 }
miguelangel_2511 0:9d0b9785d3d6 53
miguelangel_2511 0:9d0b9785d3d6 54 break;
miguelangel_2511 0:9d0b9785d3d6 55
miguelangel_2511 0:9d0b9785d3d6 56
miguelangel_2511 0:9d0b9785d3d6 57 case Main_Screen_Volume_Setpoint_Adjust:
miguelangel_2511 0:9d0b9785d3d6 58 if(first_time_in_state){
miguelangel_2511 0:9d0b9785d3d6 59 first_time_in_state = 0;
miguelangel_2511 0:9d0b9785d3d6 60 Volume_Setpoint_Display_Update();
miguelangel_2511 0:9d0b9785d3d6 61 }else if(volume_setpoint_index_change_flag){
miguelangel_2511 0:9d0b9785d3d6 62 volume_setpoint_index_change_flag = 0;
miguelangel_2511 0:9d0b9785d3d6 63 Volume_Setpoint_Display_Update();
miguelangel_2511 0:9d0b9785d3d6 64 }else{
miguelangel_2511 0:9d0b9785d3d6 65 //Does nothing
miguelangel_2511 0:9d0b9785d3d6 66 }
miguelangel_2511 0:9d0b9785d3d6 67
miguelangel_2511 0:9d0b9785d3d6 68 if(Get_Button_Press(1 << ENTER_SW)){
miguelangel_2511 1:aa5df1878126 69 main_screen_state = Main_Screen_Cursor_Disable;
miguelangel_2511 0:9d0b9785d3d6 70 first_time_in_state = 1;
miguelangel_2511 0:9d0b9785d3d6 71 Volume_Setpoint_Fix();
miguelangel_2511 0:9d0b9785d3d6 72 Parameter_Selection_Box_Remove();
miguelangel_2511 0:9d0b9785d3d6 73 }
miguelangel_2511 0:9d0b9785d3d6 74
miguelangel_2511 0:9d0b9785d3d6 75 break;
miguelangel_2511 0:9d0b9785d3d6 76
miguelangel_2511 0:9d0b9785d3d6 77 case Main_Screen_Resp_Frequency_Adjust:
miguelangel_2511 0:9d0b9785d3d6 78 if(first_time_in_state){
miguelangel_2511 0:9d0b9785d3d6 79 first_time_in_state = 0;
miguelangel_2511 0:9d0b9785d3d6 80 Resp_Frequency_Display_Update();
miguelangel_2511 0:9d0b9785d3d6 81 }else if(resp_frequency_index_change_flag){
miguelangel_2511 0:9d0b9785d3d6 82 resp_frequency_index_change_flag = 0;
miguelangel_2511 0:9d0b9785d3d6 83 Resp_Frequency_Display_Update();
miguelangel_2511 0:9d0b9785d3d6 84 }else{
miguelangel_2511 0:9d0b9785d3d6 85 //Does nothing
miguelangel_2511 0:9d0b9785d3d6 86 }
miguelangel_2511 0:9d0b9785d3d6 87
miguelangel_2511 0:9d0b9785d3d6 88 if(Get_Button_Press(1 << ENTER_SW)){
miguelangel_2511 1:aa5df1878126 89 main_screen_state = Main_Screen_Cursor_Disable;
miguelangel_2511 0:9d0b9785d3d6 90 first_time_in_state = 1;
miguelangel_2511 0:9d0b9785d3d6 91 Resp_Frequency_Fix();
miguelangel_2511 0:9d0b9785d3d6 92 Parameter_Selection_Box_Remove();
miguelangel_2511 0:9d0b9785d3d6 93 }
miguelangel_2511 0:9d0b9785d3d6 94
miguelangel_2511 0:9d0b9785d3d6 95 break;
miguelangel_2511 0:9d0b9785d3d6 96
miguelangel_2511 0:9d0b9785d3d6 97
miguelangel_2511 0:9d0b9785d3d6 98 case Main_Screen_I_E_Ratio_Adjust:
miguelangel_2511 0:9d0b9785d3d6 99 if(first_time_in_state){
miguelangel_2511 0:9d0b9785d3d6 100 first_time_in_state = 0;
miguelangel_2511 0:9d0b9785d3d6 101 I_E_Ratio_Display_Update();
miguelangel_2511 0:9d0b9785d3d6 102 }else if(i_e_ratio_index_change_flag){
miguelangel_2511 0:9d0b9785d3d6 103 i_e_ratio_index_change_flag = 0;
miguelangel_2511 0:9d0b9785d3d6 104 I_E_Ratio_Display_Update();
miguelangel_2511 0:9d0b9785d3d6 105 }else{
miguelangel_2511 0:9d0b9785d3d6 106 //Does nothing
miguelangel_2511 0:9d0b9785d3d6 107 }
miguelangel_2511 0:9d0b9785d3d6 108
miguelangel_2511 0:9d0b9785d3d6 109 if(Get_Button_Press(1 << ENTER_SW)){
miguelangel_2511 1:aa5df1878126 110 main_screen_state = Main_Screen_Cursor_Disable;
miguelangel_2511 0:9d0b9785d3d6 111 first_time_in_state = 1;
miguelangel_2511 0:9d0b9785d3d6 112 I_E_Ratio_Fix();
miguelangel_2511 0:9d0b9785d3d6 113 Parameter_Selection_Box_Remove();
miguelangel_2511 0:9d0b9785d3d6 114 }
miguelangel_2511 0:9d0b9785d3d6 115
miguelangel_2511 0:9d0b9785d3d6 116 break;
miguelangel_2511 0:9d0b9785d3d6 117
miguelangel_2511 0:9d0b9785d3d6 118 default:
miguelangel_2511 0:9d0b9785d3d6 119 break;
miguelangel_2511 0:9d0b9785d3d6 120
miguelangel_2511 0:9d0b9785d3d6 121 }
miguelangel_2511 0:9d0b9785d3d6 122
miguelangel_2511 0:9d0b9785d3d6 123 }