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