Felícito Manzano
/
DTK_Guaria2_ABInBev
Proyecto ABInBev para la tarjeta Guaria 1/2.
Program/gpio_exe.cpp@18:522f706f03b1, 2022-07-07 (annotated)
- Committer:
- fmanzano_dtk
- Date:
- Thu Jul 07 08:56:13 2022 -0600
- Revision:
- 18:522f706f03b1
- Parent:
- 13:472d40c0fc6b
Actualizacion
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
fmanzano_dtk | 1:9e821e640117 | 1 | /** |
fmanzano_dtk | 1:9e821e640117 | 2 | * @file gpio_exe.cpp |
fmanzano_dtk | 1:9e821e640117 | 3 | * @author Felícito Manzano (felicito.manzano@detektor.com.sv) |
fmanzano_dtk | 1:9e821e640117 | 4 | * @brief |
fmanzano_dtk | 1:9e821e640117 | 5 | * @version 0.1 |
fmanzano_dtk | 1:9e821e640117 | 6 | * @date 2020-10-01 |
fmanzano_dtk | 1:9e821e640117 | 7 | * |
fmanzano_dtk | 1:9e821e640117 | 8 | * @copyright Copyright (c) 2020 |
fmanzano_dtk | 1:9e821e640117 | 9 | * |
fmanzano_dtk | 1:9e821e640117 | 10 | */ |
fmanzano_dtk | 1:9e821e640117 | 11 | |
fmanzano_dtk | 1:9e821e640117 | 12 | #include "mbed.h" |
fmanzano_dtk | 1:9e821e640117 | 13 | #include "inputDebounce.hpp" |
fmanzano_dtk | 1:9e821e640117 | 14 | #include "BufferedSerial.h" |
fmanzano_dtk | 1:9e821e640117 | 15 | #include "New_GT521Fx.hpp" |
fmanzano_dtk | 1:9e821e640117 | 16 | #include "jq8400_voice.hpp" |
fmanzano_dtk | 1:9e821e640117 | 17 | #include "voice_cn_pa.hpp" |
fmanzano_dtk | 1:9e821e640117 | 18 | #include "teltonika_fmu130.hpp" |
fmanzano_dtk | 1:9e821e640117 | 19 | #include "gpio_exe.hpp" |
fmanzano_dtk | 1:9e821e640117 | 20 | #include "fireup_exe.hpp" |
fmanzano_dtk | 1:9e821e640117 | 21 | #include "safety_tip_exe.hpp" |
fmanzano_dtk | 1:9e821e640117 | 22 | #include "USBSerial.h" |
fmanzano_dtk | 1:9e821e640117 | 23 | |
fmanzano_dtk | 1:9e821e640117 | 24 | |
fmanzano_dtk | 1:9e821e640117 | 25 | //Objetos Entradas Digitales / Seriales |
fmanzano_dtk | 1:9e821e640117 | 26 | /** |
fmanzano_dtk | 1:9e821e640117 | 27 | * @brief |
fmanzano_dtk | 1:9e821e640117 | 28 | * |
fmanzano_dtk | 1:9e821e640117 | 29 | */ |
fmanzano_dtk | 1:9e821e640117 | 30 | extern BufferedSerial avl_uart; |
fmanzano_dtk | 1:9e821e640117 | 31 | extern BufferedSerial voice_uart; |
fmanzano_dtk | 1:9e821e640117 | 32 | extern BufferedSerial fingerprint; |
fmanzano_dtk | 1:9e821e640117 | 33 | extern DigitalIn in1_ignition; |
fmanzano_dtk | 1:9e821e640117 | 34 | extern DigitalIn in2_pilot; |
fmanzano_dtk | 1:9e821e640117 | 35 | extern DigitalIn in3_copilot; |
fmanzano_dtk | 1:9e821e640117 | 36 | extern DigitalIn in4_crew; |
fmanzano_dtk | 1:9e821e640117 | 37 | extern DigitalIn in5_rain_sensor; |
fmanzano_dtk | 1:9e821e640117 | 38 | extern DigitalIn bluetooth_state; |
fmanzano_dtk | 1:9e821e640117 | 39 | extern USBSerial myPC_debug; |
fmanzano_dtk | 1:9e821e640117 | 40 | extern Ticker tick_fingerprint; |
fmanzano_dtk | 1:9e821e640117 | 41 | extern Ticker tick_safety_tip; |
fmanzano_dtk | 1:9e821e640117 | 42 | extern Ticker tick_fri_ics; |
fmanzano_dtk | 1:9e821e640117 | 43 | |
fmanzano_dtk | 1:9e821e640117 | 44 | |
fmanzano_dtk | 1:9e821e640117 | 45 | // Variables Externas |
fmanzano_dtk | 1:9e821e640117 | 46 | /** |
fmanzano_dtk | 1:9e821e640117 | 47 | * @brief |
fmanzano_dtk | 1:9e821e640117 | 48 | * |
fmanzano_dtk | 1:9e821e640117 | 49 | */ |
fmanzano_dtk | 1:9e821e640117 | 50 | extern bool ignition; |
fmanzano_dtk | 1:9e821e640117 | 51 | extern bool ignition_prev; |
fmanzano_dtk | 1:9e821e640117 | 52 | extern bool ignition_samples[4]; |
fmanzano_dtk | 1:9e821e640117 | 53 | extern int ignition_counter; |
fmanzano_dtk | 1:9e821e640117 | 54 | |
fmanzano_dtk | 1:9e821e640117 | 55 | extern bool pilot_seatbelt; |
fmanzano_dtk | 1:9e821e640117 | 56 | extern bool pilot_seatbelt_prev; |
fmanzano_dtk | 1:9e821e640117 | 57 | extern bool pilot_seatbelt_samples[4]; |
fmanzano_dtk | 1:9e821e640117 | 58 | extern int pilot_seatbelt_c; |
fmanzano_dtk | 1:9e821e640117 | 59 | |
fmanzano_dtk | 1:9e821e640117 | 60 | extern bool copilot_seatbelt; |
fmanzano_dtk | 1:9e821e640117 | 61 | extern bool copilot_seatbelt_prev; |
fmanzano_dtk | 1:9e821e640117 | 62 | extern bool copilot_seatbelt_samples[4]; |
fmanzano_dtk | 1:9e821e640117 | 63 | extern int copilot_seatbelt_c; |
fmanzano_dtk | 1:9e821e640117 | 64 | |
fmanzano_dtk | 1:9e821e640117 | 65 | extern bool crew_seatbelt; |
fmanzano_dtk | 1:9e821e640117 | 66 | extern bool crew_seatbelt_prev; |
fmanzano_dtk | 1:9e821e640117 | 67 | extern bool crew_seatbelt_samples[4]; |
fmanzano_dtk | 1:9e821e640117 | 68 | extern int crew_seatbelt_c; |
fmanzano_dtk | 1:9e821e640117 | 69 | |
fmanzano_dtk | 1:9e821e640117 | 70 | extern bool ble_connection_state; |
fmanzano_dtk | 1:9e821e640117 | 71 | extern bool ble_connection_state_prev; |
fmanzano_dtk | 1:9e821e640117 | 72 | extern bool ble_connection_state_samples[4]; |
fmanzano_dtk | 1:9e821e640117 | 73 | extern int ble_connection_state_samples_c; |
fmanzano_dtk | 1:9e821e640117 | 74 | |
fmanzano_dtk | 1:9e821e640117 | 75 | extern bool rg9_raining; |
fmanzano_dtk | 1:9e821e640117 | 76 | extern bool rg9_raining_prev; |
fmanzano_dtk | 1:9e821e640117 | 77 | extern bool rg9_raining_samples[4]; |
fmanzano_dtk | 1:9e821e640117 | 78 | extern int rg9_raining_samples_c; |
fmanzano_dtk | 1:9e821e640117 | 79 | |
fmanzano_dtk | 1:9e821e640117 | 80 | extern int flag_fingerprint_turOn; |
fmanzano_dtk | 1:9e821e640117 | 81 | extern int flag_fingerprint_Sleep; |
fmanzano_dtk | 1:9e821e640117 | 82 | extern int flag_ignition; |
fmanzano_dtk | 1:9e821e640117 | 83 | extern int flag_pilot_seatbelt; |
fmanzano_dtk | 1:9e821e640117 | 84 | extern int flag_copilot_seatbelt; |
fmanzano_dtk | 1:9e821e640117 | 85 | extern int flag_crew_pilot_seatbelt; |
fmanzano_dtk | 1:9e821e640117 | 86 | extern int flag_fingerprint_query; |
fmanzano_dtk | 1:9e821e640117 | 87 | extern int flag_ble_connection_state; |
fmanzano_dtk | 1:9e821e640117 | 88 | |
fmanzano_dtk | 1:9e821e640117 | 89 | extern bool functionality_fingerprint_reader; |
fmanzano_dtk | 1:9e821e640117 | 90 | extern bool fingerprint_remotly_disable; |
fmanzano_dtk | 1:9e821e640117 | 91 | extern bool flag_driver_loggin; |
fmanzano_dtk | 1:9e821e640117 | 92 | extern bool finterprint_flag_working; |
fmanzano_dtk | 1:9e821e640117 | 93 | extern bool fingerprint_flag_poweroff; |
fmanzano_dtk | 1:9e821e640117 | 94 | extern bool functionality_force_driver_buclke; |
fmanzano_dtk | 1:9e821e640117 | 95 | extern bool functionality_seatbelt_reading; |
fmanzano_dtk | 1:9e821e640117 | 96 | extern bool functionality_safety_tip; |
fmanzano_dtk | 1:9e821e640117 | 97 | extern bool flag_read_inputs; |
fmanzano_dtk | 1:9e821e640117 | 98 | extern bool flag_query_rain_sensor; |
fmanzano_dtk | 1:9e821e640117 | 99 | extern bool functionality_rain_sensor; |
fmanzano_dtk | 1:9e821e640117 | 100 | extern bool functionality_rainSensor_silentMode; |
fmanzano_dtk | 1:9e821e640117 | 101 | extern int flag_rainsensorDigInput; |
fmanzano_dtk | 1:9e821e640117 | 102 | |
fmanzano_dtk | 1:9e821e640117 | 103 | extern char wet_Speed_CMD[30]; |
fmanzano_dtk | 1:9e821e640117 | 104 | extern char dry_Speed_CMD[30]; |
fmanzano_dtk | 1:9e821e640117 | 105 | extern int pilot_buckleUp; |
fmanzano_dtk | 1:9e821e640117 | 106 | extern int pilot_unfasten; |
fmanzano_dtk | 1:9e821e640117 | 107 | extern int copilot_buckleUp; |
fmanzano_dtk | 1:9e821e640117 | 108 | extern int copilot_unfasten; |
fmanzano_dtk | 1:9e821e640117 | 109 | extern int crew_buckleUp; |
fmanzano_dtk | 1:9e821e640117 | 110 | extern int crew_unfasten; |
fmanzano_dtk | 1:9e821e640117 | 111 | |
fmanzano_dtk | 1:9e821e640117 | 112 | // Variables locales |
fmanzano_dtk | 1:9e821e640117 | 113 | /** |
fmanzano_dtk | 1:9e821e640117 | 114 | * @brief |
fmanzano_dtk | 1:9e821e640117 | 115 | * |
fmanzano_dtk | 1:9e821e640117 | 116 | */ |
fmanzano_dtk | 1:9e821e640117 | 117 | char gpio_buffer[64]; |
fmanzano_dtk | 1:9e821e640117 | 118 | bool estado_actual_cinturon_piloto; |
fmanzano_dtk | 1:9e821e640117 | 119 | bool estado_actual_cinturon_copiloto; |
fmanzano_dtk | 1:9e821e640117 | 120 | bool estado_actual_cinturon_tripulante; |
fmanzano_dtk | 1:9e821e640117 | 121 | bool estado_actual_sensor_lluvia; |
fmanzano_dtk | 1:9e821e640117 | 122 | extern bool estado_actual_ignicion; |
fmanzano_dtk | 1:9e821e640117 | 123 | const char TCA_ID_PILOTO[] = "TCA|101|"; |
fmanzano_dtk | 1:9e821e640117 | 124 | const char TCA_ID_COPILOTO[] = "TCA|102|"; |
fmanzano_dtk | 1:9e821e640117 | 125 | const char TCA_ID_TRIPULANTE[] = "TCA|103|"; |
fmanzano_dtk | 1:9e821e640117 | 126 | const char TCA_ID_LECTOR_HUE[] = "TCA|111|"; |
fmanzano_dtk | 1:9e821e640117 | 127 | const char TCA_ID_BLUETOOTH[] = "TCA|124|"; |
fmanzano_dtk | 1:9e821e640117 | 128 | const char TCA_ID_WEATHER[] = "TCA|120|"; |
fmanzano_dtk | 1:9e821e640117 | 129 | const char IO_ENGINE_LOCK[] = "setdigout 0?? ? ? ? ? ? ?"; |
fmanzano_dtk | 1:9e821e640117 | 130 | const char IO_ENGINE_UNLOCK[] = "setdigout 1?? ? ? ? ? ? ?"; |
fmanzano_dtk | 1:9e821e640117 | 131 | |
fmanzano_dtk | 1:9e821e640117 | 132 | #define DEBUG_GPIO_CPP |
fmanzano_dtk | 13:472d40c0fc6b | 133 | #define IO_FP_READER_GT521 1 |
fmanzano_dtk | 1:9e821e640117 | 134 | |
fmanzano_dtk | 1:9e821e640117 | 135 | /** |
fmanzano_dtk | 1:9e821e640117 | 136 | * @brief |
fmanzano_dtk | 1:9e821e640117 | 137 | * |
fmanzano_dtk | 1:9e821e640117 | 138 | */ |
fmanzano_dtk | 1:9e821e640117 | 139 | void process_Inputs() { |
fmanzano_dtk | 1:9e821e640117 | 140 | flag_read_inputs = false; |
fmanzano_dtk | 1:9e821e640117 | 141 | memset(gpio_buffer, '\0', sizeof(gpio_buffer)); |
fmanzano_dtk | 1:9e821e640117 | 142 | |
fmanzano_dtk | 1:9e821e640117 | 143 | |
fmanzano_dtk | 1:9e821e640117 | 144 | /** |
fmanzano_dtk | 1:9e821e640117 | 145 | * @brief |
fmanzano_dtk | 1:9e821e640117 | 146 | * |
fmanzano_dtk | 1:9e821e640117 | 147 | */ |
fmanzano_dtk | 1:9e821e640117 | 148 | flag_ignition = exeIgnition(&in1_ignition, ignition_samples, &ignition, &ignition_prev, &ignition_counter); |
fmanzano_dtk | 1:9e821e640117 | 149 | |
fmanzano_dtk | 1:9e821e640117 | 150 | /** |
fmanzano_dtk | 1:9e821e640117 | 151 | * @brief Construct a new if object |
fmanzano_dtk | 1:9e821e640117 | 152 | * |
fmanzano_dtk | 1:9e821e640117 | 153 | */ |
fmanzano_dtk | 1:9e821e640117 | 154 | if (flag_ignition == 1) { |
fmanzano_dtk | 1:9e821e640117 | 155 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 156 | myPC_debug.printf("\r\nGPIO - Ign ON\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 157 | #endif |
fmanzano_dtk | 1:9e821e640117 | 158 | estado_actual_ignicion = true; |
fmanzano_dtk | 1:9e821e640117 | 159 | tick_fri_ics.detach(); |
fmanzano_dtk | 1:9e821e640117 | 160 | tick_fri_ics.attach(&send_fri_ics, 300.0); |
fmanzano_dtk | 1:9e821e640117 | 161 | process_Engine_FireUp(); |
fmanzano_dtk | 1:9e821e640117 | 162 | if (rg9_raining) { |
fmanzano_dtk | 1:9e821e640117 | 163 | if (!(functionality_rainSensor_silentMode)) { |
fmanzano_dtk | 1:9e821e640117 | 164 | jq8400_addQueue(VOICE_TRACK_CONDITION_WET); |
fmanzano_dtk | 1:9e821e640117 | 165 | } |
fmanzano_dtk | 1:9e821e640117 | 166 | } |
fmanzano_dtk | 1:9e821e640117 | 167 | |
fmanzano_dtk | 1:9e821e640117 | 168 | } else if (flag_ignition == -1) { |
fmanzano_dtk | 1:9e821e640117 | 169 | jq8400_addQueue(VOICE_DOOR_SAFETY_REMINDER); |
fmanzano_dtk | 1:9e821e640117 | 170 | tick_fri_ics.detach(); |
fmanzano_dtk | 1:9e821e640117 | 171 | tick_fri_ics.attach(&send_fri_ics, 1800.0); |
fmanzano_dtk | 1:9e821e640117 | 172 | if (functionality_fingerprint_reader) { |
fmanzano_dtk | 13:472d40c0fc6b | 173 | #if IO_FP_READER_GT521 == 1 |
fmanzano_dtk | 8:a174cef25049 | 174 | FP_Close(); |
fmanzano_dtk | 8:a174cef25049 | 175 | #else |
fmanzano_dtk | 8:a174cef25049 | 176 | #endif |
fmanzano_dtk | 1:9e821e640117 | 177 | wait_us(1000000); |
fmanzano_dtk | 1:9e821e640117 | 178 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 179 | myPC_debug.printf("GPIO - Pendiente apagar FP GT521Fx...\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 180 | #endif |
fmanzano_dtk | 1:9e821e640117 | 181 | fingerprint_flag_poweroff = true; |
fmanzano_dtk | 1:9e821e640117 | 182 | } |
fmanzano_dtk | 1:9e821e640117 | 183 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 184 | myPC_debug.printf("GPIO - Ign OFF\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 185 | #endif |
fmanzano_dtk | 1:9e821e640117 | 186 | estado_actual_ignicion = false; |
fmanzano_dtk | 1:9e821e640117 | 187 | flag_driver_loggin = false; |
fmanzano_dtk | 1:9e821e640117 | 188 | if (functionality_force_driver_buclke || functionality_fingerprint_reader) { |
fmanzano_dtk | 1:9e821e640117 | 189 | tx_fmu130_command(IO_ENGINE_LOCK, &avl_uart); // No se debe enviar a desactivar la entrada. |
fmanzano_dtk | 1:9e821e640117 | 190 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 191 | myPC_debug.printf("%s\r\n", IO_ENGINE_LOCK); |
fmanzano_dtk | 1:9e821e640117 | 192 | #endif |
fmanzano_dtk | 1:9e821e640117 | 193 | } |
fmanzano_dtk | 1:9e821e640117 | 194 | flag_fingerprint_turOn = false; |
fmanzano_dtk | 1:9e821e640117 | 195 | tick_fingerprint.detach(); |
fmanzano_dtk | 1:9e821e640117 | 196 | if (functionality_safety_tip) { |
fmanzano_dtk | 1:9e821e640117 | 197 | tick_safety_tip.detach(); |
fmanzano_dtk | 1:9e821e640117 | 198 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 199 | myPC_debug.printf("GPIO - Ticker de Tip de Seguridad Detenido\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 200 | #endif |
fmanzano_dtk | 1:9e821e640117 | 201 | } |
fmanzano_dtk | 1:9e821e640117 | 202 | sprintf(gpio_buffer, "%s3", TCA_ID_LECTOR_HUE); |
fmanzano_dtk | 1:9e821e640117 | 203 | tx_fmu130_message(gpio_buffer, &avl_uart); |
fmanzano_dtk | 1:9e821e640117 | 204 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 205 | myPC_debug.printf("%s\r\n", gpio_buffer); |
fmanzano_dtk | 1:9e821e640117 | 206 | #endif |
fmanzano_dtk | 1:9e821e640117 | 207 | // Se deja activado el lector para la siguiente interacción |
fmanzano_dtk | 1:9e821e640117 | 208 | if (!(fingerprint_remotly_disable)) { |
fmanzano_dtk | 1:9e821e640117 | 209 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 210 | myPC_debug.printf("GPIO - FP Activado automaticamente\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 211 | myPC_debug.printf("%s\r\n", IO_ENGINE_LOCK); |
fmanzano_dtk | 1:9e821e640117 | 212 | #endif |
fmanzano_dtk | 1:9e821e640117 | 213 | functionality_fingerprint_reader = true; |
fmanzano_dtk | 1:9e821e640117 | 214 | tx_fmu130_command(IO_ENGINE_LOCK, &avl_uart); // No se debe enviar a desactivar la entrada. |
fmanzano_dtk | 1:9e821e640117 | 215 | } else { |
fmanzano_dtk | 1:9e821e640117 | 216 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 217 | myPC_debug.printf("GPIO - FP Desactivado remotamente\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 218 | #endif |
fmanzano_dtk | 1:9e821e640117 | 219 | } |
fmanzano_dtk | 1:9e821e640117 | 220 | } else { |
fmanzano_dtk | 1:9e821e640117 | 221 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 222 | myPC_debug.printf("GPIO - Ign sin cambio:%d\r\n", ignition); |
fmanzano_dtk | 1:9e821e640117 | 223 | #endif |
fmanzano_dtk | 1:9e821e640117 | 224 | } |
fmanzano_dtk | 1:9e821e640117 | 225 | |
fmanzano_dtk | 1:9e821e640117 | 226 | |
fmanzano_dtk | 1:9e821e640117 | 227 | /** |
fmanzano_dtk | 1:9e821e640117 | 228 | * @brief |
fmanzano_dtk | 1:9e821e640117 | 229 | * |
fmanzano_dtk | 1:9e821e640117 | 230 | */ |
fmanzano_dtk | 1:9e821e640117 | 231 | flag_ble_connection_state = exeDigInput(&bluetooth_state, ble_connection_state_samples, &ble_connection_state, &ble_connection_state_prev, &ble_connection_state_samples_c); |
fmanzano_dtk | 1:9e821e640117 | 232 | if (flag_ble_connection_state == 1) { |
fmanzano_dtk | 1:9e821e640117 | 233 | //jq8400_addQueue(VOICE_BLE_FMU130_CONNECTED); |
fmanzano_dtk | 1:9e821e640117 | 234 | flag_ble_connection_state = 0; |
fmanzano_dtk | 1:9e821e640117 | 235 | sprintf(gpio_buffer, "%s1", TCA_ID_BLUETOOTH); |
fmanzano_dtk | 1:9e821e640117 | 236 | tx_fmu130_message(gpio_buffer, &avl_uart); |
fmanzano_dtk | 1:9e821e640117 | 237 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 238 | myPC_debug.printf("GPIO - Bluetooth Conectado\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 239 | myPC_debug.printf("%s\r\n", gpio_buffer); |
fmanzano_dtk | 1:9e821e640117 | 240 | #endif |
fmanzano_dtk | 1:9e821e640117 | 241 | } else if (flag_ble_connection_state == -1) { |
fmanzano_dtk | 1:9e821e640117 | 242 | //jq8400_addQueue(VOICE_BLE_FMU130_DISCONNECTED); |
fmanzano_dtk | 1:9e821e640117 | 243 | flag_ble_connection_state = 0; |
fmanzano_dtk | 1:9e821e640117 | 244 | sprintf(gpio_buffer, "%s0", TCA_ID_BLUETOOTH); |
fmanzano_dtk | 1:9e821e640117 | 245 | tx_fmu130_message(gpio_buffer, &avl_uart); |
fmanzano_dtk | 1:9e821e640117 | 246 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 247 | myPC_debug.printf("GPIO - Bluetooth Desconectado\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 248 | myPC_debug.printf("%s\r\n", gpio_buffer); |
fmanzano_dtk | 1:9e821e640117 | 249 | #endif |
fmanzano_dtk | 1:9e821e640117 | 250 | } |
fmanzano_dtk | 1:9e821e640117 | 251 | |
fmanzano_dtk | 1:9e821e640117 | 252 | if (functionality_seatbelt_reading) { |
fmanzano_dtk | 1:9e821e640117 | 253 | /** |
fmanzano_dtk | 1:9e821e640117 | 254 | * @brief |
fmanzano_dtk | 1:9e821e640117 | 255 | * CAMIONES: INTER, KENWORK, FREIGHT |
fmanzano_dtk | 1:9e821e640117 | 256 | * Normalmente Cerrado |
fmanzano_dtk | 1:9e821e640117 | 257 | * Abrochado = -1 (buckleUp) |
fmanzano_dtk | 1:9e821e640117 | 258 | * Desabrochado = 1 (unfasten) |
fmanzano_dtk | 1:9e821e640117 | 259 | * |
fmanzano_dtk | 1:9e821e640117 | 260 | * Livianos y cinturones Chinos: |
fmanzano_dtk | 1:9e821e640117 | 261 | * Normalmente Abierto |
fmanzano_dtk | 1:9e821e640117 | 262 | * Abrochado = 1 |
fmanzano_dtk | 1:9e821e640117 | 263 | * Desabrochado = -1 |
fmanzano_dtk | 1:9e821e640117 | 264 | */ |
fmanzano_dtk | 1:9e821e640117 | 265 | |
fmanzano_dtk | 1:9e821e640117 | 266 | |
fmanzano_dtk | 1:9e821e640117 | 267 | /** |
fmanzano_dtk | 1:9e821e640117 | 268 | * @brief |
fmanzano_dtk | 1:9e821e640117 | 269 | * Lectura del Cinturón del piloto |
fmanzano_dtk | 1:9e821e640117 | 270 | * |
fmanzano_dtk | 1:9e821e640117 | 271 | */ |
fmanzano_dtk | 1:9e821e640117 | 272 | flag_pilot_seatbelt = exeDigInput(&in2_pilot, pilot_seatbelt_samples, &pilot_seatbelt, &pilot_seatbelt_prev, &pilot_seatbelt_c); |
fmanzano_dtk | 1:9e821e640117 | 273 | if (flag_pilot_seatbelt == pilot_buckleUp) { |
fmanzano_dtk | 1:9e821e640117 | 274 | estado_actual_cinturon_piloto = true; |
fmanzano_dtk | 1:9e821e640117 | 275 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 276 | myPC_debug.printf("GPIO - Piloto Abrochado\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 277 | #endif |
fmanzano_dtk | 1:9e821e640117 | 278 | if (estado_actual_ignicion) { |
fmanzano_dtk | 1:9e821e640117 | 279 | jq8400_addQueue(VOICE_DRIVER_SEATBELT_FASTENED); |
fmanzano_dtk | 1:9e821e640117 | 280 | } |
fmanzano_dtk | 1:9e821e640117 | 281 | flag_pilot_seatbelt = 0; |
fmanzano_dtk | 1:9e821e640117 | 282 | process_SeatBelt_FireUp(); |
fmanzano_dtk | 1:9e821e640117 | 283 | sprintf(gpio_buffer, "%s1", TCA_ID_PILOTO); |
fmanzano_dtk | 1:9e821e640117 | 284 | tx_fmu130_message(gpio_buffer, &avl_uart); |
fmanzano_dtk | 1:9e821e640117 | 285 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 286 | myPC_debug.printf("%s\r\n", gpio_buffer); |
fmanzano_dtk | 1:9e821e640117 | 287 | #endif |
fmanzano_dtk | 1:9e821e640117 | 288 | |
fmanzano_dtk | 1:9e821e640117 | 289 | } else if (flag_pilot_seatbelt == pilot_unfasten) { |
fmanzano_dtk | 1:9e821e640117 | 290 | estado_actual_cinturon_piloto = false; |
fmanzano_dtk | 1:9e821e640117 | 291 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 292 | myPC_debug.printf("GPIO - Piloto Desabrochado\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 293 | #endif |
fmanzano_dtk | 1:9e821e640117 | 294 | if (estado_actual_ignicion) { |
fmanzano_dtk | 1:9e821e640117 | 295 | jq8400_addQueue(VOICE_DRIVER_SEATBELT_UNFASTENED); // Evaluar si se corta el audio. |
fmanzano_dtk | 1:9e821e640117 | 296 | } |
fmanzano_dtk | 1:9e821e640117 | 297 | flag_pilot_seatbelt = 0; |
fmanzano_dtk | 1:9e821e640117 | 298 | sprintf(gpio_buffer, "%s0", TCA_ID_PILOTO); |
fmanzano_dtk | 1:9e821e640117 | 299 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 300 | myPC_debug.printf("%s\r\n", gpio_buffer); |
fmanzano_dtk | 1:9e821e640117 | 301 | #endif |
fmanzano_dtk | 1:9e821e640117 | 302 | tx_fmu130_message(gpio_buffer, &avl_uart); |
fmanzano_dtk | 1:9e821e640117 | 303 | if (functionality_fingerprint_reader && functionality_force_driver_buclke) { ///// PENDIENTE |
fmanzano_dtk | 13:472d40c0fc6b | 304 | #if IO_FP_READER_GT521 == 1 |
fmanzano_dtk | 8:a174cef25049 | 305 | FP_Close(); |
fmanzano_dtk | 8:a174cef25049 | 306 | #else |
fmanzano_dtk | 8:a174cef25049 | 307 | #endif |
fmanzano_dtk | 1:9e821e640117 | 308 | wait_us(1000000); |
fmanzano_dtk | 1:9e821e640117 | 309 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 310 | myPC_debug.printf("GPIO - Pendiente apagar FP GT521Fx...\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 311 | #endif |
fmanzano_dtk | 1:9e821e640117 | 312 | fingerprint_flag_poweroff = true; |
fmanzano_dtk | 1:9e821e640117 | 313 | } |
fmanzano_dtk | 1:9e821e640117 | 314 | } |
fmanzano_dtk | 1:9e821e640117 | 315 | |
fmanzano_dtk | 1:9e821e640117 | 316 | |
fmanzano_dtk | 1:9e821e640117 | 317 | /** |
fmanzano_dtk | 1:9e821e640117 | 318 | * @brief |
fmanzano_dtk | 1:9e821e640117 | 319 | * |
fmanzano_dtk | 1:9e821e640117 | 320 | */ |
fmanzano_dtk | 1:9e821e640117 | 321 | flag_copilot_seatbelt = exeDigInput(&in3_copilot, copilot_seatbelt_samples, &copilot_seatbelt, &copilot_seatbelt_prev, &copilot_seatbelt_c); |
fmanzano_dtk | 1:9e821e640117 | 322 | if (flag_copilot_seatbelt == copilot_buckleUp) { |
fmanzano_dtk | 1:9e821e640117 | 323 | estado_actual_cinturon_copiloto = true; |
fmanzano_dtk | 1:9e821e640117 | 324 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 325 | myPC_debug.printf("GPIO - Copiloto Abrochado\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 326 | #endif |
fmanzano_dtk | 1:9e821e640117 | 327 | if (estado_actual_ignicion) { |
fmanzano_dtk | 1:9e821e640117 | 328 | jq8400_addQueue(VOICE_COPILOT_SEATBELT_FASTENED); |
fmanzano_dtk | 1:9e821e640117 | 329 | } |
fmanzano_dtk | 1:9e821e640117 | 330 | flag_copilot_seatbelt = 0; |
fmanzano_dtk | 1:9e821e640117 | 331 | sprintf(gpio_buffer, "%s1", TCA_ID_COPILOTO); |
fmanzano_dtk | 1:9e821e640117 | 332 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 333 | myPC_debug.printf("%s\r\n", gpio_buffer); |
fmanzano_dtk | 1:9e821e640117 | 334 | #endif |
fmanzano_dtk | 1:9e821e640117 | 335 | tx_fmu130_message(gpio_buffer, &avl_uart); |
fmanzano_dtk | 1:9e821e640117 | 336 | } else if (flag_copilot_seatbelt == copilot_unfasten) { |
fmanzano_dtk | 1:9e821e640117 | 337 | estado_actual_cinturon_copiloto = false; |
fmanzano_dtk | 1:9e821e640117 | 338 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 339 | myPC_debug.printf("GPIO - copiloto Desabrochado\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 340 | #endif |
fmanzano_dtk | 1:9e821e640117 | 341 | if (estado_actual_ignicion) { |
fmanzano_dtk | 1:9e821e640117 | 342 | jq8400_addQueue(VOICE_COPILOT_SEATBELT_UNFASTENED); |
fmanzano_dtk | 1:9e821e640117 | 343 | } |
fmanzano_dtk | 1:9e821e640117 | 344 | flag_copilot_seatbelt = 0; |
fmanzano_dtk | 1:9e821e640117 | 345 | sprintf(gpio_buffer, "%s0", TCA_ID_COPILOTO); |
fmanzano_dtk | 1:9e821e640117 | 346 | tx_fmu130_message(gpio_buffer, &avl_uart); |
fmanzano_dtk | 1:9e821e640117 | 347 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 348 | myPC_debug.printf("%s\r\n", gpio_buffer); |
fmanzano_dtk | 1:9e821e640117 | 349 | #endif |
fmanzano_dtk | 1:9e821e640117 | 350 | } |
fmanzano_dtk | 1:9e821e640117 | 351 | |
fmanzano_dtk | 1:9e821e640117 | 352 | |
fmanzano_dtk | 1:9e821e640117 | 353 | /** |
fmanzano_dtk | 1:9e821e640117 | 354 | * @brief |
fmanzano_dtk | 1:9e821e640117 | 355 | * |
fmanzano_dtk | 1:9e821e640117 | 356 | */ |
fmanzano_dtk | 1:9e821e640117 | 357 | flag_crew_pilot_seatbelt = exeDigInput(&in4_crew, crew_seatbelt_samples, &crew_seatbelt, &crew_seatbelt_prev, &crew_seatbelt_c); |
fmanzano_dtk | 1:9e821e640117 | 358 | if (flag_crew_pilot_seatbelt == crew_buckleUp) { |
fmanzano_dtk | 1:9e821e640117 | 359 | estado_actual_cinturon_tripulante = true; |
fmanzano_dtk | 1:9e821e640117 | 360 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 361 | myPC_debug.printf("GPIO - Tripulante Abrochado\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 362 | #endif |
fmanzano_dtk | 1:9e821e640117 | 363 | if (estado_actual_ignicion) { |
fmanzano_dtk | 1:9e821e640117 | 364 | jq8400_addQueue(VOICE_CREW_SEATBELT_FASTENED); |
fmanzano_dtk | 1:9e821e640117 | 365 | } |
fmanzano_dtk | 1:9e821e640117 | 366 | flag_crew_pilot_seatbelt = 0; |
fmanzano_dtk | 1:9e821e640117 | 367 | sprintf(gpio_buffer, "%s1", TCA_ID_TRIPULANTE); |
fmanzano_dtk | 1:9e821e640117 | 368 | tx_fmu130_message(gpio_buffer, &avl_uart); |
fmanzano_dtk | 1:9e821e640117 | 369 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 370 | myPC_debug.printf("%s\r\n", gpio_buffer); |
fmanzano_dtk | 1:9e821e640117 | 371 | #endif |
fmanzano_dtk | 1:9e821e640117 | 372 | } else if (flag_crew_pilot_seatbelt == crew_unfasten) { |
fmanzano_dtk | 1:9e821e640117 | 373 | estado_actual_cinturon_tripulante = false; |
fmanzano_dtk | 1:9e821e640117 | 374 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 375 | myPC_debug.printf("GPIO - Tripulante Desabrochado\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 376 | #endif |
fmanzano_dtk | 1:9e821e640117 | 377 | if (estado_actual_ignicion) { |
fmanzano_dtk | 1:9e821e640117 | 378 | jq8400_addQueue(VOICE_CREW_SEATBELT_UNFASTENED); |
fmanzano_dtk | 1:9e821e640117 | 379 | } |
fmanzano_dtk | 1:9e821e640117 | 380 | flag_crew_pilot_seatbelt = 0; |
fmanzano_dtk | 1:9e821e640117 | 381 | sprintf(gpio_buffer, "%s0", TCA_ID_TRIPULANTE); |
fmanzano_dtk | 1:9e821e640117 | 382 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 383 | myPC_debug.printf("%s\r\n", gpio_buffer); |
fmanzano_dtk | 1:9e821e640117 | 384 | #endif |
fmanzano_dtk | 1:9e821e640117 | 385 | tx_fmu130_message(gpio_buffer, &avl_uart); |
fmanzano_dtk | 1:9e821e640117 | 386 | } |
fmanzano_dtk | 1:9e821e640117 | 387 | } |
fmanzano_dtk | 1:9e821e640117 | 388 | } |
fmanzano_dtk | 1:9e821e640117 | 389 | |
fmanzano_dtk | 1:9e821e640117 | 390 | |
fmanzano_dtk | 1:9e821e640117 | 391 | void process_inputRainSensor() { |
fmanzano_dtk | 1:9e821e640117 | 392 | flag_query_rain_sensor = false; |
fmanzano_dtk | 1:9e821e640117 | 393 | if (functionality_rain_sensor) { |
fmanzano_dtk | 1:9e821e640117 | 394 | memset(gpio_buffer, '\0', sizeof(gpio_buffer)); |
fmanzano_dtk | 1:9e821e640117 | 395 | flag_rainsensorDigInput = exeDigRain(&in5_rain_sensor, rg9_raining_samples, &rg9_raining, &rg9_raining_prev, &rg9_raining_samples_c); |
fmanzano_dtk | 1:9e821e640117 | 396 | if (flag_rainsensorDigInput == 1) { |
fmanzano_dtk | 1:9e821e640117 | 397 | estado_actual_sensor_lluvia = true; |
fmanzano_dtk | 1:9e821e640117 | 398 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 399 | myPC_debug.printf("GPIO - RG9 Lloviendo \r\n"); |
fmanzano_dtk | 1:9e821e640117 | 400 | #endif |
fmanzano_dtk | 1:9e821e640117 | 401 | flag_rainsensorDigInput = 0; |
fmanzano_dtk | 1:9e821e640117 | 402 | sprintf(gpio_buffer, "%s%d", TCA_ID_WEATHER, 1); |
fmanzano_dtk | 1:9e821e640117 | 403 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 404 | myPC_debug.printf("%s\r\n", gpio_buffer); |
fmanzano_dtk | 1:9e821e640117 | 405 | #endif |
fmanzano_dtk | 1:9e821e640117 | 406 | tx_fmu130_message(gpio_buffer, &avl_uart); |
fmanzano_dtk | 1:9e821e640117 | 407 | if (functionality_rainSensor_silentMode) { |
fmanzano_dtk | 1:9e821e640117 | 408 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 409 | myPC_debug.printf("GPIO - RG9 Modo silencioso no se notifica voz ni cambia velocidad\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 410 | #endif |
fmanzano_dtk | 1:9e821e640117 | 411 | } else { |
fmanzano_dtk | 1:9e821e640117 | 412 | if (estado_actual_ignicion) { |
fmanzano_dtk | 1:9e821e640117 | 413 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 414 | myPC_debug.printf("GPIO - RG9 - Condicion de pista mojada\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 415 | #endif |
fmanzano_dtk | 1:9e821e640117 | 416 | jq8400_addQueue(VOICE_TRACK_CONDITION_WET); |
fmanzano_dtk | 1:9e821e640117 | 417 | } |
fmanzano_dtk | 1:9e821e640117 | 418 | tx_fmu130_var_command(wet_Speed_CMD, &avl_uart); |
fmanzano_dtk | 1:9e821e640117 | 419 | } |
fmanzano_dtk | 1:9e821e640117 | 420 | } else if (flag_rainsensorDigInput == -1) { |
fmanzano_dtk | 1:9e821e640117 | 421 | estado_actual_sensor_lluvia = false; |
fmanzano_dtk | 1:9e821e640117 | 422 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 423 | myPC_debug.printf("GPIO - RG9 Seco\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 424 | #endif |
fmanzano_dtk | 1:9e821e640117 | 425 | flag_rainsensorDigInput = 0; |
fmanzano_dtk | 1:9e821e640117 | 426 | sprintf(gpio_buffer, "%s%d", TCA_ID_WEATHER, 0); |
fmanzano_dtk | 1:9e821e640117 | 427 | tx_fmu130_message(gpio_buffer, &avl_uart); |
fmanzano_dtk | 1:9e821e640117 | 428 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 429 | myPC_debug.printf("%s\r\n", gpio_buffer); |
fmanzano_dtk | 1:9e821e640117 | 430 | #endif |
fmanzano_dtk | 1:9e821e640117 | 431 | if (functionality_rainSensor_silentMode) { |
fmanzano_dtk | 1:9e821e640117 | 432 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 433 | myPC_debug.printf("GPIO - RG9 Modo silencioso no se notifica voz ni cambia velocidad\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 434 | #endif |
fmanzano_dtk | 1:9e821e640117 | 435 | } else { |
fmanzano_dtk | 1:9e821e640117 | 436 | if (estado_actual_ignicion) { |
fmanzano_dtk | 1:9e821e640117 | 437 | #ifdef DEBUG_GPIO_CPP |
fmanzano_dtk | 1:9e821e640117 | 438 | myPC_debug.printf("GPIO - RG9 - Condicion de pista seca\r\n"); |
fmanzano_dtk | 1:9e821e640117 | 439 | #endif |
fmanzano_dtk | 1:9e821e640117 | 440 | jq8400_addQueue(VOICE_TRACK_CONDITION_DRY); |
fmanzano_dtk | 1:9e821e640117 | 441 | } |
fmanzano_dtk | 1:9e821e640117 | 442 | tx_fmu130_var_command(dry_Speed_CMD, &avl_uart); |
fmanzano_dtk | 1:9e821e640117 | 443 | } |
fmanzano_dtk | 1:9e821e640117 | 444 | } |
fmanzano_dtk | 1:9e821e640117 | 445 | } |
fmanzano_dtk | 1:9e821e640117 | 446 | } |