pachas
Dependencies: mbed QEI FastPWM
nextion_interface.cpp@11:5cb7ae8bd831, 2020-05-07 (annotated)
- Committer:
- miguelangel_2511
- Date:
- Thu May 07 03:52:31 2020 +0000
- Revision:
- 11:5cb7ae8bd831
- Parent:
- 10:b2d87404309a
- Child:
- 12:3bc2465b034a
Se implemento un filtro IIIR tipo Chebyshev 2 Pasa-bajos de 30 Hz para cada sensor de presion. Asimismo, se implemento un filtro IIR Chebyshev 2 Pasa-altos de 0.01 Hz y un filtro FIR pasa-bajos de 40 Hz para la senial de flujo.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
miguelangel_2511 | 6:d38287621cca | 1 | |
miguelangel_2511 | 6:d38287621cca | 2 | #include "mbed.h" |
miguelangel_2511 | 6:d38287621cca | 3 | #include "stdint.h" |
miguelangel_2511 | 6:d38287621cca | 4 | #include "project_defines.h" |
miguelangel_2511 | 6:d38287621cca | 5 | #include "nextion_interface.h" |
miguelangel_2511 | 6:d38287621cca | 6 | #include "encoder_interface.h" |
miguelangel_2511 | 7:f4e248182d31 | 7 | #include "pressure_sensors.h" |
miguelangel_2511 | 7:f4e248182d31 | 8 | #include "stepper_motor_driver.h" |
miguelangel_2511 | 6:d38287621cca | 9 | #include "ventilator.h" |
miguelangel_2511 | 7:f4e248182d31 | 10 | |
miguelangel_2511 | 6:d38287621cca | 11 | |
miguelangel_2511 | 8:208d965a3bd2 | 12 | |
miguelangel_2511 | 6:d38287621cca | 13 | /* Object definition */ |
miguelangel_2511 | 7:f4e248182d31 | 14 | Serial nextion_display(NEXTION_DISPLAY_TX_PIN,NEXTION_DISPLAY_RX_PIN); |
miguelangel_2511 | 11:5cb7ae8bd831 | 15 | |
miguelangel_2511 | 6:d38287621cca | 16 | |
miguelangel_2511 | 6:d38287621cca | 17 | /* Global variable definition */ |
miguelangel_2511 | 6:d38287621cca | 18 | |
miguelangel_2511 | 6:d38287621cca | 19 | uint16_t volume_setpoint_display = VOLUME_SETPOINT_VALUE_DEFAULT; |
miguelangel_2511 | 6:d38287621cca | 20 | uint16_t volume_measured_display = 480; |
miguelangel_2511 | 6:d38287621cca | 21 | uint8_t resp_frequency_display = RESP_FREQUENCY_VALUE_DEFAULT; |
miguelangel_2511 | 6:d38287621cca | 22 | float inspiration_time_display = INSPIRATION_TIME_VALUE_DEFAULT; |
miguelangel_2511 | 6:d38287621cca | 23 | float expiration_time_display = EXPIRATION_TIME_VALUE_DEFAULT; |
miguelangel_2511 | 6:d38287621cca | 24 | uint8_t pressure_measured_display = 16; |
miguelangel_2511 | 11:5cb7ae8bd831 | 25 | |
miguelangel_2511 | 6:d38287621cca | 26 | |
miguelangel_2511 | 6:d38287621cca | 27 | uint16_t selection_box_coordinates[3][4]={ |
miguelangel_2511 | 6:d38287621cca | 28 | {1,1,159,159}, |
miguelangel_2511 | 6:d38287621cca | 29 | {161,1,319,159}, |
miguelangel_2511 | 6:d38287621cca | 30 | {321,1,478, 159} |
miguelangel_2511 | 6:d38287621cca | 31 | }; |
miguelangel_2511 | 6:d38287621cca | 32 | |
miguelangel_2511 | 6:d38287621cca | 33 | float i_e_ratio_display_table[I_E_RATIO_INDEX_LIMIT][2]={ |
miguelangel_2511 | 6:d38287621cca | 34 | {1.0,2.0}, |
miguelangel_2511 | 6:d38287621cca | 35 | {1.0,2.5}, |
miguelangel_2511 | 6:d38287621cca | 36 | {1.0,3.0} |
miguelangel_2511 | 6:d38287621cca | 37 | }; |
miguelangel_2511 | 6:d38287621cca | 38 | |
miguelangel_2511 | 6:d38287621cca | 39 | |
miguelangel_2511 | 6:d38287621cca | 40 | /* Function definition */ |
miguelangel_2511 | 6:d38287621cca | 41 | |
miguelangel_2511 | 6:d38287621cca | 42 | void Nextion_Interface_Initialize(void){ |
miguelangel_2511 | 6:d38287621cca | 43 | /* Configure baud rate */ |
miguelangel_2511 | 8:208d965a3bd2 | 44 | nextion_display.baud(9600); |
miguelangel_2511 | 8:208d965a3bd2 | 45 | wait(1); |
miguelangel_2511 | 8:208d965a3bd2 | 46 | nextion_display.printf("baud=%d", NEXTION_DISPLAY_BAUD_RATE); |
miguelangel_2511 | 8:208d965a3bd2 | 47 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 48 | wait(1); |
miguelangel_2511 | 7:f4e248182d31 | 49 | nextion_display.baud(NEXTION_DISPLAY_BAUD_RATE); |
miguelangel_2511 | 8:208d965a3bd2 | 50 | wait(1); |
miguelangel_2511 | 8:208d965a3bd2 | 51 | |
miguelangel_2511 | 8:208d965a3bd2 | 52 | /* Draw separators for the displayed values */ |
miguelangel_2511 | 8:208d965a3bd2 | 53 | nextion_display.printf("line 10,160,190,160,%d", WHITE); |
miguelangel_2511 | 8:208d965a3bd2 | 54 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 55 | nextion_display.printf("line 10,320,190,320,%d", WHITE); |
miguelangel_2511 | 8:208d965a3bd2 | 56 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 57 | nextion_display.printf("line 610,160,790,160,%d", WHITE); |
miguelangel_2511 | 8:208d965a3bd2 | 58 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 59 | nextion_display.printf("line 610,320,790,320,%d", WHITE); |
miguelangel_2511 | 8:208d965a3bd2 | 60 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 61 | |
miguelangel_2511 | 6:d38287621cca | 62 | /* Set font color */ |
miguelangel_2511 | 8:208d965a3bd2 | 63 | nextion_display.printf("t1.pco=%d", NORMAL_COLOR); |
miguelangel_2511 | 6:d38287621cca | 64 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 65 | nextion_display.printf("t4.pco=%d", NORMAL_COLOR); |
miguelangel_2511 | 8:208d965a3bd2 | 66 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 67 | nextion_display.printf("t7.pco=%d", NORMAL_COLOR); |
miguelangel_2511 | 6:d38287621cca | 68 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 9:95fdcdc0977e | 69 | |
miguelangel_2511 | 6:d38287621cca | 70 | /* Print default values */ |
miguelangel_2511 | 6:d38287621cca | 71 | Volume_Setpoint_Fix(); |
miguelangel_2511 | 6:d38287621cca | 72 | Resp_Frequency_Fix(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 73 | I_E_Ratio_Fix(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 74 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 75 | /* Print initial measured values */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 76 | Volume_Display_Update(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 77 | Flow_Display_Update(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 78 | Pressure_Display_Update(); |
miguelangel_2511 | 6:d38287621cca | 79 | |
miguelangel_2511 | 6:d38287621cca | 80 | } |
miguelangel_2511 | 6:d38287621cca | 81 | |
miguelangel_2511 | 6:d38287621cca | 82 | |
miguelangel_2511 | 6:d38287621cca | 83 | |
miguelangel_2511 | 6:d38287621cca | 84 | void Parameter_Selection_Box_Update(void){ |
miguelangel_2511 | 6:d38287621cca | 85 | |
miguelangel_2511 | 6:d38287621cca | 86 | /* Remove the selection box from the previous position */ |
miguelangel_2511 | 6:d38287621cca | 87 | switch(past_parameter_selection_index){ |
miguelangel_2511 | 6:d38287621cca | 88 | case 0: |
miguelangel_2511 | 8:208d965a3bd2 | 89 | nextion_display.printf("t1.pco=%d", NORMAL_COLOR); |
miguelangel_2511 | 6:d38287621cca | 90 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 91 | break; |
miguelangel_2511 | 6:d38287621cca | 92 | case 1: |
miguelangel_2511 | 8:208d965a3bd2 | 93 | nextion_display.printf("t4.pco=%d", NORMAL_COLOR); |
miguelangel_2511 | 8:208d965a3bd2 | 94 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 95 | break; |
miguelangel_2511 | 8:208d965a3bd2 | 96 | case 2: |
miguelangel_2511 | 6:d38287621cca | 97 | nextion_display.printf("t7.pco=%d", NORMAL_COLOR); |
miguelangel_2511 | 6:d38287621cca | 98 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 99 | break; |
miguelangel_2511 | 6:d38287621cca | 100 | default: |
miguelangel_2511 | 6:d38287621cca | 101 | break; |
miguelangel_2511 | 11:5cb7ae8bd831 | 102 | |
miguelangel_2511 | 6:d38287621cca | 103 | } |
miguelangel_2511 | 6:d38287621cca | 104 | |
miguelangel_2511 | 6:d38287621cca | 105 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 106 | /* Read pressure sensors if necessary */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 107 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 108 | Pressure_Sensors_Read(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 109 | Calculate_Flow_From_Pressure(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 110 | Calculate_Volume_From_Flow(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 111 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 11:5cb7ae8bd831 | 112 | } |
miguelangel_2511 | 11:5cb7ae8bd831 | 113 | |
miguelangel_2511 | 6:d38287621cca | 114 | /* Draw the selection box in the new position */ |
miguelangel_2511 | 6:d38287621cca | 115 | switch(parameter_selection_index){ |
miguelangel_2511 | 6:d38287621cca | 116 | case 0: |
miguelangel_2511 | 8:208d965a3bd2 | 117 | nextion_display.printf("t1.pco=%d", SELECT_COLOR); |
miguelangel_2511 | 6:d38287621cca | 118 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 119 | break; |
miguelangel_2511 | 6:d38287621cca | 120 | case 1: |
miguelangel_2511 | 8:208d965a3bd2 | 121 | nextion_display.printf("t4.pco=%d", SELECT_COLOR); |
miguelangel_2511 | 8:208d965a3bd2 | 122 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 123 | break; |
miguelangel_2511 | 8:208d965a3bd2 | 124 | case 2: |
miguelangel_2511 | 6:d38287621cca | 125 | nextion_display.printf("t7.pco=%d", SELECT_COLOR); |
miguelangel_2511 | 6:d38287621cca | 126 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 127 | break; |
miguelangel_2511 | 6:d38287621cca | 128 | default: |
miguelangel_2511 | 6:d38287621cca | 129 | break; |
miguelangel_2511 | 6:d38287621cca | 130 | } |
miguelangel_2511 | 11:5cb7ae8bd831 | 131 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 132 | /* Read pressure sensors if necessary */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 133 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 134 | Pressure_Sensors_Read(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 135 | Calculate_Flow_From_Pressure(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 136 | Calculate_Volume_From_Flow(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 137 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 11:5cb7ae8bd831 | 138 | } |
miguelangel_2511 | 6:d38287621cca | 139 | |
miguelangel_2511 | 6:d38287621cca | 140 | } |
miguelangel_2511 | 6:d38287621cca | 141 | |
miguelangel_2511 | 6:d38287621cca | 142 | |
miguelangel_2511 | 6:d38287621cca | 143 | void Parameter_Selection_Box_Remove(void){ |
miguelangel_2511 | 6:d38287621cca | 144 | |
miguelangel_2511 | 6:d38287621cca | 145 | /* Remove the selection box from the current position */ |
miguelangel_2511 | 6:d38287621cca | 146 | |
miguelangel_2511 | 6:d38287621cca | 147 | switch(parameter_selection_index){ |
miguelangel_2511 | 6:d38287621cca | 148 | case 0: |
miguelangel_2511 | 8:208d965a3bd2 | 149 | nextion_display.printf("t1.pco=%d", NORMAL_COLOR); |
miguelangel_2511 | 6:d38287621cca | 150 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 151 | break; |
miguelangel_2511 | 6:d38287621cca | 152 | case 1: |
miguelangel_2511 | 8:208d965a3bd2 | 153 | nextion_display.printf("t4.pco=%d", NORMAL_COLOR); |
miguelangel_2511 | 8:208d965a3bd2 | 154 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 155 | break; |
miguelangel_2511 | 8:208d965a3bd2 | 156 | case 2: |
miguelangel_2511 | 6:d38287621cca | 157 | nextion_display.printf("t7.pco=%d", NORMAL_COLOR); |
miguelangel_2511 | 6:d38287621cca | 158 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 159 | break; |
miguelangel_2511 | 6:d38287621cca | 160 | default: |
miguelangel_2511 | 6:d38287621cca | 161 | break; |
miguelangel_2511 | 6:d38287621cca | 162 | } |
miguelangel_2511 | 11:5cb7ae8bd831 | 163 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 164 | /* Read pressure sensors if necessary */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 165 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 166 | Pressure_Sensors_Read(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 167 | Calculate_Flow_From_Pressure(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 168 | Calculate_Volume_From_Flow(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 169 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 11:5cb7ae8bd831 | 170 | } |
miguelangel_2511 | 6:d38287621cca | 171 | |
miguelangel_2511 | 6:d38287621cca | 172 | } |
miguelangel_2511 | 6:d38287621cca | 173 | |
miguelangel_2511 | 6:d38287621cca | 174 | |
miguelangel_2511 | 6:d38287621cca | 175 | |
miguelangel_2511 | 6:d38287621cca | 176 | |
miguelangel_2511 | 6:d38287621cca | 177 | void Volume_Setpoint_Display_Update(void){ |
miguelangel_2511 | 6:d38287621cca | 178 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 179 | volume_setpoint_display = VOLUME_SETPOINT_MINIMUM_VALUE + (VOLUME_SETPOINT_STEP*volume_setpoint_index); |
miguelangel_2511 | 6:d38287621cca | 180 | |
miguelangel_2511 | 6:d38287621cca | 181 | /* Print volume value */ |
miguelangel_2511 | 8:208d965a3bd2 | 182 | nextion_display.printf("t1.txt=\"%d\"", volume_setpoint_display); |
miguelangel_2511 | 6:d38287621cca | 183 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 11:5cb7ae8bd831 | 184 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 185 | /* Read pressure sensors if necessary */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 186 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 187 | Pressure_Sensors_Read(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 188 | Calculate_Flow_From_Pressure(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 189 | Calculate_Volume_From_Flow(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 190 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 11:5cb7ae8bd831 | 191 | } |
miguelangel_2511 | 11:5cb7ae8bd831 | 192 | |
miguelangel_2511 | 6:d38287621cca | 193 | } |
miguelangel_2511 | 6:d38287621cca | 194 | |
miguelangel_2511 | 6:d38287621cca | 195 | |
miguelangel_2511 | 6:d38287621cca | 196 | void Volume_Setpoint_Fix(void){ |
miguelangel_2511 | 6:d38287621cca | 197 | |
miguelangel_2511 | 6:d38287621cca | 198 | volume_setpoint = volume_setpoint_display; |
miguelangel_2511 | 6:d38287621cca | 199 | stepper_parameters_update_flag = 1; |
miguelangel_2511 | 6:d38287621cca | 200 | |
miguelangel_2511 | 6:d38287621cca | 201 | /* Print volume value */ |
miguelangel_2511 | 8:208d965a3bd2 | 202 | nextion_display.printf("t1.txt=\"%d\"", volume_setpoint_display); |
miguelangel_2511 | 6:d38287621cca | 203 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 11:5cb7ae8bd831 | 204 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 205 | /* Read pressure sensors if necessary */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 206 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 207 | Pressure_Sensors_Read(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 208 | Calculate_Flow_From_Pressure(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 209 | Calculate_Volume_From_Flow(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 210 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 11:5cb7ae8bd831 | 211 | } |
miguelangel_2511 | 11:5cb7ae8bd831 | 212 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 213 | volume_ml = 0.0; |
miguelangel_2511 | 6:d38287621cca | 214 | } |
miguelangel_2511 | 6:d38287621cca | 215 | |
miguelangel_2511 | 6:d38287621cca | 216 | |
miguelangel_2511 | 6:d38287621cca | 217 | void Resp_Frequency_Display_Update(void){ |
miguelangel_2511 | 6:d38287621cca | 218 | |
miguelangel_2511 | 6:d38287621cca | 219 | resp_frequency_display = 10 + resp_frequency_index; |
miguelangel_2511 | 6:d38287621cca | 220 | |
miguelangel_2511 | 6:d38287621cca | 221 | /* Print frequency value */ |
miguelangel_2511 | 8:208d965a3bd2 | 222 | nextion_display.printf("t4.txt=\"%d\"", resp_frequency_display); |
miguelangel_2511 | 6:d38287621cca | 223 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 11:5cb7ae8bd831 | 224 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 225 | /* Read pressure sensors if necessary */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 226 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 227 | Pressure_Sensors_Read(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 228 | Calculate_Flow_From_Pressure(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 229 | Calculate_Volume_From_Flow(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 230 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 11:5cb7ae8bd831 | 231 | } |
miguelangel_2511 | 11:5cb7ae8bd831 | 232 | |
miguelangel_2511 | 6:d38287621cca | 233 | } |
miguelangel_2511 | 6:d38287621cca | 234 | |
miguelangel_2511 | 6:d38287621cca | 235 | |
miguelangel_2511 | 6:d38287621cca | 236 | void Resp_Frequency_Fix(void){ |
miguelangel_2511 | 6:d38287621cca | 237 | |
miguelangel_2511 | 6:d38287621cca | 238 | resp_frequency = resp_frequency_display; |
miguelangel_2511 | 6:d38287621cca | 239 | stepper_parameters_update_flag = 1; |
miguelangel_2511 | 6:d38287621cca | 240 | |
miguelangel_2511 | 6:d38287621cca | 241 | /* Print frequency value */ |
miguelangel_2511 | 8:208d965a3bd2 | 242 | nextion_display.printf("t4.txt=\"%d\"", resp_frequency_display); |
miguelangel_2511 | 6:d38287621cca | 243 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 11:5cb7ae8bd831 | 244 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 245 | /* Read pressure sensors if necessary */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 246 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 247 | Pressure_Sensors_Read(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 248 | Calculate_Flow_From_Pressure(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 249 | Calculate_Volume_From_Flow(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 250 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 11:5cb7ae8bd831 | 251 | } |
miguelangel_2511 | 11:5cb7ae8bd831 | 252 | |
miguelangel_2511 | 6:d38287621cca | 253 | } |
miguelangel_2511 | 6:d38287621cca | 254 | |
miguelangel_2511 | 6:d38287621cca | 255 | void I_E_Ratio_Display_Update(void){ |
miguelangel_2511 | 6:d38287621cca | 256 | |
miguelangel_2511 | 6:d38287621cca | 257 | inspiration_time_display = i_e_ratio_display_table[i_e_ratio_index][0]; |
miguelangel_2511 | 6:d38287621cca | 258 | expiration_time_display = i_e_ratio_display_table[i_e_ratio_index][1]; |
miguelangel_2511 | 6:d38287621cca | 259 | |
miguelangel_2511 | 6:d38287621cca | 260 | /* Print i:e ratio value */ |
miguelangel_2511 | 8:208d965a3bd2 | 261 | nextion_display.printf("t7.txt=\"%2.1f : %2.1f\"", inspiration_time_display, expiration_time_display); |
miguelangel_2511 | 8:208d965a3bd2 | 262 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 11:5cb7ae8bd831 | 263 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 264 | /* Read pressure sensors if necessary */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 265 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 266 | Pressure_Sensors_Read(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 267 | Calculate_Flow_From_Pressure(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 268 | Calculate_Volume_From_Flow(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 269 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 11:5cb7ae8bd831 | 270 | } |
miguelangel_2511 | 11:5cb7ae8bd831 | 271 | |
miguelangel_2511 | 6:d38287621cca | 272 | } |
miguelangel_2511 | 6:d38287621cca | 273 | |
miguelangel_2511 | 6:d38287621cca | 274 | |
miguelangel_2511 | 6:d38287621cca | 275 | void I_E_Ratio_Fix(void){ |
miguelangel_2511 | 6:d38287621cca | 276 | |
miguelangel_2511 | 6:d38287621cca | 277 | inspiration_time = inspiration_time_display; |
miguelangel_2511 | 6:d38287621cca | 278 | expiration_time = expiration_time_display; |
miguelangel_2511 | 6:d38287621cca | 279 | stepper_parameters_update_flag = 1; |
miguelangel_2511 | 6:d38287621cca | 280 | |
miguelangel_2511 | 6:d38287621cca | 281 | /* Print i:e ratio value */ |
miguelangel_2511 | 8:208d965a3bd2 | 282 | nextion_display.printf("t7.txt=\"%2.1f : %2.1f\"", inspiration_time_display, expiration_time_display); |
miguelangel_2511 | 6:d38287621cca | 283 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 11:5cb7ae8bd831 | 284 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 285 | /* Read pressure sensors if necessary */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 286 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 287 | Pressure_Sensors_Read(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 288 | Calculate_Flow_From_Pressure(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 289 | Calculate_Volume_From_Flow(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 290 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 11:5cb7ae8bd831 | 291 | } |
miguelangel_2511 | 11:5cb7ae8bd831 | 292 | |
miguelangel_2511 | 6:d38287621cca | 293 | } |
miguelangel_2511 | 7:f4e248182d31 | 294 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 295 | |
miguelangel_2511 | 8:208d965a3bd2 | 296 | void Volume_Display_Update(void){ |
miguelangel_2511 | 9:95fdcdc0977e | 297 | nextion_display.printf("t11.txt=\"%d\"", (int16_t)volume_ml); |
miguelangel_2511 | 9:95fdcdc0977e | 298 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 11:5cb7ae8bd831 | 299 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 300 | /* Read pressure sensors if necessary */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 301 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 302 | Pressure_Sensors_Read(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 303 | Calculate_Flow_From_Pressure(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 304 | Calculate_Volume_From_Flow(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 305 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 11:5cb7ae8bd831 | 306 | } |
miguelangel_2511 | 11:5cb7ae8bd831 | 307 | |
miguelangel_2511 | 9:95fdcdc0977e | 308 | } |
miguelangel_2511 | 9:95fdcdc0977e | 309 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 310 | |
miguelangel_2511 | 9:95fdcdc0977e | 311 | void Flow_Display_Update(void){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 312 | nextion_display.printf("t14.txt=\"%.2f\"", flow_lpm); |
miguelangel_2511 | 8:208d965a3bd2 | 313 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 11:5cb7ae8bd831 | 314 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 315 | /* Read pressure sensors if necessary */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 316 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 317 | Pressure_Sensors_Read(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 318 | Calculate_Flow_From_Pressure(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 319 | Calculate_Volume_From_Flow(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 320 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 11:5cb7ae8bd831 | 321 | } |
miguelangel_2511 | 11:5cb7ae8bd831 | 322 | |
miguelangel_2511 | 8:208d965a3bd2 | 323 | } |
miguelangel_2511 | 8:208d965a3bd2 | 324 | |
miguelangel_2511 | 8:208d965a3bd2 | 325 | void Pressure_Display_Update(void){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 326 | nextion_display.printf("t15.txt=\"%d\"", (int16_t)(pressure_02_psi * PSI_TO_CMH2O_CONSTANT)); |
miguelangel_2511 | 8:208d965a3bd2 | 327 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 11:5cb7ae8bd831 | 328 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 329 | /* Read pressure sensors if necessary */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 330 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 331 | Pressure_Sensors_Read(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 332 | Calculate_Flow_From_Pressure(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 333 | Calculate_Volume_From_Flow(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 334 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 11:5cb7ae8bd831 | 335 | } |
miguelangel_2511 | 11:5cb7ae8bd831 | 336 | |
miguelangel_2511 | 8:208d965a3bd2 | 337 | } |
miguelangel_2511 | 8:208d965a3bd2 | 338 | |
miguelangel_2511 | 8:208d965a3bd2 | 339 | |
miguelangel_2511 | 8:208d965a3bd2 | 340 | void Nextion_Plot_Volume_Waveform(void){ |
miguelangel_2511 | 8:208d965a3bd2 | 341 | |
miguelangel_2511 | 8:208d965a3bd2 | 342 | static uint16_t x_pos_counter = 1, prev_y_pos = (VOLUME_WAVEFORM_Y0 + VOLUME_WAVEFORM_HEIGHT - 1); |
miguelangel_2511 | 8:208d965a3bd2 | 343 | int16_t x_pos, y_pos; |
miguelangel_2511 | 8:208d965a3bd2 | 344 | uint16_t volume_scaled_value; |
miguelangel_2511 | 8:208d965a3bd2 | 345 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 346 | volume_scaled_value = VOLUME_WAVEFORM_OFFSET + (int16_t)(volume_ml * VOLUME_WAVEFORM_GAIN); |
miguelangel_2511 | 8:208d965a3bd2 | 347 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 348 | x_pos_counter = x_pos_counter + 1; |
miguelangel_2511 | 8:208d965a3bd2 | 349 | |
miguelangel_2511 | 8:208d965a3bd2 | 350 | if(x_pos_counter >= VOLUME_WAVEFORM_WIDTH){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 351 | nextion_display.printf("fill %d,%d,%d,%d,%d",VOLUME_WAVEFORM_X0,VOLUME_WAVEFORM_Y0,VOLUME_WAVEFORM_WIDTH,VOLUME_WAVEFORM_HEIGHT,WAVEFORM_BACKGROUND_COLOR); |
miguelangel_2511 | 8:208d965a3bd2 | 352 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 353 | x_pos_counter = 1; |
miguelangel_2511 | 11:5cb7ae8bd831 | 354 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 355 | /* Read pressure sensors if necessary */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 356 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 357 | Pressure_Sensors_Read(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 358 | Calculate_Flow_From_Pressure(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 359 | Calculate_Volume_From_Flow(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 360 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 11:5cb7ae8bd831 | 361 | } |
miguelangel_2511 | 11:5cb7ae8bd831 | 362 | |
miguelangel_2511 | 8:208d965a3bd2 | 363 | } |
miguelangel_2511 | 8:208d965a3bd2 | 364 | |
miguelangel_2511 | 8:208d965a3bd2 | 365 | x_pos = VOLUME_WAVEFORM_X0 + x_pos_counter; |
miguelangel_2511 | 8:208d965a3bd2 | 366 | y_pos = VOLUME_WAVEFORM_Y0 + VOLUME_WAVEFORM_HEIGHT - volume_scaled_value - 1; |
miguelangel_2511 | 8:208d965a3bd2 | 367 | |
miguelangel_2511 | 8:208d965a3bd2 | 368 | if(y_pos <= VOLUME_WAVEFORM_Y0){ |
miguelangel_2511 | 8:208d965a3bd2 | 369 | y_pos = VOLUME_WAVEFORM_Y0 + 1; |
miguelangel_2511 | 10:b2d87404309a | 370 | }else if(y_pos >= (VOLUME_WAVEFORM_Y0 + VOLUME_WAVEFORM_HEIGHT)){ |
miguelangel_2511 | 10:b2d87404309a | 371 | y_pos = VOLUME_WAVEFORM_Y0 + VOLUME_WAVEFORM_HEIGHT - 1; |
miguelangel_2511 | 8:208d965a3bd2 | 372 | } |
miguelangel_2511 | 8:208d965a3bd2 | 373 | |
miguelangel_2511 | 8:208d965a3bd2 | 374 | nextion_display.printf("line %d,%d,%d,%d,%d",(x_pos - 1), prev_y_pos, x_pos, y_pos, GREEN); |
miguelangel_2511 | 7:f4e248182d31 | 375 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 11:5cb7ae8bd831 | 376 | |
miguelangel_2511 | 8:208d965a3bd2 | 377 | prev_y_pos = y_pos; |
miguelangel_2511 | 11:5cb7ae8bd831 | 378 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 379 | /* Read pressure sensors if necessary */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 380 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 381 | Pressure_Sensors_Read(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 382 | Calculate_Flow_From_Pressure(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 383 | Calculate_Volume_From_Flow(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 384 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 11:5cb7ae8bd831 | 385 | } |
miguelangel_2511 | 11:5cb7ae8bd831 | 386 | |
miguelangel_2511 | 7:f4e248182d31 | 387 | } |
miguelangel_2511 | 7:f4e248182d31 | 388 | |
miguelangel_2511 | 8:208d965a3bd2 | 389 | |
miguelangel_2511 | 8:208d965a3bd2 | 390 | void Nextion_Plot_Flow_Waveform(void){ |
miguelangel_2511 | 8:208d965a3bd2 | 391 | |
miguelangel_2511 | 8:208d965a3bd2 | 392 | static uint16_t x_pos_counter = 1, prev_y_pos = (FLOW_WAVEFORM_Y0 + FLOW_WAVEFORM_HEIGHT - 1); |
miguelangel_2511 | 8:208d965a3bd2 | 393 | uint16_t x_pos, y_pos; |
miguelangel_2511 | 8:208d965a3bd2 | 394 | uint16_t flow_scaled_value; |
miguelangel_2511 | 8:208d965a3bd2 | 395 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 396 | flow_scaled_value = FLOW_WAVEFORM_OFFSET + (int16_t)(flow_lpm*FLOW_WAVEFORM_GAIN); |
miguelangel_2511 | 8:208d965a3bd2 | 397 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 398 | x_pos_counter = x_pos_counter + 1; |
miguelangel_2511 | 8:208d965a3bd2 | 399 | |
miguelangel_2511 | 8:208d965a3bd2 | 400 | if(x_pos_counter >= FLOW_WAVEFORM_WIDTH){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 401 | nextion_display.printf("fill %d,%d,%d,%d,%d",FLOW_WAVEFORM_X0,FLOW_WAVEFORM_Y0,FLOW_WAVEFORM_WIDTH,FLOW_WAVEFORM_HEIGHT,WAVEFORM_BACKGROUND_COLOR); |
miguelangel_2511 | 8:208d965a3bd2 | 402 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 403 | x_pos_counter = 1; |
miguelangel_2511 | 11:5cb7ae8bd831 | 404 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 405 | /* Read pressure sensors if necessary */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 406 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 407 | Pressure_Sensors_Read(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 408 | Calculate_Flow_From_Pressure(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 409 | Calculate_Volume_From_Flow(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 410 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 11:5cb7ae8bd831 | 411 | } |
miguelangel_2511 | 11:5cb7ae8bd831 | 412 | |
miguelangel_2511 | 8:208d965a3bd2 | 413 | } |
miguelangel_2511 | 8:208d965a3bd2 | 414 | |
miguelangel_2511 | 8:208d965a3bd2 | 415 | x_pos = FLOW_WAVEFORM_X0 + x_pos_counter; |
miguelangel_2511 | 8:208d965a3bd2 | 416 | y_pos = FLOW_WAVEFORM_Y0 + FLOW_WAVEFORM_HEIGHT - flow_scaled_value - 1; |
miguelangel_2511 | 8:208d965a3bd2 | 417 | |
miguelangel_2511 | 8:208d965a3bd2 | 418 | |
miguelangel_2511 | 8:208d965a3bd2 | 419 | if(y_pos <= FLOW_WAVEFORM_Y0){ |
miguelangel_2511 | 10:b2d87404309a | 420 | y_pos = FLOW_WAVEFORM_Y0 + 1; |
miguelangel_2511 | 8:208d965a3bd2 | 421 | }else if(y_pos >= (FLOW_WAVEFORM_Y0 + FLOW_WAVEFORM_HEIGHT)){ |
miguelangel_2511 | 10:b2d87404309a | 422 | y_pos = FLOW_WAVEFORM_Y0 + FLOW_WAVEFORM_HEIGHT - 1; |
miguelangel_2511 | 8:208d965a3bd2 | 423 | |
miguelangel_2511 | 8:208d965a3bd2 | 424 | } |
miguelangel_2511 | 8:208d965a3bd2 | 425 | |
miguelangel_2511 | 8:208d965a3bd2 | 426 | nextion_display.printf("line %d,%d,%d,%d,%d",(x_pos - 1), prev_y_pos, x_pos, y_pos, YELLOW); |
miguelangel_2511 | 7:f4e248182d31 | 427 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 11:5cb7ae8bd831 | 428 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 429 | prev_y_pos = y_pos; |
miguelangel_2511 | 8:208d965a3bd2 | 430 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 431 | /* Read pressure sensors if necessary */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 432 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 433 | Pressure_Sensors_Read(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 434 | Calculate_Flow_From_Pressure(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 435 | Calculate_Volume_From_Flow(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 436 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 11:5cb7ae8bd831 | 437 | } |
miguelangel_2511 | 11:5cb7ae8bd831 | 438 | |
miguelangel_2511 | 8:208d965a3bd2 | 439 | } |
miguelangel_2511 | 8:208d965a3bd2 | 440 | |
miguelangel_2511 | 8:208d965a3bd2 | 441 | |
miguelangel_2511 | 8:208d965a3bd2 | 442 | void Nextion_Plot_Pressure_Waveform(void){ |
miguelangel_2511 | 8:208d965a3bd2 | 443 | |
miguelangel_2511 | 8:208d965a3bd2 | 444 | static uint16_t x_pos_counter = 1, prev_y_pos = (PRESSURE_WAVEFORM_Y0 + PRESSURE_WAVEFORM_HEIGHT - 1); |
miguelangel_2511 | 8:208d965a3bd2 | 445 | uint16_t x_pos, y_pos; |
miguelangel_2511 | 8:208d965a3bd2 | 446 | uint16_t pressure_02_scaled_value; |
miguelangel_2511 | 8:208d965a3bd2 | 447 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 448 | pressure_02_scaled_value = PRESSURE_WAVEFORM_OFFSET + (uint16_t)(pressure_02_psi * PRESSURE_WAVEFORM_GAIN) ; |
miguelangel_2511 | 8:208d965a3bd2 | 449 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 450 | x_pos_counter = x_pos_counter + 1; |
miguelangel_2511 | 8:208d965a3bd2 | 451 | |
miguelangel_2511 | 8:208d965a3bd2 | 452 | if(x_pos_counter >= PRESSURE_WAVEFORM_WIDTH){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 453 | nextion_display.printf("fill %d,%d,%d,%d,%d",PRESSURE_WAVEFORM_X0,PRESSURE_WAVEFORM_Y0,PRESSURE_WAVEFORM_WIDTH,PRESSURE_WAVEFORM_HEIGHT,WAVEFORM_BACKGROUND_COLOR); |
miguelangel_2511 | 8:208d965a3bd2 | 454 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 455 | x_pos_counter = 1; |
miguelangel_2511 | 11:5cb7ae8bd831 | 456 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 457 | /* Read pressure sensors if necessary */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 458 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 459 | Pressure_Sensors_Read(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 460 | Calculate_Flow_From_Pressure(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 461 | Calculate_Volume_From_Flow(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 462 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 11:5cb7ae8bd831 | 463 | } |
miguelangel_2511 | 11:5cb7ae8bd831 | 464 | |
miguelangel_2511 | 8:208d965a3bd2 | 465 | } |
miguelangel_2511 | 8:208d965a3bd2 | 466 | |
miguelangel_2511 | 8:208d965a3bd2 | 467 | x_pos = PRESSURE_WAVEFORM_X0 + x_pos_counter; |
miguelangel_2511 | 8:208d965a3bd2 | 468 | y_pos = PRESSURE_WAVEFORM_Y0 + PRESSURE_WAVEFORM_HEIGHT - pressure_02_scaled_value - 1; |
miguelangel_2511 | 8:208d965a3bd2 | 469 | |
miguelangel_2511 | 8:208d965a3bd2 | 470 | |
miguelangel_2511 | 8:208d965a3bd2 | 471 | if(y_pos <= PRESSURE_WAVEFORM_Y0){ |
miguelangel_2511 | 8:208d965a3bd2 | 472 | y_pos = PRESSURE_WAVEFORM_Y0 + 1; |
miguelangel_2511 | 8:208d965a3bd2 | 473 | } |
miguelangel_2511 | 8:208d965a3bd2 | 474 | |
miguelangel_2511 | 8:208d965a3bd2 | 475 | nextion_display.printf("line %d,%d,%d,%d,%d",(x_pos - 1), prev_y_pos, x_pos, y_pos, WHITE); |
miguelangel_2511 | 8:208d965a3bd2 | 476 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 477 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 478 | prev_y_pos = y_pos; |
miguelangel_2511 | 11:5cb7ae8bd831 | 479 | |
miguelangel_2511 | 11:5cb7ae8bd831 | 480 | /* Read pressure sensors if necessary */ |
miguelangel_2511 | 11:5cb7ae8bd831 | 481 | if(read_pressure_sensors_flag){ |
miguelangel_2511 | 11:5cb7ae8bd831 | 482 | Pressure_Sensors_Read(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 483 | Calculate_Flow_From_Pressure(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 484 | Calculate_Volume_From_Flow(); |
miguelangel_2511 | 11:5cb7ae8bd831 | 485 | read_pressure_sensors_flag = 0; |
miguelangel_2511 | 11:5cb7ae8bd831 | 486 | } |
miguelangel_2511 | 11:5cb7ae8bd831 | 487 | |
miguelangel_2511 | 8:208d965a3bd2 | 488 | } |
miguelangel_2511 | 8:208d965a3bd2 | 489 |