Proyecto ABInBev para la tarjeta Guaria 1/2.

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?

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 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 }