pachas

Dependencies:   mbed QEI FastPWM

Committer:
miguelangel_2511
Date:
Mon Apr 20 11:39:30 2020 +0000
Revision:
6:d38287621cca
Parent:
2:6f618b905d4f
Child:
7:f4e248182d31
La pantalla TFT fue reemplazada por una pantalla Nextion que se comunica por el puerto serial (UART). El control de la pantalla sigue realizandose a traves de un encoder.

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 6:d38287621cca 9 #include "nextion_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 6:d38287621cca 27 void Nextion_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 6:d38287621cca 60 nextion_display.printf("t6.pco=%d", ADJUST_COLOR); // Change font color
miguelangel_2511 6:d38287621cca 61 nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff);
miguelangel_2511 6:d38287621cca 62 pc.printf("t6.pco=%d\n\r", ADJUST_COLOR); // Change font color
miguelangel_2511 6:d38287621cca 63 pc.printf("%c%c%c\n\r", 0xff, 0xff, 0xff);
miguelangel_2511 0:9d0b9785d3d6 64 Volume_Setpoint_Display_Update();
miguelangel_2511 0:9d0b9785d3d6 65 }else if(volume_setpoint_index_change_flag){
miguelangel_2511 0:9d0b9785d3d6 66 volume_setpoint_index_change_flag = 0;
miguelangel_2511 0:9d0b9785d3d6 67 Volume_Setpoint_Display_Update();
miguelangel_2511 0:9d0b9785d3d6 68 }else{
miguelangel_2511 0:9d0b9785d3d6 69 //Does nothing
miguelangel_2511 0:9d0b9785d3d6 70 }
miguelangel_2511 0:9d0b9785d3d6 71
miguelangel_2511 0:9d0b9785d3d6 72 if(Get_Button_Press(1 << ENTER_SW)){
miguelangel_2511 1:aa5df1878126 73 main_screen_state = Main_Screen_Cursor_Disable;
miguelangel_2511 0:9d0b9785d3d6 74 first_time_in_state = 1;
miguelangel_2511 0:9d0b9785d3d6 75 Volume_Setpoint_Fix();
miguelangel_2511 0:9d0b9785d3d6 76 Parameter_Selection_Box_Remove();
miguelangel_2511 0:9d0b9785d3d6 77 }
miguelangel_2511 0:9d0b9785d3d6 78
miguelangel_2511 0:9d0b9785d3d6 79 break;
miguelangel_2511 0:9d0b9785d3d6 80
miguelangel_2511 0:9d0b9785d3d6 81 case Main_Screen_Resp_Frequency_Adjust:
miguelangel_2511 0:9d0b9785d3d6 82 if(first_time_in_state){
miguelangel_2511 0:9d0b9785d3d6 83 first_time_in_state = 0;
miguelangel_2511 6:d38287621cca 84 nextion_display.printf("t7.pco=%d", ADJUST_COLOR); // Change font color
miguelangel_2511 6:d38287621cca 85 nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff);
miguelangel_2511 6:d38287621cca 86 pc.printf("t7.pco=%d\n\r", ADJUST_COLOR); // Change font color
miguelangel_2511 6:d38287621cca 87 pc.printf("%c%c%c\n\r", 0xff, 0xff, 0xff);
miguelangel_2511 0:9d0b9785d3d6 88 Resp_Frequency_Display_Update();
miguelangel_2511 0:9d0b9785d3d6 89 }else if(resp_frequency_index_change_flag){
miguelangel_2511 0:9d0b9785d3d6 90 resp_frequency_index_change_flag = 0;
miguelangel_2511 0:9d0b9785d3d6 91 Resp_Frequency_Display_Update();
miguelangel_2511 0:9d0b9785d3d6 92 }else{
miguelangel_2511 0:9d0b9785d3d6 93 //Does nothing
miguelangel_2511 0:9d0b9785d3d6 94 }
miguelangel_2511 0:9d0b9785d3d6 95
miguelangel_2511 0:9d0b9785d3d6 96 if(Get_Button_Press(1 << ENTER_SW)){
miguelangel_2511 1:aa5df1878126 97 main_screen_state = Main_Screen_Cursor_Disable;
miguelangel_2511 0:9d0b9785d3d6 98 first_time_in_state = 1;
miguelangel_2511 0:9d0b9785d3d6 99 Resp_Frequency_Fix();
miguelangel_2511 6:d38287621cca 100 Parameter_Selection_Box_Remove();
miguelangel_2511 0:9d0b9785d3d6 101 }
miguelangel_2511 0:9d0b9785d3d6 102
miguelangel_2511 0:9d0b9785d3d6 103 break;
miguelangel_2511 0:9d0b9785d3d6 104
miguelangel_2511 0:9d0b9785d3d6 105
miguelangel_2511 0:9d0b9785d3d6 106 case Main_Screen_I_E_Ratio_Adjust:
miguelangel_2511 0:9d0b9785d3d6 107 if(first_time_in_state){
miguelangel_2511 0:9d0b9785d3d6 108 first_time_in_state = 0;
miguelangel_2511 6:d38287621cca 109 nextion_display.printf("t8.pco=%d", ADJUST_COLOR); // Change font color
miguelangel_2511 6:d38287621cca 110 nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff);
miguelangel_2511 6:d38287621cca 111 pc.printf("t8.pco=%d\n\r", ADJUST_COLOR); // Change font color
miguelangel_2511 6:d38287621cca 112 pc.printf("%c%c%c\n\r", 0xff, 0xff, 0xff);
miguelangel_2511 0:9d0b9785d3d6 113 I_E_Ratio_Display_Update();
miguelangel_2511 0:9d0b9785d3d6 114 }else if(i_e_ratio_index_change_flag){
miguelangel_2511 0:9d0b9785d3d6 115 i_e_ratio_index_change_flag = 0;
miguelangel_2511 0:9d0b9785d3d6 116 I_E_Ratio_Display_Update();
miguelangel_2511 0:9d0b9785d3d6 117 }else{
miguelangel_2511 0:9d0b9785d3d6 118 //Does nothing
miguelangel_2511 0:9d0b9785d3d6 119 }
miguelangel_2511 0:9d0b9785d3d6 120
miguelangel_2511 0:9d0b9785d3d6 121 if(Get_Button_Press(1 << ENTER_SW)){
miguelangel_2511 1:aa5df1878126 122 main_screen_state = Main_Screen_Cursor_Disable;
miguelangel_2511 0:9d0b9785d3d6 123 first_time_in_state = 1;
miguelangel_2511 0:9d0b9785d3d6 124 I_E_Ratio_Fix();
miguelangel_2511 0:9d0b9785d3d6 125 Parameter_Selection_Box_Remove();
miguelangel_2511 0:9d0b9785d3d6 126 }
miguelangel_2511 0:9d0b9785d3d6 127
miguelangel_2511 0:9d0b9785d3d6 128 break;
miguelangel_2511 0:9d0b9785d3d6 129
miguelangel_2511 0:9d0b9785d3d6 130 default:
miguelangel_2511 0:9d0b9785d3d6 131 break;
miguelangel_2511 0:9d0b9785d3d6 132
miguelangel_2511 6:d38287621cca 133 }
miguelangel_2511 0:9d0b9785d3d6 134 }