Proyecto ABInBev para la tarjeta Guaria 1/2.

Committer:
fmanzano_dtk
Date:
Thu Jul 07 16:17:25 2022 +0000
Revision:
19:5580a9a54ad5
Parent:
13:472d40c0fc6b
Sincronizacion;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fmanzano_dtk 1:9e821e640117 1 /**
fmanzano_dtk 1:9e821e640117 2 * @file fireup_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 2021-01-14
fmanzano_dtk 1:9e821e640117 7 *
fmanzano_dtk 1:9e821e640117 8 * @copyright Copyright (c) 2021
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 "BufferedSerial.h"
fmanzano_dtk 1:9e821e640117 14 //#include "GT521FX.hpp"
fmanzano_dtk 1:9e821e640117 15 #include "New_GT521Fx.hpp"
fmanzano_dtk 1:9e821e640117 16 #include "playlist.hpp"
fmanzano_dtk 1:9e821e640117 17 #include "voice_cn_pa.hpp"
fmanzano_dtk 1:9e821e640117 18 #include "jq8400_voice.hpp"
fmanzano_dtk 1:9e821e640117 19 #include "teltonika_fmu130.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 extern BufferedSerial avl_uart;
fmanzano_dtk 1:9e821e640117 25 extern BufferedSerial fingerprint;
fmanzano_dtk 1:9e821e640117 26 //extern GT521FX fingerprint;
fmanzano_dtk 1:9e821e640117 27 extern DigitalOut out1_fingerprint;
fmanzano_dtk 1:9e821e640117 28 extern DigitalOut out3_gt521fx;
fmanzano_dtk 1:9e821e640117 29 extern DigitalOut out4_gt521fx;
fmanzano_dtk 1:9e821e640117 30 extern const char TCA_ID_LECTOR_HUE[];
fmanzano_dtk 1:9e821e640117 31 extern const char IO_ENGINE_UNLOCK[];
fmanzano_dtk 1:9e821e640117 32 extern Ticker tick_fingerprint;
fmanzano_dtk 1:9e821e640117 33 extern Ticker tick_safety_tip;
fmanzano_dtk 1:9e821e640117 34 extern USBSerial myPC_debug;
fmanzano_dtk 1:9e821e640117 35
fmanzano_dtk 1:9e821e640117 36 extern bool finterprint_flag_working;
fmanzano_dtk 1:9e821e640117 37 extern bool fingerprint_flag_poweroff;
fmanzano_dtk 1:9e821e640117 38 extern bool functionality_fingerprint_reader;
fmanzano_dtk 1:9e821e640117 39 extern bool flag_fingerprint_turOn;
fmanzano_dtk 1:9e821e640117 40 extern bool flag_driver_loggin;
fmanzano_dtk 1:9e821e640117 41 extern bool functionality_force_driver_buclke;
fmanzano_dtk 1:9e821e640117 42 extern bool estado_actual_cinturon_piloto;
fmanzano_dtk 1:9e821e640117 43 extern bool estado_actual_ignicion;
fmanzano_dtk 1:9e821e640117 44 extern bool functionality_safety_tip;
fmanzano_dtk 1:9e821e640117 45 extern bool ble_connection_state;
fmanzano_dtk 1:9e821e640117 46 extern float time_safety_tip;
fmanzano_dtk 1:9e821e640117 47 extern int flag_fingerprint_query;
fmanzano_dtk 1:9e821e640117 48 extern char gpio_buffer[];
fmanzano_dtk 1:9e821e640117 49
fmanzano_dtk 7:01141979e5f2 50 #define DEBUG_FU_CPP 1
fmanzano_dtk 13:472d40c0fc6b 51 #define UP_FP_READER_GT521 1
fmanzano_dtk 1:9e821e640117 52
fmanzano_dtk 1:9e821e640117 53 /**
fmanzano_dtk 1:9e821e640117 54 * @brief
fmanzano_dtk 1:9e821e640117 55 *
fmanzano_dtk 1:9e821e640117 56 */
fmanzano_dtk 1:9e821e640117 57 void query_fingerprint_reader() {
fmanzano_dtk 1:9e821e640117 58 flag_fingerprint_query = true;
fmanzano_dtk 1:9e821e640117 59 }
fmanzano_dtk 1:9e821e640117 60
fmanzano_dtk 1:9e821e640117 61
fmanzano_dtk 1:9e821e640117 62 /**
fmanzano_dtk 1:9e821e640117 63 * @brief
fmanzano_dtk 1:9e821e640117 64 *
fmanzano_dtk 1:9e821e640117 65 */
fmanzano_dtk 1:9e821e640117 66 void process_Engine_FireUp() {
fmanzano_dtk 1:9e821e640117 67
fmanzano_dtk 1:9e821e640117 68 if (functionality_fingerprint_reader) { // Lector habilitado
fmanzano_dtk 1:9e821e640117 69 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 70 myPC_debug.printf("EnFU - Lector de huella Habilitado\r\n");
fmanzano_dtk 1:9e821e640117 71 #endif
fmanzano_dtk 1:9e821e640117 72
fmanzano_dtk 1:9e821e640117 73 if (functionality_force_driver_buclke) { // Cinturón habilitado
fmanzano_dtk 1:9e821e640117 74 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 75 myPC_debug.printf("EnFU - Ctrn Piloto - Debe estar abrochado\r\n");
fmanzano_dtk 1:9e821e640117 76 #endif
fmanzano_dtk 1:9e821e640117 77 if (estado_actual_cinturon_piloto && !(flag_driver_loggin)) {
fmanzano_dtk 1:9e821e640117 78 out3_gt521fx = out4_gt521fx = finterprint_flag_working = true; // Se activa el lector
fmanzano_dtk 1:9e821e640117 79 wait_us(500000);
fmanzano_dtk 1:9e821e640117 80 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 81 myPC_debug.printf("EnFU - OUT3:TRUE");
fmanzano_dtk 1:9e821e640117 82 #endif
fmanzano_dtk 1:9e821e640117 83 finterprint_flag_working = true;
fmanzano_dtk 1:9e821e640117 84 flag_fingerprint_turOn = true;
fmanzano_dtk 1:9e821e640117 85 jq8400_addQueue(VOICE_functionality_fingerprint_reader);
fmanzano_dtk 1:9e821e640117 86 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 87 myPC_debug.printf("EnFU - Activar lector de Huella\r\n");
fmanzano_dtk 1:9e821e640117 88 #endif
fmanzano_dtk 1:9e821e640117 89 tick_fingerprint.attach(&query_fingerprint_reader, 1.0);
fmanzano_dtk 13:472d40c0fc6b 90 #if UP_FP_READER_GT521 == 1
fmanzano_dtk 8:a174cef25049 91 FP_Open();
fmanzano_dtk 8:a174cef25049 92 #else
fmanzano_dtk 8:a174cef25049 93 #endif
fmanzano_dtk 1:9e821e640117 94 sprintf(gpio_buffer, "%s2", TCA_ID_LECTOR_HUE);
fmanzano_dtk 1:9e821e640117 95 tx_fmu130_message(gpio_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 96 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 97 myPC_debug.printf("%s\r\n", gpio_buffer);
fmanzano_dtk 1:9e821e640117 98 #endif
fmanzano_dtk 1:9e821e640117 99 }
fmanzano_dtk 1:9e821e640117 100
fmanzano_dtk 1:9e821e640117 101 } else { // Cinturon deshabilitado
fmanzano_dtk 1:9e821e640117 102 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 103 myPC_debug.printf("EnFU - Ctrn Piloto - No se toma en consideracion\r\n");
fmanzano_dtk 1:9e821e640117 104 #endif
fmanzano_dtk 1:9e821e640117 105 out3_gt521fx = out4_gt521fx = finterprint_flag_working = true;
fmanzano_dtk 1:9e821e640117 106 wait_us(500000);
fmanzano_dtk 1:9e821e640117 107 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 108 myPC_debug.printf("EnFU - OUT3:TRUE");
fmanzano_dtk 1:9e821e640117 109 #endif
fmanzano_dtk 1:9e821e640117 110 finterprint_flag_working = true;
fmanzano_dtk 1:9e821e640117 111 flag_fingerprint_turOn = true;
fmanzano_dtk 1:9e821e640117 112 jq8400_addQueue(VOICE_functionality_fingerprint_reader);
fmanzano_dtk 1:9e821e640117 113 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 114 myPC_debug.printf("EnFU - Activar lector de Huella");
fmanzano_dtk 1:9e821e640117 115 #endif
fmanzano_dtk 1:9e821e640117 116 tick_fingerprint.attach(&query_fingerprint_reader, 1.00);
fmanzano_dtk 13:472d40c0fc6b 117 #if UP_FP_READER_GT521 == 1
fmanzano_dtk 8:a174cef25049 118 FP_Open();
fmanzano_dtk 8:a174cef25049 119 #else
fmanzano_dtk 8:a174cef25049 120 #endif
fmanzano_dtk 1:9e821e640117 121 sprintf(gpio_buffer, "%s2", TCA_ID_LECTOR_HUE);
fmanzano_dtk 1:9e821e640117 122 tx_fmu130_message(gpio_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 123 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 124 myPC_debug.printf("%s\r\n", gpio_buffer);
fmanzano_dtk 1:9e821e640117 125 #endif
fmanzano_dtk 1:9e821e640117 126 }
fmanzano_dtk 1:9e821e640117 127
fmanzano_dtk 1:9e821e640117 128
fmanzano_dtk 1:9e821e640117 129 } else { // Lector deshabilitado
fmanzano_dtk 1:9e821e640117 130 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 131 myPC_debug.printf("\r\nEnFU - Lector de huella Deshabilitado\r\n");
fmanzano_dtk 1:9e821e640117 132 #endif
fmanzano_dtk 1:9e821e640117 133 if (functionality_force_driver_buclke) { // Cinturón habilitado
fmanzano_dtk 1:9e821e640117 134 if (!(flag_driver_loggin)) {
fmanzano_dtk 1:9e821e640117 135 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 136 myPC_debug.printf("\r\nEnFU - Ctrn Piloto - Debe estar abrochado\r\n");
fmanzano_dtk 1:9e821e640117 137 #endif
fmanzano_dtk 1:9e821e640117 138 if (estado_actual_cinturon_piloto) {
fmanzano_dtk 1:9e821e640117 139 flag_driver_loggin = true;
fmanzano_dtk 1:9e821e640117 140 jq8400_addQueue(VOICE_WELLCOME);
fmanzano_dtk 1:9e821e640117 141 if (ble_connection_state) {
fmanzano_dtk 1:9e821e640117 142 // No hacer nada
fmanzano_dtk 1:9e821e640117 143 } else {
fmanzano_dtk 1:9e821e640117 144 //jq8400_addQueue(VOICE_FP_AUTH_NO_BLUETOOTH);
fmanzano_dtk 1:9e821e640117 145 }
fmanzano_dtk 1:9e821e640117 146 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 147 myPC_debug.printf("EnFU IGN=ON - Permitir encendido con lector Deshabilitado y cinturon abrochado\r\n");
fmanzano_dtk 1:9e821e640117 148 #endif
fmanzano_dtk 1:9e821e640117 149 tx_fmu130_command(IO_ENGINE_UNLOCK, &avl_uart);
fmanzano_dtk 1:9e821e640117 150 out1_fingerprint = 1;
fmanzano_dtk 1:9e821e640117 151 wait_us(1000000);
fmanzano_dtk 1:9e821e640117 152 out1_fingerprint = 0;
fmanzano_dtk 1:9e821e640117 153 if (functionality_safety_tip) {
fmanzano_dtk 1:9e821e640117 154 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 155 myPC_debug.printf("FP - Ticker de Tip de Seguridad Iniciado\r\n");
fmanzano_dtk 1:9e821e640117 156 #endif
fmanzano_dtk 1:9e821e640117 157 tick_safety_tip.attach(&play_SafetyTip, time_safety_tip);
fmanzano_dtk 1:9e821e640117 158 }
fmanzano_dtk 1:9e821e640117 159 }
fmanzano_dtk 1:9e821e640117 160 }
fmanzano_dtk 1:9e821e640117 161
fmanzano_dtk 1:9e821e640117 162 } else { // Cinturón deshabilitado
fmanzano_dtk 1:9e821e640117 163 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 164 myPC_debug.printf("\r\nEnFU - Ctrn Piloto - No se toma en consideracion\r\n");
fmanzano_dtk 1:9e821e640117 165 #endif
fmanzano_dtk 1:9e821e640117 166 jq8400_addQueue(VOICE_WELLCOME);
fmanzano_dtk 1:9e821e640117 167 if (functionality_safety_tip) {
fmanzano_dtk 1:9e821e640117 168 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 169 myPC_debug.printf("FP - Ticker de Tip de Seguridad Iniciado\r\n");
fmanzano_dtk 1:9e821e640117 170 #endif
fmanzano_dtk 1:9e821e640117 171 tick_safety_tip.attach(&play_SafetyTip, time_safety_tip);
fmanzano_dtk 1:9e821e640117 172 }
fmanzano_dtk 1:9e821e640117 173 }
fmanzano_dtk 1:9e821e640117 174 }
fmanzano_dtk 1:9e821e640117 175 }
fmanzano_dtk 1:9e821e640117 176
fmanzano_dtk 1:9e821e640117 177 /**
fmanzano_dtk 1:9e821e640117 178 * @brief
fmanzano_dtk 1:9e821e640117 179 *
fmanzano_dtk 1:9e821e640117 180 */
fmanzano_dtk 1:9e821e640117 181 void process_SeatBelt_FireUp() {
fmanzano_dtk 1:9e821e640117 182 if (functionality_fingerprint_reader) { // Lector habilitado
fmanzano_dtk 1:9e821e640117 183 if (functionality_force_driver_buclke) { // Cinturón habilitado
fmanzano_dtk 1:9e821e640117 184 if (estado_actual_ignicion && !(flag_driver_loggin)) {
fmanzano_dtk 1:9e821e640117 185 out3_gt521fx = out4_gt521fx = finterprint_flag_working = true;
fmanzano_dtk 1:9e821e640117 186 wait_us(500000);
fmanzano_dtk 1:9e821e640117 187 finterprint_flag_working = true;
fmanzano_dtk 1:9e821e640117 188 jq8400_addQueue(VOICE_functionality_fingerprint_reader);
fmanzano_dtk 1:9e821e640117 189 tick_fingerprint.attach(&query_fingerprint_reader, 1.00);
fmanzano_dtk 1:9e821e640117 190 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 191 myPC_debug.printf("EnFU - OUT3:TRUE");
fmanzano_dtk 1:9e821e640117 192 myPC_debug.printf("EnFU - Ignicion debe estar ON\r\n");
fmanzano_dtk 1:9e821e640117 193 myPC_debug.printf("EnFU - Activar lector de Huella\r\n");
fmanzano_dtk 1:9e821e640117 194 #endif
fmanzano_dtk 13:472d40c0fc6b 195 #if UP_FP_READER_GT521 == 1
fmanzano_dtk 8:a174cef25049 196 FP_Open();
fmanzano_dtk 8:a174cef25049 197 #else
fmanzano_dtk 8:a174cef25049 198 #endif
fmanzano_dtk 1:9e821e640117 199
fmanzano_dtk 1:9e821e640117 200 flag_fingerprint_turOn = true;
fmanzano_dtk 1:9e821e640117 201 sprintf(gpio_buffer, "%s2", TCA_ID_LECTOR_HUE);
fmanzano_dtk 1:9e821e640117 202 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 203 myPC_debug.printf("%s\r\n", gpio_buffer);
fmanzano_dtk 1:9e821e640117 204 #endif
fmanzano_dtk 1:9e821e640117 205 tx_fmu130_message(gpio_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 206 }
fmanzano_dtk 1:9e821e640117 207 }
fmanzano_dtk 1:9e821e640117 208 } else { // Lector deshabilitado
fmanzano_dtk 1:9e821e640117 209 if (estado_actual_ignicion && functionality_force_driver_buclke) {
fmanzano_dtk 1:9e821e640117 210 if (!(flag_driver_loggin)) {
fmanzano_dtk 1:9e821e640117 211 flag_driver_loggin = true;
fmanzano_dtk 1:9e821e640117 212 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 213 myPC_debug.printf("EnFU - Permitir encendido con lector Deshabilitado y Cinturon abrochado\r\n");
fmanzano_dtk 1:9e821e640117 214 #endif
fmanzano_dtk 1:9e821e640117 215 tx_fmu130_command(IO_ENGINE_UNLOCK, &avl_uart);
fmanzano_dtk 1:9e821e640117 216 out1_fingerprint = 1;
fmanzano_dtk 1:9e821e640117 217 wait_us(1000000);
fmanzano_dtk 1:9e821e640117 218 out1_fingerprint = 0;
fmanzano_dtk 1:9e821e640117 219 jq8400_addQueue(VOICE_WELLCOME);
fmanzano_dtk 1:9e821e640117 220 if (ble_connection_state) {
fmanzano_dtk 1:9e821e640117 221 // No hacer nada
fmanzano_dtk 1:9e821e640117 222 } else {
fmanzano_dtk 1:9e821e640117 223 //jq8400_addQueue(VOICE_FP_AUTH_NO_BLUETOOTH);
fmanzano_dtk 1:9e821e640117 224 }
fmanzano_dtk 1:9e821e640117 225 if (functionality_safety_tip) {
fmanzano_dtk 1:9e821e640117 226 #ifdef DEBUG_FU_CPP
fmanzano_dtk 1:9e821e640117 227 myPC_debug.printf("FP - Ticker de Tip de Seguridad Iniciado\r\n");
fmanzano_dtk 1:9e821e640117 228 #endif
fmanzano_dtk 1:9e821e640117 229 tick_safety_tip.attach(&play_SafetyTip, time_safety_tip);
fmanzano_dtk 1:9e821e640117 230 }
fmanzano_dtk 1:9e821e640117 231 }
fmanzano_dtk 1:9e821e640117 232 }
fmanzano_dtk 1:9e821e640117 233 }
fmanzano_dtk 1:9e821e640117 234 }