pachas
Dependencies: mbed QEI FastPWM
nextion_interface.cpp@8:208d965a3bd2, 2020-04-23 (annotated)
- Committer:
- miguelangel_2511
- Date:
- Thu Apr 23 17:05:36 2020 +0000
- Revision:
- 8:208d965a3bd2
- Parent:
- 7:f4e248182d31
- Child:
- 9:95fdcdc0977e
Se agrego la medicion y visualizacion grafica del volumen, el flujo y la presion. Sin embargo, aun no se han aplicado filtros a las seniales medidas.
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 | 6:d38287621cca | 15 | // For testing pusposes only |
miguelangel_2511 | 7:f4e248182d31 | 16 | //Serial pc(USBTX, USBRX); |
miguelangel_2511 | 6:d38287621cca | 17 | |
miguelangel_2511 | 6:d38287621cca | 18 | /* Global variable definition */ |
miguelangel_2511 | 6:d38287621cca | 19 | |
miguelangel_2511 | 6:d38287621cca | 20 | uint16_t volume_setpoint_display = VOLUME_SETPOINT_VALUE_DEFAULT; |
miguelangel_2511 | 6:d38287621cca | 21 | uint16_t volume_measured_display = 480; |
miguelangel_2511 | 6:d38287621cca | 22 | uint8_t resp_frequency_display = RESP_FREQUENCY_VALUE_DEFAULT; |
miguelangel_2511 | 6:d38287621cca | 23 | float inspiration_time_display = INSPIRATION_TIME_VALUE_DEFAULT; |
miguelangel_2511 | 6:d38287621cca | 24 | float expiration_time_display = EXPIRATION_TIME_VALUE_DEFAULT; |
miguelangel_2511 | 6:d38287621cca | 25 | uint8_t pressure_measured_display = 16; |
miguelangel_2511 | 6:d38287621cca | 26 | uint8_t gas_input_display = AIR_INPUT; |
miguelangel_2511 | 6:d38287621cca | 27 | |
miguelangel_2511 | 6:d38287621cca | 28 | uint16_t selection_box_coordinates[3][4]={ |
miguelangel_2511 | 6:d38287621cca | 29 | {1,1,159,159}, |
miguelangel_2511 | 6:d38287621cca | 30 | {161,1,319,159}, |
miguelangel_2511 | 6:d38287621cca | 31 | {321,1,478, 159} |
miguelangel_2511 | 6:d38287621cca | 32 | }; |
miguelangel_2511 | 6:d38287621cca | 33 | |
miguelangel_2511 | 6:d38287621cca | 34 | float i_e_ratio_display_table[I_E_RATIO_INDEX_LIMIT][2]={ |
miguelangel_2511 | 6:d38287621cca | 35 | {1.0,2.0}, |
miguelangel_2511 | 6:d38287621cca | 36 | {1.0,2.5}, |
miguelangel_2511 | 6:d38287621cca | 37 | {1.0,3.0} |
miguelangel_2511 | 6:d38287621cca | 38 | }; |
miguelangel_2511 | 6:d38287621cca | 39 | |
miguelangel_2511 | 6:d38287621cca | 40 | |
miguelangel_2511 | 6:d38287621cca | 41 | /* Function definition */ |
miguelangel_2511 | 6:d38287621cca | 42 | |
miguelangel_2511 | 6:d38287621cca | 43 | void Nextion_Interface_Initialize(void){ |
miguelangel_2511 | 6:d38287621cca | 44 | /* Configure baud rate */ |
miguelangel_2511 | 8:208d965a3bd2 | 45 | nextion_display.baud(9600); |
miguelangel_2511 | 8:208d965a3bd2 | 46 | wait(1); |
miguelangel_2511 | 8:208d965a3bd2 | 47 | nextion_display.printf("baud=%d", NEXTION_DISPLAY_BAUD_RATE); |
miguelangel_2511 | 8:208d965a3bd2 | 48 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 49 | wait(1); |
miguelangel_2511 | 7:f4e248182d31 | 50 | nextion_display.baud(NEXTION_DISPLAY_BAUD_RATE); |
miguelangel_2511 | 8:208d965a3bd2 | 51 | wait(1); |
miguelangel_2511 | 8:208d965a3bd2 | 52 | |
miguelangel_2511 | 8:208d965a3bd2 | 53 | /* Draw separators for the displayed values */ |
miguelangel_2511 | 8:208d965a3bd2 | 54 | nextion_display.printf("line 10,160,190,160,%d", WHITE); |
miguelangel_2511 | 8:208d965a3bd2 | 55 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 56 | nextion_display.printf("line 10,320,190,320,%d", WHITE); |
miguelangel_2511 | 8:208d965a3bd2 | 57 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 58 | nextion_display.printf("line 610,160,790,160,%d", WHITE); |
miguelangel_2511 | 8:208d965a3bd2 | 59 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 60 | nextion_display.printf("line 610,320,790,320,%d", WHITE); |
miguelangel_2511 | 8:208d965a3bd2 | 61 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 62 | |
miguelangel_2511 | 6:d38287621cca | 63 | /* Set font color */ |
miguelangel_2511 | 8:208d965a3bd2 | 64 | nextion_display.printf("t1.pco=%d", NORMAL_COLOR); |
miguelangel_2511 | 6:d38287621cca | 65 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 66 | nextion_display.printf("t4.pco=%d", NORMAL_COLOR); |
miguelangel_2511 | 8:208d965a3bd2 | 67 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 68 | nextion_display.printf("t7.pco=%d", NORMAL_COLOR); |
miguelangel_2511 | 6:d38287621cca | 69 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 70 | /* |
miguelangel_2511 | 8:208d965a3bd2 | 71 | pc.printf("t6.pco=%d\n\r", NORMAL_COLOR); |
miguelangel_2511 | 8:208d965a3bd2 | 72 | pc.printf("%c%c%c\n\r", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 73 | pc.printf("t7.pco=%d\n\r", NORMAL_COLOR); |
miguelangel_2511 | 8:208d965a3bd2 | 74 | pc.printf("%c%c%c\n\r", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 75 | pc.printf("t8.pco=%d\n\r", NORMAL_COLOR); |
miguelangel_2511 | 8:208d965a3bd2 | 76 | pc.printf("%c%c%c\n\r", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 77 | */ |
miguelangel_2511 | 6:d38287621cca | 78 | /* Print default values */ |
miguelangel_2511 | 6:d38287621cca | 79 | Volume_Setpoint_Fix(); |
miguelangel_2511 | 6:d38287621cca | 80 | Resp_Frequency_Fix(); |
miguelangel_2511 | 6:d38287621cca | 81 | I_E_Ratio_Fix(); |
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 | |
miguelangel_2511 | 6:d38287621cca | 87 | |
miguelangel_2511 | 6:d38287621cca | 88 | void Parameter_Selection_Box_Update(void){ |
miguelangel_2511 | 6:d38287621cca | 89 | |
miguelangel_2511 | 6:d38287621cca | 90 | /* Remove the selection box from the previous position */ |
miguelangel_2511 | 6:d38287621cca | 91 | switch(past_parameter_selection_index){ |
miguelangel_2511 | 6:d38287621cca | 92 | case 0: |
miguelangel_2511 | 8:208d965a3bd2 | 93 | nextion_display.printf("t1.pco=%d", NORMAL_COLOR); |
miguelangel_2511 | 6:d38287621cca | 94 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 95 | break; |
miguelangel_2511 | 6:d38287621cca | 96 | case 1: |
miguelangel_2511 | 8:208d965a3bd2 | 97 | nextion_display.printf("t4.pco=%d", NORMAL_COLOR); |
miguelangel_2511 | 8:208d965a3bd2 | 98 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 99 | break; |
miguelangel_2511 | 8:208d965a3bd2 | 100 | case 2: |
miguelangel_2511 | 6:d38287621cca | 101 | nextion_display.printf("t7.pco=%d", NORMAL_COLOR); |
miguelangel_2511 | 6:d38287621cca | 102 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 103 | break; |
miguelangel_2511 | 6:d38287621cca | 104 | default: |
miguelangel_2511 | 6:d38287621cca | 105 | break; |
miguelangel_2511 | 6:d38287621cca | 106 | } |
miguelangel_2511 | 6:d38287621cca | 107 | |
miguelangel_2511 | 6:d38287621cca | 108 | |
miguelangel_2511 | 6:d38287621cca | 109 | /* Draw the selection box in the new position */ |
miguelangel_2511 | 6:d38287621cca | 110 | switch(parameter_selection_index){ |
miguelangel_2511 | 6:d38287621cca | 111 | case 0: |
miguelangel_2511 | 8:208d965a3bd2 | 112 | nextion_display.printf("t1.pco=%d", SELECT_COLOR); |
miguelangel_2511 | 6:d38287621cca | 113 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 114 | break; |
miguelangel_2511 | 6:d38287621cca | 115 | case 1: |
miguelangel_2511 | 8:208d965a3bd2 | 116 | nextion_display.printf("t4.pco=%d", SELECT_COLOR); |
miguelangel_2511 | 8:208d965a3bd2 | 117 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 118 | break; |
miguelangel_2511 | 8:208d965a3bd2 | 119 | case 2: |
miguelangel_2511 | 6:d38287621cca | 120 | nextion_display.printf("t7.pco=%d", SELECT_COLOR); |
miguelangel_2511 | 6:d38287621cca | 121 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 122 | break; |
miguelangel_2511 | 6:d38287621cca | 123 | default: |
miguelangel_2511 | 6:d38287621cca | 124 | break; |
miguelangel_2511 | 6:d38287621cca | 125 | } |
miguelangel_2511 | 6:d38287621cca | 126 | |
miguelangel_2511 | 6:d38287621cca | 127 | } |
miguelangel_2511 | 6:d38287621cca | 128 | |
miguelangel_2511 | 6:d38287621cca | 129 | |
miguelangel_2511 | 6:d38287621cca | 130 | void Parameter_Selection_Box_Remove(void){ |
miguelangel_2511 | 6:d38287621cca | 131 | |
miguelangel_2511 | 6:d38287621cca | 132 | /* Remove the selection box from the current position */ |
miguelangel_2511 | 6:d38287621cca | 133 | |
miguelangel_2511 | 6:d38287621cca | 134 | switch(parameter_selection_index){ |
miguelangel_2511 | 6:d38287621cca | 135 | case 0: |
miguelangel_2511 | 8:208d965a3bd2 | 136 | nextion_display.printf("t1.pco=%d", NORMAL_COLOR); |
miguelangel_2511 | 6:d38287621cca | 137 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 138 | break; |
miguelangel_2511 | 6:d38287621cca | 139 | case 1: |
miguelangel_2511 | 8:208d965a3bd2 | 140 | nextion_display.printf("t4.pco=%d", NORMAL_COLOR); |
miguelangel_2511 | 8:208d965a3bd2 | 141 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 142 | break; |
miguelangel_2511 | 8:208d965a3bd2 | 143 | case 2: |
miguelangel_2511 | 6:d38287621cca | 144 | nextion_display.printf("t7.pco=%d", NORMAL_COLOR); |
miguelangel_2511 | 6:d38287621cca | 145 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 146 | break; |
miguelangel_2511 | 6:d38287621cca | 147 | default: |
miguelangel_2511 | 6:d38287621cca | 148 | break; |
miguelangel_2511 | 6:d38287621cca | 149 | } |
miguelangel_2511 | 6:d38287621cca | 150 | |
miguelangel_2511 | 6:d38287621cca | 151 | } |
miguelangel_2511 | 6:d38287621cca | 152 | |
miguelangel_2511 | 6:d38287621cca | 153 | |
miguelangel_2511 | 6:d38287621cca | 154 | |
miguelangel_2511 | 6:d38287621cca | 155 | |
miguelangel_2511 | 6:d38287621cca | 156 | void Volume_Setpoint_Display_Update(void){ |
miguelangel_2511 | 6:d38287621cca | 157 | |
miguelangel_2511 | 6:d38287621cca | 158 | volume_setpoint_display = VOLUME_SETPOINT_MINIMUM_VALUE + VOLUME_SETPOINT_STEP*volume_setpoint_index; |
miguelangel_2511 | 6:d38287621cca | 159 | |
miguelangel_2511 | 6:d38287621cca | 160 | /* Print volume value */ |
miguelangel_2511 | 8:208d965a3bd2 | 161 | nextion_display.printf("t1.txt=\"%d\"", volume_setpoint_display); |
miguelangel_2511 | 6:d38287621cca | 162 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 163 | } |
miguelangel_2511 | 6:d38287621cca | 164 | |
miguelangel_2511 | 6:d38287621cca | 165 | |
miguelangel_2511 | 6:d38287621cca | 166 | void Volume_Setpoint_Fix(void){ |
miguelangel_2511 | 6:d38287621cca | 167 | |
miguelangel_2511 | 6:d38287621cca | 168 | volume_setpoint = volume_setpoint_display; |
miguelangel_2511 | 6:d38287621cca | 169 | stepper_parameters_update_flag = 1; |
miguelangel_2511 | 6:d38287621cca | 170 | |
miguelangel_2511 | 6:d38287621cca | 171 | /* Print volume value */ |
miguelangel_2511 | 8:208d965a3bd2 | 172 | nextion_display.printf("t1.txt=\"%d\"", volume_setpoint_display); |
miguelangel_2511 | 6:d38287621cca | 173 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 174 | } |
miguelangel_2511 | 6:d38287621cca | 175 | |
miguelangel_2511 | 6:d38287621cca | 176 | |
miguelangel_2511 | 6:d38287621cca | 177 | void Resp_Frequency_Display_Update(void){ |
miguelangel_2511 | 6:d38287621cca | 178 | |
miguelangel_2511 | 6:d38287621cca | 179 | resp_frequency_display = 10 + resp_frequency_index; |
miguelangel_2511 | 6:d38287621cca | 180 | |
miguelangel_2511 | 6:d38287621cca | 181 | /* Print frequency value */ |
miguelangel_2511 | 8:208d965a3bd2 | 182 | nextion_display.printf("t4.txt=\"%d\"", resp_frequency_display); |
miguelangel_2511 | 6:d38287621cca | 183 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 184 | } |
miguelangel_2511 | 6:d38287621cca | 185 | |
miguelangel_2511 | 6:d38287621cca | 186 | |
miguelangel_2511 | 6:d38287621cca | 187 | void Resp_Frequency_Fix(void){ |
miguelangel_2511 | 6:d38287621cca | 188 | |
miguelangel_2511 | 6:d38287621cca | 189 | resp_frequency = resp_frequency_display; |
miguelangel_2511 | 6:d38287621cca | 190 | stepper_parameters_update_flag = 1; |
miguelangel_2511 | 6:d38287621cca | 191 | |
miguelangel_2511 | 6:d38287621cca | 192 | /* Print frequency value */ |
miguelangel_2511 | 8:208d965a3bd2 | 193 | nextion_display.printf("t4.txt=\"%d\"", resp_frequency_display); |
miguelangel_2511 | 6:d38287621cca | 194 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 195 | } |
miguelangel_2511 | 6:d38287621cca | 196 | |
miguelangel_2511 | 6:d38287621cca | 197 | void I_E_Ratio_Display_Update(void){ |
miguelangel_2511 | 6:d38287621cca | 198 | |
miguelangel_2511 | 6:d38287621cca | 199 | inspiration_time_display = i_e_ratio_display_table[i_e_ratio_index][0]; |
miguelangel_2511 | 6:d38287621cca | 200 | expiration_time_display = i_e_ratio_display_table[i_e_ratio_index][1]; |
miguelangel_2511 | 6:d38287621cca | 201 | |
miguelangel_2511 | 6:d38287621cca | 202 | /* Print i:e ratio value */ |
miguelangel_2511 | 8:208d965a3bd2 | 203 | nextion_display.printf("t7.txt=\"%2.1f : %2.1f\"", inspiration_time_display, expiration_time_display); |
miguelangel_2511 | 8:208d965a3bd2 | 204 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 205 | } |
miguelangel_2511 | 6:d38287621cca | 206 | |
miguelangel_2511 | 6:d38287621cca | 207 | |
miguelangel_2511 | 6:d38287621cca | 208 | void I_E_Ratio_Fix(void){ |
miguelangel_2511 | 6:d38287621cca | 209 | |
miguelangel_2511 | 6:d38287621cca | 210 | inspiration_time = inspiration_time_display; |
miguelangel_2511 | 6:d38287621cca | 211 | expiration_time = expiration_time_display; |
miguelangel_2511 | 6:d38287621cca | 212 | stepper_parameters_update_flag = 1; |
miguelangel_2511 | 6:d38287621cca | 213 | |
miguelangel_2511 | 6:d38287621cca | 214 | /* Print i:e ratio value */ |
miguelangel_2511 | 8:208d965a3bd2 | 215 | nextion_display.printf("t7.txt=\"%2.1f : %2.1f\"", inspiration_time_display, expiration_time_display); |
miguelangel_2511 | 6:d38287621cca | 216 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 6:d38287621cca | 217 | } |
miguelangel_2511 | 7:f4e248182d31 | 218 | |
miguelangel_2511 | 8:208d965a3bd2 | 219 | void Volume_Display_Update(void){ |
miguelangel_2511 | 8:208d965a3bd2 | 220 | nextion_display.printf("t11.txt=\"%.2f\"", volume_ml); |
miguelangel_2511 | 8:208d965a3bd2 | 221 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 222 | } |
miguelangel_2511 | 8:208d965a3bd2 | 223 | |
miguelangel_2511 | 8:208d965a3bd2 | 224 | void Pressure_Display_Update(void){ |
miguelangel_2511 | 8:208d965a3bd2 | 225 | nextion_display.printf("t15.txt=\"%.1f\"", (pressure_02_psi * PSI_TO_CMH2O_CONSTANT)); |
miguelangel_2511 | 8:208d965a3bd2 | 226 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 227 | } |
miguelangel_2511 | 8:208d965a3bd2 | 228 | |
miguelangel_2511 | 8:208d965a3bd2 | 229 | void Flow_Display_Update(void){ |
miguelangel_2511 | 8:208d965a3bd2 | 230 | nextion_display.printf("t14.txt=\"%.2f\"", flow_lpm); |
miguelangel_2511 | 7:f4e248182d31 | 231 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 7:f4e248182d31 | 232 | } |
miguelangel_2511 | 7:f4e248182d31 | 233 | |
miguelangel_2511 | 8:208d965a3bd2 | 234 | |
miguelangel_2511 | 8:208d965a3bd2 | 235 | void Nextion_Plot_Volume_Waveform(void){ |
miguelangel_2511 | 8:208d965a3bd2 | 236 | |
miguelangel_2511 | 8:208d965a3bd2 | 237 | static uint16_t x_pos_counter = 1, prev_y_pos = (VOLUME_WAVEFORM_Y0 + VOLUME_WAVEFORM_HEIGHT - 1); |
miguelangel_2511 | 8:208d965a3bd2 | 238 | int16_t x_pos, y_pos; |
miguelangel_2511 | 8:208d965a3bd2 | 239 | uint16_t volume_scaled_value; |
miguelangel_2511 | 8:208d965a3bd2 | 240 | |
miguelangel_2511 | 8:208d965a3bd2 | 241 | //volume_scaled_value = (uint16_t)((volume_ml - 0.5)*VOLUME_WAVEFORM_HEIGHT*2) ; |
miguelangel_2511 | 8:208d965a3bd2 | 242 | volume_scaled_value = (uint16_t)((volume_ml - 0.5)*2) ; |
miguelangel_2511 | 8:208d965a3bd2 | 243 | |
miguelangel_2511 | 8:208d965a3bd2 | 244 | x_pos_counter++; |
miguelangel_2511 | 8:208d965a3bd2 | 245 | |
miguelangel_2511 | 8:208d965a3bd2 | 246 | if(x_pos_counter >= VOLUME_WAVEFORM_WIDTH){ |
miguelangel_2511 | 8:208d965a3bd2 | 247 | nextion_display.printf("fill %d,%d,%d,%d,%d",VOLUME_WAVEFORM_X0,VOLUME_WAVEFORM_Y0,VOLUME_WAVEFORM_WIDTH,VOLUME_WAVEFORM_HEIGHT,8591); |
miguelangel_2511 | 8:208d965a3bd2 | 248 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 249 | x_pos_counter = 1; |
miguelangel_2511 | 8:208d965a3bd2 | 250 | } |
miguelangel_2511 | 8:208d965a3bd2 | 251 | |
miguelangel_2511 | 8:208d965a3bd2 | 252 | x_pos = VOLUME_WAVEFORM_X0 + x_pos_counter; |
miguelangel_2511 | 8:208d965a3bd2 | 253 | y_pos = VOLUME_WAVEFORM_Y0 + VOLUME_WAVEFORM_HEIGHT - volume_scaled_value - 1; |
miguelangel_2511 | 8:208d965a3bd2 | 254 | |
miguelangel_2511 | 8:208d965a3bd2 | 255 | if(y_pos <= VOLUME_WAVEFORM_Y0){ |
miguelangel_2511 | 8:208d965a3bd2 | 256 | y_pos = VOLUME_WAVEFORM_Y0 + 1; |
miguelangel_2511 | 8:208d965a3bd2 | 257 | } |
miguelangel_2511 | 8:208d965a3bd2 | 258 | |
miguelangel_2511 | 8:208d965a3bd2 | 259 | nextion_display.printf("line %d,%d,%d,%d,%d",(x_pos - 1), prev_y_pos, x_pos, y_pos, GREEN); |
miguelangel_2511 | 7:f4e248182d31 | 260 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 261 | |
miguelangel_2511 | 8:208d965a3bd2 | 262 | prev_y_pos = y_pos; |
miguelangel_2511 | 7:f4e248182d31 | 263 | } |
miguelangel_2511 | 7:f4e248182d31 | 264 | |
miguelangel_2511 | 8:208d965a3bd2 | 265 | |
miguelangel_2511 | 8:208d965a3bd2 | 266 | void Nextion_Plot_Flow_Waveform(void){ |
miguelangel_2511 | 8:208d965a3bd2 | 267 | |
miguelangel_2511 | 8:208d965a3bd2 | 268 | static uint16_t x_pos_counter = 1, prev_y_pos = (FLOW_WAVEFORM_Y0 + FLOW_WAVEFORM_HEIGHT - 1); |
miguelangel_2511 | 8:208d965a3bd2 | 269 | uint16_t x_pos, y_pos; |
miguelangel_2511 | 8:208d965a3bd2 | 270 | uint16_t flow_scaled_value; |
miguelangel_2511 | 8:208d965a3bd2 | 271 | |
miguelangel_2511 | 8:208d965a3bd2 | 272 | flow_scaled_value = 79 + (int16_t)(flow_lpm * FLOW_WAVEFORM_HEIGHT); |
miguelangel_2511 | 8:208d965a3bd2 | 273 | |
miguelangel_2511 | 8:208d965a3bd2 | 274 | x_pos_counter++; |
miguelangel_2511 | 8:208d965a3bd2 | 275 | |
miguelangel_2511 | 8:208d965a3bd2 | 276 | if(x_pos_counter >= FLOW_WAVEFORM_WIDTH){ |
miguelangel_2511 | 8:208d965a3bd2 | 277 | nextion_display.printf("fill %d,%d,%d,%d,%d",FLOW_WAVEFORM_X0,FLOW_WAVEFORM_Y0,FLOW_WAVEFORM_WIDTH,FLOW_WAVEFORM_HEIGHT,8591); |
miguelangel_2511 | 8:208d965a3bd2 | 278 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 279 | x_pos_counter = 1; |
miguelangel_2511 | 8:208d965a3bd2 | 280 | } |
miguelangel_2511 | 8:208d965a3bd2 | 281 | |
miguelangel_2511 | 8:208d965a3bd2 | 282 | x_pos = FLOW_WAVEFORM_X0 + x_pos_counter; |
miguelangel_2511 | 8:208d965a3bd2 | 283 | y_pos = FLOW_WAVEFORM_Y0 + FLOW_WAVEFORM_HEIGHT - flow_scaled_value - 1; |
miguelangel_2511 | 8:208d965a3bd2 | 284 | |
miguelangel_2511 | 8:208d965a3bd2 | 285 | |
miguelangel_2511 | 8:208d965a3bd2 | 286 | if(y_pos <= FLOW_WAVEFORM_Y0){ |
miguelangel_2511 | 8:208d965a3bd2 | 287 | y_pos = VOLUME_WAVEFORM_Y0 + 1; |
miguelangel_2511 | 8:208d965a3bd2 | 288 | }else if(y_pos >= (FLOW_WAVEFORM_Y0 + FLOW_WAVEFORM_HEIGHT)){ |
miguelangel_2511 | 8:208d965a3bd2 | 289 | y_pos = VOLUME_WAVEFORM_Y0 + FLOW_WAVEFORM_HEIGHT - 1; |
miguelangel_2511 | 8:208d965a3bd2 | 290 | |
miguelangel_2511 | 8:208d965a3bd2 | 291 | } |
miguelangel_2511 | 8:208d965a3bd2 | 292 | |
miguelangel_2511 | 8:208d965a3bd2 | 293 | |
miguelangel_2511 | 8:208d965a3bd2 | 294 | |
miguelangel_2511 | 8:208d965a3bd2 | 295 | nextion_display.printf("line %d,%d,%d,%d,%d",(x_pos - 1), prev_y_pos, x_pos, y_pos, YELLOW); |
miguelangel_2511 | 7:f4e248182d31 | 296 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 297 | |
miguelangel_2511 | 8:208d965a3bd2 | 298 | prev_y_pos = y_pos; |
miguelangel_2511 | 8:208d965a3bd2 | 299 | } |
miguelangel_2511 | 8:208d965a3bd2 | 300 | |
miguelangel_2511 | 8:208d965a3bd2 | 301 | |
miguelangel_2511 | 8:208d965a3bd2 | 302 | void Nextion_Plot_Pressure_Waveform(void){ |
miguelangel_2511 | 8:208d965a3bd2 | 303 | |
miguelangel_2511 | 8:208d965a3bd2 | 304 | static uint16_t x_pos_counter = 1, prev_y_pos = (PRESSURE_WAVEFORM_Y0 + PRESSURE_WAVEFORM_HEIGHT - 1); |
miguelangel_2511 | 8:208d965a3bd2 | 305 | uint16_t x_pos, y_pos; |
miguelangel_2511 | 8:208d965a3bd2 | 306 | uint16_t pressure_02_scaled_value; |
miguelangel_2511 | 8:208d965a3bd2 | 307 | |
miguelangel_2511 | 8:208d965a3bd2 | 308 | pressure_02_scaled_value = (uint16_t)((pressure_02_psi - 0.5)*PRESSURE_WAVEFORM_HEIGHT*2) ; |
miguelangel_2511 | 8:208d965a3bd2 | 309 | |
miguelangel_2511 | 8:208d965a3bd2 | 310 | x_pos_counter++; |
miguelangel_2511 | 8:208d965a3bd2 | 311 | |
miguelangel_2511 | 8:208d965a3bd2 | 312 | if(x_pos_counter >= PRESSURE_WAVEFORM_WIDTH){ |
miguelangel_2511 | 8:208d965a3bd2 | 313 | nextion_display.printf("fill %d,%d,%d,%d,%d",PRESSURE_WAVEFORM_X0,PRESSURE_WAVEFORM_Y0,PRESSURE_WAVEFORM_WIDTH,PRESSURE_WAVEFORM_HEIGHT,8591); |
miguelangel_2511 | 8:208d965a3bd2 | 314 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 315 | x_pos_counter = 1; |
miguelangel_2511 | 8:208d965a3bd2 | 316 | } |
miguelangel_2511 | 8:208d965a3bd2 | 317 | |
miguelangel_2511 | 8:208d965a3bd2 | 318 | x_pos = PRESSURE_WAVEFORM_X0 + x_pos_counter; |
miguelangel_2511 | 8:208d965a3bd2 | 319 | y_pos = PRESSURE_WAVEFORM_Y0 + PRESSURE_WAVEFORM_HEIGHT - pressure_02_scaled_value - 1; |
miguelangel_2511 | 8:208d965a3bd2 | 320 | |
miguelangel_2511 | 8:208d965a3bd2 | 321 | |
miguelangel_2511 | 8:208d965a3bd2 | 322 | if(y_pos <= PRESSURE_WAVEFORM_Y0){ |
miguelangel_2511 | 8:208d965a3bd2 | 323 | y_pos = PRESSURE_WAVEFORM_Y0 + 1; |
miguelangel_2511 | 8:208d965a3bd2 | 324 | } |
miguelangel_2511 | 8:208d965a3bd2 | 325 | |
miguelangel_2511 | 8:208d965a3bd2 | 326 | nextion_display.printf("line %d,%d,%d,%d,%d",(x_pos - 1), prev_y_pos, x_pos, y_pos, WHITE); |
miguelangel_2511 | 8:208d965a3bd2 | 327 | nextion_display.printf("%c%c%c", 0xff, 0xff, 0xff); |
miguelangel_2511 | 8:208d965a3bd2 | 328 | |
miguelangel_2511 | 8:208d965a3bd2 | 329 | prev_y_pos = y_pos; |
miguelangel_2511 | 8:208d965a3bd2 | 330 | } |
miguelangel_2511 | 8:208d965a3bd2 | 331 |