Proyecto ABInBev para la tarjeta Guaria 1/2.

Committer:
fmanzano_dtk
Date:
Mon Jul 04 23:23:01 2022 -0600
Revision:
7:01141979e5f2
Parent:
1:9e821e640117
Child:
8:a174cef25049
Se agregan las definiciones para soportar dos lectores de huellas

Who changed what in which revision?

UserRevisionLine numberNew 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 7:01141979e5f2 133 #define 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 1:9e821e640117 173 FP_Close();
fmanzano_dtk 1:9e821e640117 174 wait_us(1000000);
fmanzano_dtk 1:9e821e640117 175 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 176 myPC_debug.printf("GPIO - Pendiente apagar FP GT521Fx...\r\n");
fmanzano_dtk 1:9e821e640117 177 #endif
fmanzano_dtk 1:9e821e640117 178 fingerprint_flag_poweroff = true;
fmanzano_dtk 1:9e821e640117 179 }
fmanzano_dtk 1:9e821e640117 180 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 181 myPC_debug.printf("GPIO - Ign OFF\r\n");
fmanzano_dtk 1:9e821e640117 182 #endif
fmanzano_dtk 1:9e821e640117 183 estado_actual_ignicion = false;
fmanzano_dtk 1:9e821e640117 184 flag_driver_loggin = false;
fmanzano_dtk 1:9e821e640117 185 if (functionality_force_driver_buclke || functionality_fingerprint_reader) {
fmanzano_dtk 1:9e821e640117 186 tx_fmu130_command(IO_ENGINE_LOCK, &avl_uart); // No se debe enviar a desactivar la entrada.
fmanzano_dtk 1:9e821e640117 187 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 188 myPC_debug.printf("%s\r\n", IO_ENGINE_LOCK);
fmanzano_dtk 1:9e821e640117 189 #endif
fmanzano_dtk 1:9e821e640117 190 }
fmanzano_dtk 1:9e821e640117 191 flag_fingerprint_turOn = false;
fmanzano_dtk 1:9e821e640117 192 tick_fingerprint.detach();
fmanzano_dtk 1:9e821e640117 193 if (functionality_safety_tip) {
fmanzano_dtk 1:9e821e640117 194 tick_safety_tip.detach();
fmanzano_dtk 1:9e821e640117 195 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 196 myPC_debug.printf("GPIO - Ticker de Tip de Seguridad Detenido\r\n");
fmanzano_dtk 1:9e821e640117 197 #endif
fmanzano_dtk 1:9e821e640117 198 }
fmanzano_dtk 1:9e821e640117 199 sprintf(gpio_buffer, "%s3", TCA_ID_LECTOR_HUE);
fmanzano_dtk 1:9e821e640117 200 tx_fmu130_message(gpio_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 201 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 202 myPC_debug.printf("%s\r\n", gpio_buffer);
fmanzano_dtk 1:9e821e640117 203 #endif
fmanzano_dtk 1:9e821e640117 204 // Se deja activado el lector para la siguiente interacción
fmanzano_dtk 1:9e821e640117 205 if (!(fingerprint_remotly_disable)) {
fmanzano_dtk 1:9e821e640117 206 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 207 myPC_debug.printf("GPIO - FP Activado automaticamente\r\n");
fmanzano_dtk 1:9e821e640117 208 myPC_debug.printf("%s\r\n", IO_ENGINE_LOCK);
fmanzano_dtk 1:9e821e640117 209 #endif
fmanzano_dtk 1:9e821e640117 210 functionality_fingerprint_reader = true;
fmanzano_dtk 1:9e821e640117 211 tx_fmu130_command(IO_ENGINE_LOCK, &avl_uart); // No se debe enviar a desactivar la entrada.
fmanzano_dtk 1:9e821e640117 212 } else {
fmanzano_dtk 1:9e821e640117 213 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 214 myPC_debug.printf("GPIO - FP Desactivado remotamente\r\n");
fmanzano_dtk 1:9e821e640117 215 #endif
fmanzano_dtk 1:9e821e640117 216 }
fmanzano_dtk 1:9e821e640117 217 } else {
fmanzano_dtk 1:9e821e640117 218 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 219 myPC_debug.printf("GPIO - Ign sin cambio:%d\r\n", ignition);
fmanzano_dtk 1:9e821e640117 220 #endif
fmanzano_dtk 1:9e821e640117 221 }
fmanzano_dtk 1:9e821e640117 222
fmanzano_dtk 1:9e821e640117 223
fmanzano_dtk 1:9e821e640117 224 /**
fmanzano_dtk 1:9e821e640117 225 * @brief
fmanzano_dtk 1:9e821e640117 226 *
fmanzano_dtk 1:9e821e640117 227 */
fmanzano_dtk 1:9e821e640117 228 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 229 if (flag_ble_connection_state == 1) {
fmanzano_dtk 1:9e821e640117 230 //jq8400_addQueue(VOICE_BLE_FMU130_CONNECTED);
fmanzano_dtk 1:9e821e640117 231 flag_ble_connection_state = 0;
fmanzano_dtk 1:9e821e640117 232 sprintf(gpio_buffer, "%s1", TCA_ID_BLUETOOTH);
fmanzano_dtk 1:9e821e640117 233 tx_fmu130_message(gpio_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 234 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 235 myPC_debug.printf("GPIO - Bluetooth Conectado\r\n");
fmanzano_dtk 1:9e821e640117 236 myPC_debug.printf("%s\r\n", gpio_buffer);
fmanzano_dtk 1:9e821e640117 237 #endif
fmanzano_dtk 1:9e821e640117 238 } else if (flag_ble_connection_state == -1) {
fmanzano_dtk 1:9e821e640117 239 //jq8400_addQueue(VOICE_BLE_FMU130_DISCONNECTED);
fmanzano_dtk 1:9e821e640117 240 flag_ble_connection_state = 0;
fmanzano_dtk 1:9e821e640117 241 sprintf(gpio_buffer, "%s0", TCA_ID_BLUETOOTH);
fmanzano_dtk 1:9e821e640117 242 tx_fmu130_message(gpio_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 243 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 244 myPC_debug.printf("GPIO - Bluetooth Desconectado\r\n");
fmanzano_dtk 1:9e821e640117 245 myPC_debug.printf("%s\r\n", gpio_buffer);
fmanzano_dtk 1:9e821e640117 246 #endif
fmanzano_dtk 1:9e821e640117 247 }
fmanzano_dtk 1:9e821e640117 248
fmanzano_dtk 1:9e821e640117 249 if (functionality_seatbelt_reading) {
fmanzano_dtk 1:9e821e640117 250 /**
fmanzano_dtk 1:9e821e640117 251 * @brief
fmanzano_dtk 1:9e821e640117 252 * CAMIONES: INTER, KENWORK, FREIGHT
fmanzano_dtk 1:9e821e640117 253 * Normalmente Cerrado
fmanzano_dtk 1:9e821e640117 254 * Abrochado = -1 (buckleUp)
fmanzano_dtk 1:9e821e640117 255 * Desabrochado = 1 (unfasten)
fmanzano_dtk 1:9e821e640117 256 *
fmanzano_dtk 1:9e821e640117 257 * Livianos y cinturones Chinos:
fmanzano_dtk 1:9e821e640117 258 * Normalmente Abierto
fmanzano_dtk 1:9e821e640117 259 * Abrochado = 1
fmanzano_dtk 1:9e821e640117 260 * Desabrochado = -1
fmanzano_dtk 1:9e821e640117 261 */
fmanzano_dtk 1:9e821e640117 262
fmanzano_dtk 1:9e821e640117 263
fmanzano_dtk 1:9e821e640117 264 /**
fmanzano_dtk 1:9e821e640117 265 * @brief
fmanzano_dtk 1:9e821e640117 266 * Lectura del Cinturón del piloto
fmanzano_dtk 1:9e821e640117 267 *
fmanzano_dtk 1:9e821e640117 268 */
fmanzano_dtk 1:9e821e640117 269 flag_pilot_seatbelt = exeDigInput(&in2_pilot, pilot_seatbelt_samples, &pilot_seatbelt, &pilot_seatbelt_prev, &pilot_seatbelt_c);
fmanzano_dtk 1:9e821e640117 270 if (flag_pilot_seatbelt == pilot_buckleUp) {
fmanzano_dtk 1:9e821e640117 271 estado_actual_cinturon_piloto = true;
fmanzano_dtk 1:9e821e640117 272 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 273 myPC_debug.printf("GPIO - Piloto Abrochado\r\n");
fmanzano_dtk 1:9e821e640117 274 #endif
fmanzano_dtk 1:9e821e640117 275 if (estado_actual_ignicion) {
fmanzano_dtk 1:9e821e640117 276 jq8400_addQueue(VOICE_DRIVER_SEATBELT_FASTENED);
fmanzano_dtk 1:9e821e640117 277 }
fmanzano_dtk 1:9e821e640117 278 flag_pilot_seatbelt = 0;
fmanzano_dtk 1:9e821e640117 279 process_SeatBelt_FireUp();
fmanzano_dtk 1:9e821e640117 280 sprintf(gpio_buffer, "%s1", TCA_ID_PILOTO);
fmanzano_dtk 1:9e821e640117 281 tx_fmu130_message(gpio_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 282 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 283 myPC_debug.printf("%s\r\n", gpio_buffer);
fmanzano_dtk 1:9e821e640117 284 #endif
fmanzano_dtk 1:9e821e640117 285
fmanzano_dtk 1:9e821e640117 286 } else if (flag_pilot_seatbelt == pilot_unfasten) {
fmanzano_dtk 1:9e821e640117 287 estado_actual_cinturon_piloto = false;
fmanzano_dtk 1:9e821e640117 288 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 289 myPC_debug.printf("GPIO - Piloto Desabrochado\r\n");
fmanzano_dtk 1:9e821e640117 290 #endif
fmanzano_dtk 1:9e821e640117 291 if (estado_actual_ignicion) {
fmanzano_dtk 1:9e821e640117 292 jq8400_addQueue(VOICE_DRIVER_SEATBELT_UNFASTENED); // Evaluar si se corta el audio.
fmanzano_dtk 1:9e821e640117 293 }
fmanzano_dtk 1:9e821e640117 294 flag_pilot_seatbelt = 0;
fmanzano_dtk 1:9e821e640117 295 sprintf(gpio_buffer, "%s0", TCA_ID_PILOTO);
fmanzano_dtk 1:9e821e640117 296 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 297 myPC_debug.printf("%s\r\n", gpio_buffer);
fmanzano_dtk 1:9e821e640117 298 #endif
fmanzano_dtk 1:9e821e640117 299 tx_fmu130_message(gpio_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 300 if (functionality_fingerprint_reader && functionality_force_driver_buclke) { ///// PENDIENTE
fmanzano_dtk 1:9e821e640117 301 FP_Close();
fmanzano_dtk 1:9e821e640117 302 wait_us(1000000);
fmanzano_dtk 1:9e821e640117 303 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 304 myPC_debug.printf("GPIO - Pendiente apagar FP GT521Fx...\r\n");
fmanzano_dtk 1:9e821e640117 305 #endif
fmanzano_dtk 1:9e821e640117 306 fingerprint_flag_poweroff = true;
fmanzano_dtk 1:9e821e640117 307 }
fmanzano_dtk 1:9e821e640117 308 }
fmanzano_dtk 1:9e821e640117 309
fmanzano_dtk 1:9e821e640117 310
fmanzano_dtk 1:9e821e640117 311 /**
fmanzano_dtk 1:9e821e640117 312 * @brief
fmanzano_dtk 1:9e821e640117 313 *
fmanzano_dtk 1:9e821e640117 314 */
fmanzano_dtk 1:9e821e640117 315 flag_copilot_seatbelt = exeDigInput(&in3_copilot, copilot_seatbelt_samples, &copilot_seatbelt, &copilot_seatbelt_prev, &copilot_seatbelt_c);
fmanzano_dtk 1:9e821e640117 316 if (flag_copilot_seatbelt == copilot_buckleUp) {
fmanzano_dtk 1:9e821e640117 317 estado_actual_cinturon_copiloto = true;
fmanzano_dtk 1:9e821e640117 318 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 319 myPC_debug.printf("GPIO - Copiloto Abrochado\r\n");
fmanzano_dtk 1:9e821e640117 320 #endif
fmanzano_dtk 1:9e821e640117 321 if (estado_actual_ignicion) {
fmanzano_dtk 1:9e821e640117 322 jq8400_addQueue(VOICE_COPILOT_SEATBELT_FASTENED);
fmanzano_dtk 1:9e821e640117 323 }
fmanzano_dtk 1:9e821e640117 324 flag_copilot_seatbelt = 0;
fmanzano_dtk 1:9e821e640117 325 sprintf(gpio_buffer, "%s1", TCA_ID_COPILOTO);
fmanzano_dtk 1:9e821e640117 326 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 327 myPC_debug.printf("%s\r\n", gpio_buffer);
fmanzano_dtk 1:9e821e640117 328 #endif
fmanzano_dtk 1:9e821e640117 329 tx_fmu130_message(gpio_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 330 } else if (flag_copilot_seatbelt == copilot_unfasten) {
fmanzano_dtk 1:9e821e640117 331 estado_actual_cinturon_copiloto = false;
fmanzano_dtk 1:9e821e640117 332 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 333 myPC_debug.printf("GPIO - copiloto Desabrochado\r\n");
fmanzano_dtk 1:9e821e640117 334 #endif
fmanzano_dtk 1:9e821e640117 335 if (estado_actual_ignicion) {
fmanzano_dtk 1:9e821e640117 336 jq8400_addQueue(VOICE_COPILOT_SEATBELT_UNFASTENED);
fmanzano_dtk 1:9e821e640117 337 }
fmanzano_dtk 1:9e821e640117 338 flag_copilot_seatbelt = 0;
fmanzano_dtk 1:9e821e640117 339 sprintf(gpio_buffer, "%s0", TCA_ID_COPILOTO);
fmanzano_dtk 1:9e821e640117 340 tx_fmu130_message(gpio_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 341 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 342 myPC_debug.printf("%s\r\n", gpio_buffer);
fmanzano_dtk 1:9e821e640117 343 #endif
fmanzano_dtk 1:9e821e640117 344 }
fmanzano_dtk 1:9e821e640117 345
fmanzano_dtk 1:9e821e640117 346
fmanzano_dtk 1:9e821e640117 347 /**
fmanzano_dtk 1:9e821e640117 348 * @brief
fmanzano_dtk 1:9e821e640117 349 *
fmanzano_dtk 1:9e821e640117 350 */
fmanzano_dtk 1:9e821e640117 351 flag_crew_pilot_seatbelt = exeDigInput(&in4_crew, crew_seatbelt_samples, &crew_seatbelt, &crew_seatbelt_prev, &crew_seatbelt_c);
fmanzano_dtk 1:9e821e640117 352 if (flag_crew_pilot_seatbelt == crew_buckleUp) {
fmanzano_dtk 1:9e821e640117 353 estado_actual_cinturon_tripulante = true;
fmanzano_dtk 1:9e821e640117 354 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 355 myPC_debug.printf("GPIO - Tripulante Abrochado\r\n");
fmanzano_dtk 1:9e821e640117 356 #endif
fmanzano_dtk 1:9e821e640117 357 if (estado_actual_ignicion) {
fmanzano_dtk 1:9e821e640117 358 jq8400_addQueue(VOICE_CREW_SEATBELT_FASTENED);
fmanzano_dtk 1:9e821e640117 359 }
fmanzano_dtk 1:9e821e640117 360 flag_crew_pilot_seatbelt = 0;
fmanzano_dtk 1:9e821e640117 361 sprintf(gpio_buffer, "%s1", TCA_ID_TRIPULANTE);
fmanzano_dtk 1:9e821e640117 362 tx_fmu130_message(gpio_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 363 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 364 myPC_debug.printf("%s\r\n", gpio_buffer);
fmanzano_dtk 1:9e821e640117 365 #endif
fmanzano_dtk 1:9e821e640117 366 } else if (flag_crew_pilot_seatbelt == crew_unfasten) {
fmanzano_dtk 1:9e821e640117 367 estado_actual_cinturon_tripulante = false;
fmanzano_dtk 1:9e821e640117 368 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 369 myPC_debug.printf("GPIO - Tripulante Desabrochado\r\n");
fmanzano_dtk 1:9e821e640117 370 #endif
fmanzano_dtk 1:9e821e640117 371 if (estado_actual_ignicion) {
fmanzano_dtk 1:9e821e640117 372 jq8400_addQueue(VOICE_CREW_SEATBELT_UNFASTENED);
fmanzano_dtk 1:9e821e640117 373 }
fmanzano_dtk 1:9e821e640117 374 flag_crew_pilot_seatbelt = 0;
fmanzano_dtk 1:9e821e640117 375 sprintf(gpio_buffer, "%s0", TCA_ID_TRIPULANTE);
fmanzano_dtk 1:9e821e640117 376 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 377 myPC_debug.printf("%s\r\n", gpio_buffer);
fmanzano_dtk 1:9e821e640117 378 #endif
fmanzano_dtk 1:9e821e640117 379 tx_fmu130_message(gpio_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 380 }
fmanzano_dtk 1:9e821e640117 381 }
fmanzano_dtk 1:9e821e640117 382 }
fmanzano_dtk 1:9e821e640117 383
fmanzano_dtk 1:9e821e640117 384
fmanzano_dtk 1:9e821e640117 385 void process_inputRainSensor() {
fmanzano_dtk 1:9e821e640117 386 flag_query_rain_sensor = false;
fmanzano_dtk 1:9e821e640117 387 if (functionality_rain_sensor) {
fmanzano_dtk 1:9e821e640117 388 memset(gpio_buffer, '\0', sizeof(gpio_buffer));
fmanzano_dtk 1:9e821e640117 389 flag_rainsensorDigInput = exeDigRain(&in5_rain_sensor, rg9_raining_samples, &rg9_raining, &rg9_raining_prev, &rg9_raining_samples_c);
fmanzano_dtk 1:9e821e640117 390 if (flag_rainsensorDigInput == 1) {
fmanzano_dtk 1:9e821e640117 391 estado_actual_sensor_lluvia = true;
fmanzano_dtk 1:9e821e640117 392 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 393 myPC_debug.printf("GPIO - RG9 Lloviendo \r\n");
fmanzano_dtk 1:9e821e640117 394 #endif
fmanzano_dtk 1:9e821e640117 395 flag_rainsensorDigInput = 0;
fmanzano_dtk 1:9e821e640117 396 sprintf(gpio_buffer, "%s%d", TCA_ID_WEATHER, 1);
fmanzano_dtk 1:9e821e640117 397 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 398 myPC_debug.printf("%s\r\n", gpio_buffer);
fmanzano_dtk 1:9e821e640117 399 #endif
fmanzano_dtk 1:9e821e640117 400 tx_fmu130_message(gpio_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 401 if (functionality_rainSensor_silentMode) {
fmanzano_dtk 1:9e821e640117 402 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 403 myPC_debug.printf("GPIO - RG9 Modo silencioso no se notifica voz ni cambia velocidad\r\n");
fmanzano_dtk 1:9e821e640117 404 #endif
fmanzano_dtk 1:9e821e640117 405 } else {
fmanzano_dtk 1:9e821e640117 406 if (estado_actual_ignicion) {
fmanzano_dtk 1:9e821e640117 407 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 408 myPC_debug.printf("GPIO - RG9 - Condicion de pista mojada\r\n");
fmanzano_dtk 1:9e821e640117 409 #endif
fmanzano_dtk 1:9e821e640117 410 jq8400_addQueue(VOICE_TRACK_CONDITION_WET);
fmanzano_dtk 1:9e821e640117 411 }
fmanzano_dtk 1:9e821e640117 412 tx_fmu130_var_command(wet_Speed_CMD, &avl_uart);
fmanzano_dtk 1:9e821e640117 413 }
fmanzano_dtk 1:9e821e640117 414 } else if (flag_rainsensorDigInput == -1) {
fmanzano_dtk 1:9e821e640117 415 estado_actual_sensor_lluvia = false;
fmanzano_dtk 1:9e821e640117 416 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 417 myPC_debug.printf("GPIO - RG9 Seco\r\n");
fmanzano_dtk 1:9e821e640117 418 #endif
fmanzano_dtk 1:9e821e640117 419 flag_rainsensorDigInput = 0;
fmanzano_dtk 1:9e821e640117 420 sprintf(gpio_buffer, "%s%d", TCA_ID_WEATHER, 0);
fmanzano_dtk 1:9e821e640117 421 tx_fmu130_message(gpio_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 422 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 423 myPC_debug.printf("%s\r\n", gpio_buffer);
fmanzano_dtk 1:9e821e640117 424 #endif
fmanzano_dtk 1:9e821e640117 425 if (functionality_rainSensor_silentMode) {
fmanzano_dtk 1:9e821e640117 426 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 427 myPC_debug.printf("GPIO - RG9 Modo silencioso no se notifica voz ni cambia velocidad\r\n");
fmanzano_dtk 1:9e821e640117 428 #endif
fmanzano_dtk 1:9e821e640117 429 } else {
fmanzano_dtk 1:9e821e640117 430 if (estado_actual_ignicion) {
fmanzano_dtk 1:9e821e640117 431 #ifdef DEBUG_GPIO_CPP
fmanzano_dtk 1:9e821e640117 432 myPC_debug.printf("GPIO - RG9 - Condicion de pista seca\r\n");
fmanzano_dtk 1:9e821e640117 433 #endif
fmanzano_dtk 1:9e821e640117 434 jq8400_addQueue(VOICE_TRACK_CONDITION_DRY);
fmanzano_dtk 1:9e821e640117 435 }
fmanzano_dtk 1:9e821e640117 436 tx_fmu130_var_command(dry_Speed_CMD, &avl_uart);
fmanzano_dtk 1:9e821e640117 437 }
fmanzano_dtk 1:9e821e640117 438 }
fmanzano_dtk 1:9e821e640117 439 }
fmanzano_dtk 1:9e821e640117 440 }