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 fmu130_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-03
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 "fmu130_exe.hpp" //////
fmanzano_dtk 1:9e821e640117 14 #include "BufferedSerial.h"
fmanzano_dtk 1:9e821e640117 15 //#include "GT521FX.hpp"
fmanzano_dtk 1:9e821e640117 16 #include "New_GT521Fx.hpp"
fmanzano_dtk 1:9e821e640117 17 #include "jq8400_voice.hpp"
fmanzano_dtk 1:9e821e640117 18 #include "voice_cn_pa.hpp"
fmanzano_dtk 1:9e821e640117 19 #include "teltonika_fmu130.hpp"
fmanzano_dtk 1:9e821e640117 20 #include "fingerprint_frame.hpp"
fmanzano_dtk 1:9e821e640117 21 #include "avl_fmu130.hpp"
fmanzano_dtk 1:9e821e640117 22 #include "USBSerial.h"
fmanzano_dtk 1:9e821e640117 23 #include "eeprom.h"
fmanzano_dtk 9:46112570c850 24 #include "flash_eeprom.h"
fmanzano_dtk 5:07720e3f99d2 25 #include "eeprom_exe.hpp"
fmanzano_dtk 9:46112570c850 26 #include "flash_ee_exe.hpp"
fmanzano_dtk 5:07720e3f99d2 27 #include "custom_def.hpp"
fmanzano_dtk 1:9e821e640117 28
fmanzano_dtk 1:9e821e640117 29
fmanzano_dtk 1:9e821e640117 30 /**
fmanzano_dtk 1:9e821e640117 31 * @brief
fmanzano_dtk 1:9e821e640117 32 * Objetos Entradas Digitales / Seriales
fmanzano_dtk 1:9e821e640117 33 */
fmanzano_dtk 1:9e821e640117 34 extern BufferedSerial avl_uart;
fmanzano_dtk 1:9e821e640117 35 extern BufferedSerial voice_uart;
fmanzano_dtk 1:9e821e640117 36 extern DigitalOut out1_fingerprint;
fmanzano_dtk 1:9e821e640117 37 extern DigitalOut out2_ble_reset;
fmanzano_dtk 1:9e821e640117 38 extern DigitalOut out3_gt521fx;
fmanzano_dtk 1:9e821e640117 39 extern DigitalOut out4_gt521fx;
fmanzano_dtk 1:9e821e640117 40 extern BufferedSerial fingerprint;
fmanzano_dtk 1:9e821e640117 41 extern USBSerial myPC_debug;
fmanzano_dtk 1:9e821e640117 42 extern Ticker tick_idle_shutdown;
fmanzano_dtk 1:9e821e640117 43 extern Ticker tick_idle_reminder;
fmanzano_dtk 1:9e821e640117 44 extern Ticker tick_safety_tip;
fmanzano_dtk 1:9e821e640117 45 extern Ticker tick_rain_sensor;
fmanzano_dtk 1:9e821e640117 46 extern Ticker tick_autoreset_ble;
fmanzano_dtk 1:9e821e640117 47 extern EEPROM ep;
fmanzano_dtk 1:9e821e640117 48
fmanzano_dtk 7:01141979e5f2 49 #define DEBUG_FMU130_CPP 1
fmanzano_dtk 13:472d40c0fc6b 50 #define FMU_FP_READER_GT521 1
fmanzano_dtk 1:9e821e640117 51
fmanzano_dtk 1:9e821e640117 52 /**
fmanzano_dtk 1:9e821e640117 53 * @brief
fmanzano_dtk 1:9e821e640117 54 * Variables Externas de Recepción
fmanzano_dtk 1:9e821e640117 55 */
fmanzano_dtk 1:9e821e640117 56 extern bool rg9_raining;
fmanzano_dtk 1:9e821e640117 57 extern bool ignition;
fmanzano_dtk 1:9e821e640117 58 extern bool estado_actual_ignicion;
fmanzano_dtk 1:9e821e640117 59 extern char fmu130_payload[1024];
fmanzano_dtk 1:9e821e640117 60 extern int fmu130_payload_type;
fmanzano_dtk 1:9e821e640117 61 extern int incoming_bytes;
fmanzano_dtk 1:9e821e640117 62 extern int temp_JQ8400_Volume;
fmanzano_dtk 1:9e821e640117 63
fmanzano_dtk 1:9e821e640117 64 /**
fmanzano_dtk 1:9e821e640117 65 * @brief
fmanzano_dtk 1:9e821e640117 66 * Variables externas de comandos AVL
fmanzano_dtk 1:9e821e640117 67 */
fmanzano_dtk 1:9e821e640117 68 extern const char hardware_version[];
fmanzano_dtk 1:9e821e640117 69 extern const char firmware_version[];
fmanzano_dtk 1:9e821e640117 70 extern char avl_fmu130_header[2];
fmanzano_dtk 1:9e821e640117 71 extern char avl_fmu130_imei[16];
fmanzano_dtk 1:9e821e640117 72 extern int avl_fmu130_id;
fmanzano_dtk 1:9e821e640117 73 extern int avl_fmu130_status;
fmanzano_dtk 1:9e821e640117 74
fmanzano_dtk 1:9e821e640117 75 /**
fmanzano_dtk 1:9e821e640117 76 * @brief
fmanzano_dtk 1:9e821e640117 77 * Variables externas con comandos del lector de huellas y
fmanzano_dtk 1:9e821e640117 78 * funciones de habilitación
fmanzano_dtk 1:9e821e640117 79 */
fmanzano_dtk 1:9e821e640117 80 extern int bluetooth_cmd_id;
fmanzano_dtk 1:9e821e640117 81 extern int fingerprint_id;
fmanzano_dtk 1:9e821e640117 82 extern char fingerprint_cmd[4];
fmanzano_dtk 1:9e821e640117 83 extern char fingerprint_hex[997];
fmanzano_dtk 1:9e821e640117 84 extern char fingerprint_asc[499];
fmanzano_dtk 1:9e821e640117 85 extern bool flag_idle_force_shutdown;
fmanzano_dtk 1:9e821e640117 86 extern bool flag_idle_reminder;
fmanzano_dtk 1:9e821e640117 87 extern bool flag_fingerprint_Sleep;
fmanzano_dtk 1:9e821e640117 88 extern bool functionality_fingerprint_reader;
fmanzano_dtk 1:9e821e640117 89 extern bool fingerprint_remotly_disable;
fmanzano_dtk 1:9e821e640117 90 extern bool functionality_force_driver_buclke;
fmanzano_dtk 1:9e821e640117 91 extern bool functionality_idle_shutdown;
fmanzano_dtk 1:9e821e640117 92 extern bool functionality_idle_reminder;
fmanzano_dtk 1:9e821e640117 93 extern bool functionality_rain_sensor;
fmanzano_dtk 1:9e821e640117 94 extern bool functionality_seatbelt_reading;
fmanzano_dtk 1:9e821e640117 95 extern int wet_Speed_Limit;
fmanzano_dtk 1:9e821e640117 96 extern int wet_Speed_Warning;
fmanzano_dtk 1:9e821e640117 97 extern int dry_Speed_Limit;
fmanzano_dtk 1:9e821e640117 98 extern int dry_Speed_Warning;
fmanzano_dtk 1:9e821e640117 99 extern char wet_Speed_CMD[30];
fmanzano_dtk 1:9e821e640117 100 extern char dry_Speed_CMD[30];
fmanzano_dtk 1:9e821e640117 101 extern bool flag_query_rain_sensor;
fmanzano_dtk 1:9e821e640117 102 extern bool flag_safety_tip_enable;
fmanzano_dtk 1:9e821e640117 103 extern bool functionality_safety_tip;
fmanzano_dtk 1:9e821e640117 104 extern float time_safety_tip;
fmanzano_dtk 1:9e821e640117 105 extern float time_sample_rain;
fmanzano_dtk 1:9e821e640117 106 extern bool fingerprint_override;
fmanzano_dtk 1:9e821e640117 107 extern int fp_override_limit;
fmanzano_dtk 1:9e821e640117 108 extern bool functionality_geo_warning;
fmanzano_dtk 1:9e821e640117 109 extern bool functionality_rainSensor_silentMode;
fmanzano_dtk 1:9e821e640117 110 extern bool functionality_ble_autoreset;
fmanzano_dtk 1:9e821e640117 111 extern float time_ble_autoreset;
fmanzano_dtk 1:9e821e640117 112 extern bool finterprint_flag_working;
fmanzano_dtk 1:9e821e640117 113 extern bool fingerprint_flag_poweroff;
fmanzano_dtk 1:9e821e640117 114 // Cinturones
fmanzano_dtk 1:9e821e640117 115 extern bool pilot_buckle_type;
fmanzano_dtk 1:9e821e640117 116 extern int pilot_buckleUp;
fmanzano_dtk 1:9e821e640117 117 extern int pilot_unfasten;
fmanzano_dtk 1:9e821e640117 118 extern bool copilot_buckle_type;
fmanzano_dtk 1:9e821e640117 119 extern int copilot_buckleUp;
fmanzano_dtk 1:9e821e640117 120 extern int copilot_unfasten;
fmanzano_dtk 1:9e821e640117 121 extern bool crew_buckle_type;
fmanzano_dtk 1:9e821e640117 122 extern int crew_buckleUp;
fmanzano_dtk 1:9e821e640117 123 extern int crew_unfasten;
fmanzano_dtk 1:9e821e640117 124
fmanzano_dtk 1:9e821e640117 125
fmanzano_dtk 1:9e821e640117 126 // Variables de flash
fmanzano_dtk 9:46112570c850 127 extern uint16_t VirtAddVarTab[];
fmanzano_dtk 9:46112570c850 128 extern uint16_t VarDataTab[];
fmanzano_dtk 1:9e821e640117 129 extern uint32_t eprom_AddressArray[];
fmanzano_dtk 9:46112570c850 130 extern const bool external_eeprom;
fmanzano_dtk 1:9e821e640117 131
fmanzano_dtk 1:9e821e640117 132 /**
fmanzano_dtk 1:9e821e640117 133 * @brief
fmanzano_dtk 1:9e821e640117 134 * Variables locales
fmanzano_dtk 1:9e821e640117 135 */
fmanzano_dtk 1:9e821e640117 136 const char TCA_ID_FP_WORKING_STATUS[] = "TCA|111|";
fmanzano_dtk 1:9e821e640117 137 const char TCA_ID_FP_SERVER_ADD[] = "TCA|112|";
fmanzano_dtk 1:9e821e640117 138 const char TCA_ID_FP_ENROLL_CNT[] = "TCA|114|";
fmanzano_dtk 1:9e821e640117 139 const char TCA_ID_FP_SERVER_DEL[] = "TCA|115|";
fmanzano_dtk 1:9e821e640117 140 const char TCA_ID_IDLE_SHUTDOWN[] = "TCA|123|";
fmanzano_dtk 1:9e821e640117 141 const char TCA_ID_FORCE_SEATBELT[] = "TCA|126|";
fmanzano_dtk 1:9e821e640117 142 const char TCA_ID_FORCE_IDLE_SHUTDOWN[] = "TCA|127|";
fmanzano_dtk 1:9e821e640117 143 const char TCA_ID_RAIN_SENSOR_ENA[] = "TCA|128|";
fmanzano_dtk 1:9e821e640117 144 const char TCA_ID_SEATBELT_READ_ENA[] = "TCA|129|";
fmanzano_dtk 1:9e821e640117 145 const char TCA_ID_VOLUME_SET[] = "TCA|130|";
fmanzano_dtk 1:9e821e640117 146 const char TCA_ID_QUERY_SPEED_LIMIT[] = "TCA|131|";
fmanzano_dtk 1:9e821e640117 147 const char TCA_ID_QUERY_IDLE_TIMER[] = "TCA|132|";
fmanzano_dtk 1:9e821e640117 148 const char TCA_ID_IDLE_REMINDER[] = "TCA|133|2";
fmanzano_dtk 1:9e821e640117 149 const char TCA_ID_IDLE_REMINDER_ENA[] = "TCA|133|1";
fmanzano_dtk 1:9e821e640117 150 const char TCA_ID_IDLE_REMINDER_DIS[] = "TCA|133|0";
fmanzano_dtk 1:9e821e640117 151 const char TCA_ID_SAFETY_TIP_REMINDER[] = "TCA|134|2";
fmanzano_dtk 1:9e821e640117 152 const char TCA_ID_SAFETY_TIP_ENABLE[] = "TCA|134|1";
fmanzano_dtk 1:9e821e640117 153 const char TCA_ID_SAFETY_TIP_DISABLE[] = "TCA|134|0";
fmanzano_dtk 1:9e821e640117 154 const char TCA_ID_QUERY_SAFETY_TIP[] = "TCA|136|";
fmanzano_dtk 1:9e821e640117 155 const char TCA_ID_Q_FINGERPRINT_STATUS[] = "TCA|137|";
fmanzano_dtk 1:9e821e640117 156 const char TCA_ID_Q_RAINSENSOR_STATUS[] = "TCA|138|";
fmanzano_dtk 1:9e821e640117 157 const char TCA_ID_Q_IDLE_SHUTDOWN_ST[] = "TCA|139|";
fmanzano_dtk 1:9e821e640117 158 const char TCA_ID_Q_FORCE_SEATBELT_ST[] = "TCA|140|";
fmanzano_dtk 1:9e821e640117 159 const char TCA_ID_Q_VOLUME_LEVEL[] = "TCA|141|";
fmanzano_dtk 1:9e821e640117 160 const char TCA_ID_CHECK_ENROLLED_ID[] = "TCA|142|";
fmanzano_dtk 1:9e821e640117 161 const char TCA_ID_HARDWARE_VERSION[] = "TCA|143|";
fmanzano_dtk 1:9e821e640117 162 const char TCA_ID_FIRMWARE_VERSION[] = "TCA|144|";
fmanzano_dtk 1:9e821e640117 163 const char TCA_ID_DIN_CONFIGURATION[] = "TCA|145|";
fmanzano_dtk 1:9e821e640117 164 const char TCA_ID_Q_RAIN_SAMPLE_TIMER[] = "TCA|146|";
fmanzano_dtk 1:9e821e640117 165 const char TCA_ID_FP_OVERRIDE_ENABLE[] = "TCA|147|1";
fmanzano_dtk 1:9e821e640117 166 const char TCA_ID_FP_OVERRIDE_DISABLE[] = "TCA|147|0";
fmanzano_dtk 1:9e821e640117 167 const char TCA_ID_Q_FP_OVERRIDE[] = "TCA|148|";
fmanzano_dtk 1:9e821e640117 168 const char TCA_ID_GEO_WARNING_DISABLE[] = "TCA|135|0";
fmanzano_dtk 1:9e821e640117 169 const char TCA_ID_GEO_WARNING_ENABLE[] = "TCA|135|1";
fmanzano_dtk 1:9e821e640117 170 const char TCA_ID_GEO_WARNING_QUERY_OFF[] = "TCA|135|2";
fmanzano_dtk 1:9e821e640117 171 const char TCA_ID_GEO_WARNING_QUERY_ON[] = "TCA|135|3";
fmanzano_dtk 1:9e821e640117 172 const char TCA_ID_GEO_WARNING_GETIN[] = "TCA|151|0;";
fmanzano_dtk 1:9e821e640117 173 const char TCA_ID_GEO_WARNING_EVENT[] = "TCA|151|1;";
fmanzano_dtk 1:9e821e640117 174 const char TCA_ID_GEO_WARNING_GETOUT[] = "TCA|151|2;";
fmanzano_dtk 1:9e821e640117 175 const char TCA_ID_RAIN_SILENT_MODE_ENA[] = "TCA|152|1";
fmanzano_dtk 1:9e821e640117 176 const char TCA_ID_RAIN_SILENT_MODE_DIS[] = "TCA|152|0";
fmanzano_dtk 1:9e821e640117 177 const char TCA_ID_RAIN_SILENT_MODE_Q[] = "TCA|153|";
fmanzano_dtk 1:9e821e640117 178 const char TCA_ID_BLE_AUTORESET_DIS[] = "TCA|155|0";
fmanzano_dtk 1:9e821e640117 179 const char TCA_ID_BLE_AUTORESET_ENA[] = "TCA|155|1";
fmanzano_dtk 1:9e821e640117 180 const char TCA_ID_BLE_AUTORESET_qDIS[] = "TCA|156|0,";
fmanzano_dtk 1:9e821e640117 181 const char TCA_ID_BLE_AUTORESET_qENA[] = "TCA|156|1,";
fmanzano_dtk 1:9e821e640117 182 const char TCA_ID_IDLE_REMINDER_TIME[] = "TCA|158|";
fmanzano_dtk 1:9e821e640117 183 // cinturones individuales
fmanzano_dtk 1:9e821e640117 184 const char TCA_ID_PILOT_BUCKLE_NO[] = "TCA|145|2";
fmanzano_dtk 1:9e821e640117 185 const char TCA_ID_PILOT_BUCKLE_NC[] = "TCA|145|3";
fmanzano_dtk 1:9e821e640117 186 const char TCA_ID_COPILOT_BUCKLE_NO[] = "TCA|145|4";
fmanzano_dtk 1:9e821e640117 187 const char TCA_ID_COPILOT_BUCKLE_NC[] = "TCA|145|5";
fmanzano_dtk 1:9e821e640117 188 const char TCA_ID_CREW_BUCKLE_NO[] = "TCA|145|6";
fmanzano_dtk 1:9e821e640117 189 const char TCA_ID_CREW_BUCKLE_NC[] = "TCA|145|7";
fmanzano_dtk 9:46112570c850 190 // Comandos
fmanzano_dtk 1:9e821e640117 191 const char FMU_ENGINE_LOCK[] = "setdigout 0?? ? ? ? ? ? ?";
fmanzano_dtk 1:9e821e640117 192 const char FMU_ENGINE_UNLOCK[] = "setdigout 1?? ? ? ? ? ? ?";
fmanzano_dtk 1:9e821e640117 193 char fmu_buffer[64];
fmanzano_dtk 9:46112570c850 194 // Otras
fmanzano_dtk 1:9e821e640117 195 long longitud_huella = 498;
fmanzano_dtk 1:9e821e640117 196 bool trama_con_huella = false;
fmanzano_dtk 1:9e821e640117 197 float wait_idle_shutdown;
fmanzano_dtk 1:9e821e640117 198 float wait_idle_reminder;
fmanzano_dtk 1:9e821e640117 199 int tipo_trama_entrante = 0;
fmanzano_dtk 1:9e821e640117 200 int resultado = 0;
fmanzano_dtk 1:9e821e640117 201 int consultar_ID_FP = 0;
fmanzano_dtk 1:9e821e640117 202 int enrolado = -1;
fmanzano_dtk 1:9e821e640117 203 int id_geozone = 0;
fmanzano_dtk 1:9e821e640117 204
fmanzano_dtk 5:07720e3f99d2 205 // Variables externas
fmanzano_dtk 5:07720e3f99d2 206 extern const char hardware_version[];
fmanzano_dtk 5:07720e3f99d2 207 extern const char firmware_version[];
fmanzano_dtk 5:07720e3f99d2 208 extern const char release_date[];
fmanzano_dtk 5:07720e3f99d2 209
fmanzano_dtk 5:07720e3f99d2 210
fmanzano_dtk 1:9e821e640117 211
fmanzano_dtk 1:9e821e640117 212 /**
fmanzano_dtk 1:9e821e640117 213 * @brief
fmanzano_dtk 1:9e821e640117 214 *
fmanzano_dtk 1:9e821e640117 215 */
fmanzano_dtk 1:9e821e640117 216 void activate_idle_shutdown() {
fmanzano_dtk 1:9e821e640117 217 flag_idle_force_shutdown = true;
fmanzano_dtk 1:9e821e640117 218 }
fmanzano_dtk 1:9e821e640117 219
fmanzano_dtk 1:9e821e640117 220 void activate_idle_reminder() {
fmanzano_dtk 1:9e821e640117 221 flag_idle_reminder = true;
fmanzano_dtk 1:9e821e640117 222 }
fmanzano_dtk 1:9e821e640117 223
fmanzano_dtk 1:9e821e640117 224 void queryRG9(){
fmanzano_dtk 1:9e821e640117 225 flag_query_rain_sensor = true;
fmanzano_dtk 1:9e821e640117 226 }
fmanzano_dtk 1:9e821e640117 227
fmanzano_dtk 1:9e821e640117 228 void BLE_reset() { // Aplicar reset a módulo BLE
fmanzano_dtk 1:9e821e640117 229 out2_ble_reset = true;
fmanzano_dtk 1:9e821e640117 230 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 231 myPC_debug.printf("\r\nBLE - Reset\r\n");
fmanzano_dtk 1:9e821e640117 232 #endif
fmanzano_dtk 1:9e821e640117 233 wait_ms(BLE_RESET_PULSE_WIDTH);
fmanzano_dtk 1:9e821e640117 234 out2_ble_reset = false;
fmanzano_dtk 1:9e821e640117 235 }
fmanzano_dtk 1:9e821e640117 236
fmanzano_dtk 1:9e821e640117 237
fmanzano_dtk 1:9e821e640117 238 /**
fmanzano_dtk 1:9e821e640117 239 * @brief
fmanzano_dtk 1:9e821e640117 240 *
fmanzano_dtk 1:9e821e640117 241 */
fmanzano_dtk 1:9e821e640117 242 void exe_idle_shutdown() {
fmanzano_dtk 1:9e821e640117 243 flag_idle_force_shutdown = false;
fmanzano_dtk 1:9e821e640117 244 tick_idle_shutdown.detach();
fmanzano_dtk 1:9e821e640117 245 if (functionality_idle_shutdown) {
fmanzano_dtk 1:9e821e640117 246 if (ignition) {
fmanzano_dtk 1:9e821e640117 247 tx_fmu130_command(FMU_ENGINE_LOCK, &avl_uart);
fmanzano_dtk 1:9e821e640117 248 jq8400_addQueue(VOICE_IDLE_ENGINE_SHUTDOWN);
fmanzano_dtk 1:9e821e640117 249 sprintf(fmu_buffer, "%s1", TCA_ID_IDLE_SHUTDOWN);
fmanzano_dtk 1:9e821e640117 250 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 251 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 252 myPC_debug.printf("IDLE - Apagado por exceso de Ralenti\r\n");
fmanzano_dtk 1:9e821e640117 253 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 254 #endif
fmanzano_dtk 1:9e821e640117 255 } else {
fmanzano_dtk 1:9e821e640117 256 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 257 myPC_debug.printf("IDLE - Ignicion OFF - No se envia apagado.\r\n");
fmanzano_dtk 1:9e821e640117 258 #endif
fmanzano_dtk 1:9e821e640117 259 }
fmanzano_dtk 1:9e821e640117 260 }
fmanzano_dtk 1:9e821e640117 261 }
fmanzano_dtk 1:9e821e640117 262
fmanzano_dtk 1:9e821e640117 263 void exe_idle_reminder() {
fmanzano_dtk 1:9e821e640117 264 flag_idle_reminder = false;
fmanzano_dtk 1:9e821e640117 265 jq8400_addQueue(VOICE_IDLE_REMINDER);
fmanzano_dtk 1:9e821e640117 266 sprintf(fmu_buffer, "%s", TCA_ID_IDLE_REMINDER);
fmanzano_dtk 1:9e821e640117 267 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 268 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 269 myPC_debug.printf("IDLE - Recordatorio por exceso de Ralenti\r\n");
fmanzano_dtk 1:9e821e640117 270 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 271 #endif
fmanzano_dtk 1:9e821e640117 272 }
fmanzano_dtk 1:9e821e640117 273
fmanzano_dtk 1:9e821e640117 274 /**
fmanzano_dtk 1:9e821e640117 275 * @brief
fmanzano_dtk 1:9e821e640117 276 *
fmanzano_dtk 1:9e821e640117 277 */
fmanzano_dtk 1:9e821e640117 278 void boot_message() {
fmanzano_dtk 1:9e821e640117 279 sprintf(fmu_buffer, "TCA|100|%s", firmware_version);
fmanzano_dtk 1:9e821e640117 280 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 281 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 282 myPC_debug.printf("\r\n\r\nDETEKTOR I+D. TEAM CAPTURA\r\n");
fmanzano_dtk 1:9e821e640117 283 myPC_debug.printf("Proyecto ABInBev PA\r\n");
fmanzano_dtk 1:9e821e640117 284 myPC_debug.printf("Version %s - %s\r\n\r\n", firmware_version, release_date);
fmanzano_dtk 1:9e821e640117 285 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 286 #endif
fmanzano_dtk 1:9e821e640117 287 }
fmanzano_dtk 1:9e821e640117 288
fmanzano_dtk 1:9e821e640117 289
fmanzano_dtk 1:9e821e640117 290 /**
fmanzano_dtk 1:9e821e640117 291 * @brief
fmanzano_dtk 1:9e821e640117 292 *
fmanzano_dtk 1:9e821e640117 293 */
fmanzano_dtk 1:9e821e640117 294 void process_FMU130() {
fmanzano_dtk 1:9e821e640117 295 memset(fmu_buffer, '\0', sizeof(fmu_buffer));
fmanzano_dtk 1:9e821e640117 296 memset(fmu130_payload, '\0', sizeof(fmu130_payload));
fmanzano_dtk 1:9e821e640117 297
fmanzano_dtk 1:9e821e640117 298 /**
fmanzano_dtk 1:9e821e640117 299 * @brief
fmanzano_dtk 1:9e821e640117 300 *
fmanzano_dtk 1:9e821e640117 301 */
fmanzano_dtk 1:9e821e640117 302 incoming_bytes = read_avl_uart(&avl_uart, fmu130_payload);
fmanzano_dtk 1:9e821e640117 303
fmanzano_dtk 1:9e821e640117 304 if (incoming_bytes > 0) {
fmanzano_dtk 1:9e821e640117 305 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 306 myPC_debug.printf("\r\nBLE - Bytes entrantes: %d\r\n", incoming_bytes);
fmanzano_dtk 1:9e821e640117 307 #endif
fmanzano_dtk 1:9e821e640117 308 tipo_trama_entrante = identify_fmu130_payload(fmu130_payload);
fmanzano_dtk 1:9e821e640117 309
fmanzano_dtk 1:9e821e640117 310 /**
fmanzano_dtk 1:9e821e640117 311 * @brief Construct a new switch object
fmanzano_dtk 1:9e821e640117 312 *
fmanzano_dtk 1:9e821e640117 313 */
fmanzano_dtk 1:9e821e640117 314 switch (tipo_trama_entrante) {
fmanzano_dtk 1:9e821e640117 315 case TRAMA_AVL_FMU130 :
fmanzano_dtk 1:9e821e640117 316 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 317 myPC_debug.printf("BLE - Evento AVL\r\n");
fmanzano_dtk 1:9e821e640117 318 #endif
fmanzano_dtk 1:9e821e640117 319 if (verify_fmu130_payload(fmu130_payload)) {
fmanzano_dtk 1:9e821e640117 320 parse_fmu130_payload(fmu130_payload, avl_fmu130_header, avl_fmu130_imei, &avl_fmu130_id, &avl_fmu130_status);
fmanzano_dtk 1:9e821e640117 321 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 322 myPC_debug.printf("BLE - FMU_ID:%d Status:%d\r\n", avl_fmu130_id, avl_fmu130_status);
fmanzano_dtk 1:9e821e640117 323 #endif
fmanzano_dtk 1:9e821e640117 324 switch (avl_fmu130_id) {
fmanzano_dtk 1:9e821e640117 325 case AVLID_OVERSPEED: // Exceso de velocidad
fmanzano_dtk 1:9e821e640117 326 if (rg9_raining) {
fmanzano_dtk 1:9e821e640117 327 if (functionality_rainSensor_silentMode) {
fmanzano_dtk 1:9e821e640117 328 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 329 myPC_debug.printf("BLE - Modo Silencioso Activado - No se notifica\r\n");
fmanzano_dtk 1:9e821e640117 330 #endif
fmanzano_dtk 1:9e821e640117 331 //
fmanzano_dtk 1:9e821e640117 332 } else {
fmanzano_dtk 1:9e821e640117 333 jq8400_addQueue(VOICE_OVERSPEED_ALERT_WET);
fmanzano_dtk 1:9e821e640117 334 }
fmanzano_dtk 1:9e821e640117 335 } else {
fmanzano_dtk 1:9e821e640117 336 jq8400_addQueue(VOICE_OVERSPEED_ALERT);
fmanzano_dtk 1:9e821e640117 337 }
fmanzano_dtk 1:9e821e640117 338 break;
fmanzano_dtk 1:9e821e640117 339
fmanzano_dtk 1:9e821e640117 340 case AVLID_TOWING: // Movimiento ilegal
fmanzano_dtk 1:9e821e640117 341 // No se notifica
fmanzano_dtk 1:9e821e640117 342 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 343 myPC_debug.printf("BLE - Vehiculo en Grua - No se notifica\r\n");
fmanzano_dtk 1:9e821e640117 344 #endif
fmanzano_dtk 1:9e821e640117 345 break;
fmanzano_dtk 1:9e821e640117 346
fmanzano_dtk 1:9e821e640117 347 case AVLID_JAMMING: // Jamming
fmanzano_dtk 1:9e821e640117 348 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 349 myPC_debug.printf("BLE - Deteccion de Jamming - No se notifica\r\n");
fmanzano_dtk 1:9e821e640117 350 #endif
fmanzano_dtk 1:9e821e640117 351 break;
fmanzano_dtk 1:9e821e640117 352
fmanzano_dtk 1:9e821e640117 353 case AVLID_IDLE: // Ralentí
fmanzano_dtk 1:9e821e640117 354 if (avl_fmu130_status == 1) {
fmanzano_dtk 1:9e821e640117 355 if (estado_actual_ignicion) {
fmanzano_dtk 1:9e821e640117 356 jq8400_addQueue(VOICE_IDLE_TIME_WARNING);
fmanzano_dtk 1:9e821e640117 357 if (functionality_idle_shutdown) {
fmanzano_dtk 1:9e821e640117 358 tick_idle_shutdown.attach(&activate_idle_shutdown, (wait_idle_shutdown + 6.0)); // 6.0 = Duración de audio de ralentí
fmanzano_dtk 1:9e821e640117 359 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 360 myPC_debug.printf("Apagar por ralenti en %.1f seg.\r\n", wait_idle_shutdown);
fmanzano_dtk 1:9e821e640117 361 #endif
fmanzano_dtk 1:9e821e640117 362 }
fmanzano_dtk 1:9e821e640117 363 if (functionality_idle_reminder) {
fmanzano_dtk 1:9e821e640117 364 tick_idle_reminder.attach(&activate_idle_reminder,(wait_idle_reminder + 0.0));
fmanzano_dtk 1:9e821e640117 365 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 366 myPC_debug.printf("Recordatorio por ralenti en %.1f seg.\r\n", wait_idle_reminder);
fmanzano_dtk 1:9e821e640117 367 #endif
fmanzano_dtk 1:9e821e640117 368 }
fmanzano_dtk 1:9e821e640117 369 } else {
fmanzano_dtk 1:9e821e640117 370 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 371 myPC_debug.printf("BLE - Ignicion OFF no se notifica\r\n");
fmanzano_dtk 1:9e821e640117 372 #endif
fmanzano_dtk 1:9e821e640117 373 }
fmanzano_dtk 1:9e821e640117 374 } else if (avl_fmu130_status == 0) {
fmanzano_dtk 1:9e821e640117 375 tick_idle_shutdown.detach();
fmanzano_dtk 1:9e821e640117 376 tick_idle_reminder.detach();
fmanzano_dtk 1:9e821e640117 377 }
fmanzano_dtk 1:9e821e640117 378 break;
fmanzano_dtk 1:9e821e640117 379
fmanzano_dtk 1:9e821e640117 380 case AVLID_HARSH_BEHAVIOUR: // Hábitos de manejo
fmanzano_dtk 1:9e821e640117 381 if (avl_fmu130_status == 1){
fmanzano_dtk 1:9e821e640117 382 jq8400_addQueue(VOICE_HARSH_ACCELERATION);
fmanzano_dtk 1:9e821e640117 383 } else if (avl_fmu130_status == 2) {
fmanzano_dtk 1:9e821e640117 384 jq8400_addQueue(VOICE_HARSH_BREAKING);
fmanzano_dtk 1:9e821e640117 385 } else if (avl_fmu130_status == 3) {
fmanzano_dtk 1:9e821e640117 386 jq8400_addQueue(VOICE_SHARP_CORNERING);
fmanzano_dtk 1:9e821e640117 387 }
fmanzano_dtk 1:9e821e640117 388 break;
fmanzano_dtk 1:9e821e640117 389
fmanzano_dtk 1:9e821e640117 390 case AVLID_WARNING_SPEED: // Pre alerta de Exceso de velocidad
fmanzano_dtk 1:9e821e640117 391 if (rg9_raining) {
fmanzano_dtk 1:9e821e640117 392 if (functionality_rainSensor_silentMode) {
fmanzano_dtk 1:9e821e640117 393 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 394 myPC_debug.printf("BLE - Modo Silencioso Activado - No se notifica\r\n");
fmanzano_dtk 1:9e821e640117 395 #endif
fmanzano_dtk 1:9e821e640117 396 } else {
fmanzano_dtk 1:9e821e640117 397 jq8400_addQueue(VOICE_WARNING_OVERSPEED_WET);
fmanzano_dtk 1:9e821e640117 398 }
fmanzano_dtk 1:9e821e640117 399 } else {
fmanzano_dtk 1:9e821e640117 400 jq8400_addQueue(VOICE_WARNING_OVERSPEED);
fmanzano_dtk 1:9e821e640117 401 }
fmanzano_dtk 1:9e821e640117 402 break;
fmanzano_dtk 1:9e821e640117 403
fmanzano_dtk 1:9e821e640117 404 case AVLID_CRASH: // Colisión
fmanzano_dtk 1:9e821e640117 405 jq8400_addQueue(VOICE_CRASH_DETECTION);
fmanzano_dtk 1:9e821e640117 406 break;
fmanzano_dtk 1:9e821e640117 407
fmanzano_dtk 1:9e821e640117 408 default:
fmanzano_dtk 1:9e821e640117 409 // ID no identificado
fmanzano_dtk 1:9e821e640117 410 break;
fmanzano_dtk 1:9e821e640117 411 }
fmanzano_dtk 1:9e821e640117 412
fmanzano_dtk 1:9e821e640117 413 } else {
fmanzano_dtk 1:9e821e640117 414 // Trama invalida
fmanzano_dtk 1:9e821e640117 415 }
fmanzano_dtk 1:9e821e640117 416 break;
fmanzano_dtk 1:9e821e640117 417
fmanzano_dtk 1:9e821e640117 418
fmanzano_dtk 1:9e821e640117 419 case TRAMA_SERVIDOR:
fmanzano_dtk 1:9e821e640117 420 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 421 myPC_debug.printf("BLE - Comando Servidor\r\n");
fmanzano_dtk 1:9e821e640117 422 myPC_debug.printf("RAW DATA:\r\n%s\r\n\r\n", fmu130_payload);
fmanzano_dtk 1:9e821e640117 423 #endif
fmanzano_dtk 1:9e821e640117 424 if (verify_finger_payload(fmu130_payload)) {
fmanzano_dtk 1:9e821e640117 425 /* DESHABILITADA LA FUNCIÓN DE SLEEP EN EL LECTOR
fmanzano_dtk 1:9e821e640117 426 if (flag_fingerprint_Sleep) {
fmanzano_dtk 1:9e821e640117 427 fingerprint.WakeUp();
fmanzano_dtk 1:9e821e640117 428 flag_fingerprint_Sleep = false;
fmanzano_dtk 1:9e821e640117 429 //myPC_debug.printf("BLE - GT521Fx@WakeUp\r\n");
fmanzano_dtk 1:9e821e640117 430 }
fmanzano_dtk 1:9e821e640117 431 */
fmanzano_dtk 1:9e821e640117 432 trama_con_huella = parse_finger_payload(fmu130_payload, fingerprint_cmd, &fingerprint_id, fingerprint_hex);
fmanzano_dtk 1:9e821e640117 433 if (trama_con_huella) {
fmanzano_dtk 1:9e821e640117 434 fingerprint_HEX2CHAR(fingerprint_hex, fingerprint_asc);
fmanzano_dtk 1:9e821e640117 435 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 436 myPC_debug.printf("BLE - Huella HEX:\r\n%s\r\n", fingerprint_hex);
fmanzano_dtk 1:9e821e640117 437 #endif
fmanzano_dtk 1:9e821e640117 438 }
fmanzano_dtk 1:9e821e640117 439 bluetooth_cmd_id = identify_server_cmd(fingerprint_cmd);
fmanzano_dtk 1:9e821e640117 440
fmanzano_dtk 1:9e821e640117 441 switch (bluetooth_cmd_id) {
fmanzano_dtk 1:9e821e640117 442 /** ********************************
fmanzano_dtk 1:9e821e640117 443 * COMANDOS DE NOTIFICACION DE GEOCERCAS
fmanzano_dtk 1:9e821e640117 444 * ******************************** */
fmanzano_dtk 1:9e821e640117 445 case CMD_GEO_WARNING_GETIN:
fmanzano_dtk 1:9e821e640117 446 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 447 myPC_debug.printf("BLE - Notificacion de Entrada a Geocerca Controlada\r\n");
fmanzano_dtk 1:9e821e640117 448 #endif
fmanzano_dtk 1:9e821e640117 449 //
fmanzano_dtk 1:9e821e640117 450 if (functionality_geo_warning) {
fmanzano_dtk 1:9e821e640117 451 id_geozone = fingerprint_id;
fmanzano_dtk 1:9e821e640117 452 jq8400_addQueue(id_geozone);
fmanzano_dtk 1:9e821e640117 453 sprintf(fmu_buffer, "%s%d", TCA_ID_GEO_WARNING_GETIN, id_geozone);
fmanzano_dtk 1:9e821e640117 454 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 455 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 456 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 457 #endif
fmanzano_dtk 1:9e821e640117 458 } else {
fmanzano_dtk 1:9e821e640117 459 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 460 myPC_debug.printf("BLE - Funcion deshabilitada. No se notifica Entrada de Geocerca\r\n");
fmanzano_dtk 1:9e821e640117 461 #endif
fmanzano_dtk 1:9e821e640117 462 }
fmanzano_dtk 1:9e821e640117 463 break;
fmanzano_dtk 1:9e821e640117 464
fmanzano_dtk 1:9e821e640117 465 case CMD_GEO_WARNING_GETOUT:
fmanzano_dtk 1:9e821e640117 466 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 467 myPC_debug.printf("BLE - Notificacion de Salida de Geocerca Controlada\r\n");
fmanzano_dtk 1:9e821e640117 468 #endif
fmanzano_dtk 1:9e821e640117 469 if (functionality_geo_warning) {
fmanzano_dtk 1:9e821e640117 470 id_geozone = fingerprint_id;
fmanzano_dtk 1:9e821e640117 471 jq8400_addQueue(id_geozone);
fmanzano_dtk 1:9e821e640117 472 sprintf(fmu_buffer, "%s%d", TCA_ID_GEO_WARNING_GETOUT, id_geozone);
fmanzano_dtk 1:9e821e640117 473 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 474 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 475 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 476 #endif
fmanzano_dtk 1:9e821e640117 477 } else {
fmanzano_dtk 1:9e821e640117 478 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 479 myPC_debug.printf("BLE - Funcion deshabilitada. No se notifica Salida de Geocerca\r\n");
fmanzano_dtk 1:9e821e640117 480 #endif
fmanzano_dtk 1:9e821e640117 481 }
fmanzano_dtk 1:9e821e640117 482 break;
fmanzano_dtk 1:9e821e640117 483
fmanzano_dtk 1:9e821e640117 484 case CMD_GEO_WARNING_EVENT:
fmanzano_dtk 1:9e821e640117 485 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 486
fmanzano_dtk 1:9e821e640117 487 #endif
fmanzano_dtk 1:9e821e640117 488 //myPC_debug.printf("BLE - Notificacion de Evento en Geocerca Controlada\r\n");
fmanzano_dtk 1:9e821e640117 489 if (functionality_geo_warning) {
fmanzano_dtk 1:9e821e640117 490 id_geozone = fingerprint_id;
fmanzano_dtk 1:9e821e640117 491 jq8400_addQueue(id_geozone);
fmanzano_dtk 1:9e821e640117 492 sprintf(fmu_buffer, "%s%d", TCA_ID_GEO_WARNING_EVENT, id_geozone);
fmanzano_dtk 1:9e821e640117 493 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 494
fmanzano_dtk 1:9e821e640117 495 #endif
fmanzano_dtk 1:9e821e640117 496 //myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 497 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 498
fmanzano_dtk 1:9e821e640117 499 } else {
fmanzano_dtk 1:9e821e640117 500 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 501
fmanzano_dtk 1:9e821e640117 502 #endif
fmanzano_dtk 1:9e821e640117 503 //myPC_debug.printf("BLE - Funcion deshabilitada. No se notifica Evento de Geocerca\r\n");
fmanzano_dtk 1:9e821e640117 504 }
fmanzano_dtk 1:9e821e640117 505 break;
fmanzano_dtk 1:9e821e640117 506
fmanzano_dtk 1:9e821e640117 507
fmanzano_dtk 1:9e821e640117 508
fmanzano_dtk 1:9e821e640117 509 /** ********************************
fmanzano_dtk 1:9e821e640117 510 * COMANDOS DE LECTOR DE HUELLA
fmanzano_dtk 1:9e821e640117 511 * ******************************** */
fmanzano_dtk 1:9e821e640117 512 case CMD_FINGER_ADD:
fmanzano_dtk 1:9e821e640117 513 out3_gt521fx = out4_gt521fx = finterprint_flag_working = true;
fmanzano_dtk 1:9e821e640117 514 wait_us(500000);
fmanzano_dtk 1:9e821e640117 515 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 516 myPC_debug.printf("BLE - OUT3:TRUE\r\n");
fmanzano_dtk 1:9e821e640117 517 #endif
fmanzano_dtk 1:9e821e640117 518 fingerprint_flag_poweroff = false;
fmanzano_dtk 13:472d40c0fc6b 519 #if FMU_FP_READER_GT521 == 1
fmanzano_dtk 8:a174cef25049 520 FP_Open();
fmanzano_dtk 8:a174cef25049 521 resultado = FP_SetTemplate(fingerprint_id, fingerprint_asc);
fmanzano_dtk 8:a174cef25049 522 FP_Close();
fmanzano_dtk 8:a174cef25049 523 #else
fmanzano_dtk 8:a174cef25049 524 #endif
fmanzano_dtk 8:a174cef25049 525 wait_us(1000000);
fmanzano_dtk 1:9e821e640117 526 if (resultado == 0) {
fmanzano_dtk 1:9e821e640117 527 sprintf(fmu_buffer, "%s%d", TCA_ID_FP_SERVER_ADD, fingerprint_id);
fmanzano_dtk 1:9e821e640117 528 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 529 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 530 myPC_debug.printf("BLE - Huella agregada exitosamente\r\n");
fmanzano_dtk 1:9e821e640117 531 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 532 #endif
fmanzano_dtk 1:9e821e640117 533 } else {
fmanzano_dtk 1:9e821e640117 534 sprintf(fmu_buffer, "%s%d", TCA_ID_FP_SERVER_ADD, resultado);
fmanzano_dtk 1:9e821e640117 535 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 536 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 537 myPC_debug.printf("BLE - Error al agregar huella\r\n");
fmanzano_dtk 1:9e821e640117 538 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 539 #endif
fmanzano_dtk 8:a174cef25049 540 }
fmanzano_dtk 1:9e821e640117 541 fingerprint_flag_poweroff = true;
fmanzano_dtk 1:9e821e640117 542 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 543 myPC_debug.printf("BLE - Pendiente apagar FP GT521Fx...\r\n");
fmanzano_dtk 1:9e821e640117 544 #endif
fmanzano_dtk 1:9e821e640117 545 break;
fmanzano_dtk 1:9e821e640117 546
fmanzano_dtk 1:9e821e640117 547 case CMD_FINGER_DELETE:
fmanzano_dtk 1:9e821e640117 548 out3_gt521fx = out4_gt521fx = finterprint_flag_working = true;
fmanzano_dtk 1:9e821e640117 549 wait_us(500000);
fmanzano_dtk 1:9e821e640117 550 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 551 myPC_debug.printf("BLE - OUT3:TRUE\r\n");
fmanzano_dtk 1:9e821e640117 552 #endif
fmanzano_dtk 1:9e821e640117 553 fingerprint_flag_poweroff = false;
fmanzano_dtk 13:472d40c0fc6b 554 #if FMU_FP_READER_GT521 == 1
fmanzano_dtk 8:a174cef25049 555 FP_Open();
fmanzano_dtk 8:a174cef25049 556 #else
fmanzano_dtk 8:a174cef25049 557 #endif
fmanzano_dtk 1:9e821e640117 558 if (fingerprint_id == 3000) {
fmanzano_dtk 13:472d40c0fc6b 559 #if FMU_FP_READER_GT521 == 1
fmanzano_dtk 8:a174cef25049 560 resultado = FP_DeleteAll();
fmanzano_dtk 8:a174cef25049 561 #else
fmanzano_dtk 8:a174cef25049 562 #endif
fmanzano_dtk 1:9e821e640117 563 } else {
fmanzano_dtk 13:472d40c0fc6b 564 #if FMU_FP_READER_GT521 == 1
fmanzano_dtk 8:a174cef25049 565 resultado = FP_DeleteID(fingerprint_id);
fmanzano_dtk 8:a174cef25049 566 #else
fmanzano_dtk 8:a174cef25049 567 #endif
fmanzano_dtk 1:9e821e640117 568 }
fmanzano_dtk 1:9e821e640117 569 if (resultado >= 0) {
fmanzano_dtk 1:9e821e640117 570 sprintf(fmu_buffer, "%s%d", TCA_ID_FP_SERVER_DEL, fingerprint_id);
fmanzano_dtk 1:9e821e640117 571 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 572 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 573 myPC_debug.printf("BLE - Huella eliminada exitosamente\r\n");
fmanzano_dtk 1:9e821e640117 574 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 575 #endif
fmanzano_dtk 1:9e821e640117 576 } else {
fmanzano_dtk 1:9e821e640117 577 sprintf(fmu_buffer, "%s%d", TCA_ID_FP_SERVER_DEL, resultado);
fmanzano_dtk 1:9e821e640117 578 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 579 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 580 myPC_debug.printf("BLE - Error al eliminar huella\r\n");
fmanzano_dtk 1:9e821e640117 581 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 582 #endif
fmanzano_dtk 1:9e821e640117 583 }
fmanzano_dtk 13:472d40c0fc6b 584 #if FMU_FP_READER_GT521 == 1
fmanzano_dtk 8:a174cef25049 585 FP_Close();
fmanzano_dtk 8:a174cef25049 586 #else
fmanzano_dtk 8:a174cef25049 587 #endif
fmanzano_dtk 1:9e821e640117 588 wait_us(1000000);
fmanzano_dtk 1:9e821e640117 589 fingerprint_flag_poweroff = true;
fmanzano_dtk 1:9e821e640117 590 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 591 myPC_debug.printf("BLE - Pendiente apagar FP GT521Fx...\r\n");
fmanzano_dtk 1:9e821e640117 592 #endif
fmanzano_dtk 1:9e821e640117 593 break;
fmanzano_dtk 1:9e821e640117 594
fmanzano_dtk 1:9e821e640117 595 case CMD_FINGER_ENABLE:
fmanzano_dtk 1:9e821e640117 596 jq8400_addQueue(VOICE_functionality_fingerprint_reader);
fmanzano_dtk 1:9e821e640117 597 functionality_fingerprint_reader = true;
fmanzano_dtk 1:9e821e640117 598 fingerprint_remotly_disable = false;
fmanzano_dtk 9:46112570c850 599 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 600 ep.write(eprom_AddressArray[EE_Address_FINGERPRINT], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 601 ep.write(eprom_AddressArray[EE_Address_FINGERPRINT_RE], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 602 } else {
fmanzano_dtk 9:46112570c850 603 EE_WriteVariable(VirtAddVarTab[AP_FINGERPRINT], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 604 EE_WriteVariable(VirtAddVarTab[AP_FINGERPRINT_RE], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 605 }
fmanzano_dtk 1:9e821e640117 606 sprintf(fmu_buffer, "%s1", TCA_ID_FP_WORKING_STATUS);
fmanzano_dtk 1:9e821e640117 607 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 13:472d40c0fc6b 608 #if FMU_FP_READER_GT521 == 1
fmanzano_dtk 8:a174cef25049 609 FP_Flush();
fmanzano_dtk 8:a174cef25049 610 #else
fmanzano_dtk 8:a174cef25049 611 #endif
fmanzano_dtk 1:9e821e640117 612 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 613 myPC_debug.printf("BLE - Lector Huella Habilitado\r\n");
fmanzano_dtk 1:9e821e640117 614 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 615 #endif
fmanzano_dtk 1:9e821e640117 616 break;
fmanzano_dtk 1:9e821e640117 617
fmanzano_dtk 1:9e821e640117 618 case CMD_FINGER_DISABLE:
fmanzano_dtk 1:9e821e640117 619 jq8400_addQueue(VOICE_FINGERPRINT_DISABLE);
fmanzano_dtk 1:9e821e640117 620 tx_fmu130_command(FMU_ENGINE_UNLOCK, &avl_uart);
fmanzano_dtk 1:9e821e640117 621 out1_fingerprint = 1;
fmanzano_dtk 1:9e821e640117 622 wait_us(1000000);
fmanzano_dtk 1:9e821e640117 623 out1_fingerprint = 0;
fmanzano_dtk 1:9e821e640117 624 functionality_fingerprint_reader = false;
fmanzano_dtk 1:9e821e640117 625 fingerprint_remotly_disable = true;
fmanzano_dtk 9:46112570c850 626 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 627 ep.write(eprom_AddressArray[EE_Address_FINGERPRINT], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 628 ep.write(eprom_AddressArray[EE_Address_FINGERPRINT_RE], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 629 } else {
fmanzano_dtk 9:46112570c850 630 EE_WriteVariable(VirtAddVarTab[AP_FINGERPRINT], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 631 EE_WriteVariable(VirtAddVarTab[AP_FINGERPRINT_RE], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 632 }
fmanzano_dtk 1:9e821e640117 633 sprintf(fmu_buffer, "%s0", TCA_ID_FP_WORKING_STATUS);
fmanzano_dtk 1:9e821e640117 634 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 635 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 636 myPC_debug.printf("BLE - Lector Huella Deshabilitado\r\n");
fmanzano_dtk 1:9e821e640117 637 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 638 #endif
fmanzano_dtk 1:9e821e640117 639 break;
fmanzano_dtk 1:9e821e640117 640
fmanzano_dtk 1:9e821e640117 641 case CMD_FINGERPRINT_QUERY:
fmanzano_dtk 1:9e821e640117 642 sprintf(fmu_buffer, "%s%d", TCA_ID_Q_FINGERPRINT_STATUS, functionality_fingerprint_reader);
fmanzano_dtk 1:9e821e640117 643 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 644 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 645 myPC_debug.printf("BLE - Consulta Estatus del Lector Biometrico\r\n");
fmanzano_dtk 1:9e821e640117 646 myPC_debug.printf("BLE - Lector Biometrico: %d\r\n", functionality_fingerprint_reader);
fmanzano_dtk 1:9e821e640117 647 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 648 #endif
fmanzano_dtk 1:9e821e640117 649 break;
fmanzano_dtk 1:9e821e640117 650
fmanzano_dtk 1:9e821e640117 651 case CMD_FINGER_ENROLL_CNT:
fmanzano_dtk 1:9e821e640117 652 out3_gt521fx = out4_gt521fx = finterprint_flag_working = true;
fmanzano_dtk 1:9e821e640117 653 wait_us(500000);
fmanzano_dtk 1:9e821e640117 654 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 655 myPC_debug.printf("BLE - OUT3:TRUE\r\n");
fmanzano_dtk 1:9e821e640117 656 #endif
fmanzano_dtk 1:9e821e640117 657 fingerprint_flag_poweroff = false;
fmanzano_dtk 13:472d40c0fc6b 658 #if FMU_FP_READER_GT521 == 1
fmanzano_dtk 8:a174cef25049 659 FP_Open();
fmanzano_dtk 8:a174cef25049 660 resultado = FP_GetEnrollCount();
fmanzano_dtk 8:a174cef25049 661 FP_Close();
fmanzano_dtk 8:a174cef25049 662 #else
fmanzano_dtk 8:a174cef25049 663 #endif
fmanzano_dtk 8:a174cef25049 664 wait_us(1000000);
fmanzano_dtk 1:9e821e640117 665 sprintf(fmu_buffer, "%s%d", TCA_ID_FP_ENROLL_CNT, resultado);
fmanzano_dtk 1:9e821e640117 666 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 667 fingerprint_flag_poweroff = true;
fmanzano_dtk 1:9e821e640117 668 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 669 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 670 myPC_debug.printf("BLE - Pendiente apagar FP GT521Fx...\r\n");
fmanzano_dtk 1:9e821e640117 671 #endif
fmanzano_dtk 1:9e821e640117 672 break;
fmanzano_dtk 1:9e821e640117 673
fmanzano_dtk 1:9e821e640117 674 case CMD_CHECK_ENROLLED_ID:
fmanzano_dtk 1:9e821e640117 675 out3_gt521fx = out4_gt521fx = finterprint_flag_working= true;
fmanzano_dtk 1:9e821e640117 676 fingerprint_flag_poweroff = false;
fmanzano_dtk 8:a174cef25049 677 consultar_ID_FP = fingerprint_id;
fmanzano_dtk 1:9e821e640117 678 wait_us(500000);
fmanzano_dtk 1:9e821e640117 679 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 680 myPC_debug.printf("BLE - OUT3:TRUE\r\n");
fmanzano_dtk 8:a174cef25049 681 myPC_debug.printf("BLE - Consulta de Posicion de Memoria - Lector de Huellas\r\n");
fmanzano_dtk 1:9e821e640117 682 #endif
fmanzano_dtk 13:472d40c0fc6b 683 #if FMU_FP_READER_GT521 == 1
fmanzano_dtk 8:a174cef25049 684 FP_Open();
fmanzano_dtk 8:a174cef25049 685 enrolado = FP_CheckEnrolled(consultar_ID_FP);
fmanzano_dtk 8:a174cef25049 686 FP_Close();
fmanzano_dtk 8:a174cef25049 687 #else
fmanzano_dtk 1:9e821e640117 688 #endif
fmanzano_dtk 8:a174cef25049 689 wait_us(1000000);
fmanzano_dtk 1:9e821e640117 690 sprintf(fmu_buffer, "%s%d", TCA_ID_CHECK_ENROLLED_ID, enrolado);
fmanzano_dtk 1:9e821e640117 691 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 692 fingerprint_flag_poweroff = true;
fmanzano_dtk 1:9e821e640117 693 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 694 myPC_debug.printf("BLE - Posicion de huella %d: %d\r\n", consultar_ID_FP, enrolado);
fmanzano_dtk 1:9e821e640117 695 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 696 myPC_debug.printf("BLE - Pendiente apagar FP GT521Fx...\r\n");
fmanzano_dtk 1:9e821e640117 697 #endif
fmanzano_dtk 1:9e821e640117 698 break;
fmanzano_dtk 1:9e821e640117 699
fmanzano_dtk 1:9e821e640117 700 case CMD_FP_OVERRIDE_ENABLE:
fmanzano_dtk 1:9e821e640117 701 fingerprint_override = true;
fmanzano_dtk 9:46112570c850 702 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 703 ep.write(eprom_AddressArray[EE_Address_OVERRIDE_FP], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 704 } else {
fmanzano_dtk 9:46112570c850 705 EE_WriteVariable(VirtAddVarTab[AP_OVERRIDE_FP], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 706 }
fmanzano_dtk 1:9e821e640117 707 sprintf(fmu_buffer, "%s", TCA_ID_FP_OVERRIDE_ENABLE);
fmanzano_dtk 1:9e821e640117 708 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 709 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 710 myPC_debug.printf("BLE - Habilitar Anulacion de Lector de Huella\r\n");
fmanzano_dtk 1:9e821e640117 711 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 712 #endif
fmanzano_dtk 1:9e821e640117 713 break;
fmanzano_dtk 1:9e821e640117 714
fmanzano_dtk 1:9e821e640117 715 case CMD_FP_OVERRIDE_DISABLE:
fmanzano_dtk 1:9e821e640117 716 fingerprint_override = false;
fmanzano_dtk 9:46112570c850 717 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 718 ep.write(eprom_AddressArray[EE_Address_OVERRIDE_FP], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 719 } else {
fmanzano_dtk 9:46112570c850 720 EE_WriteVariable(VirtAddVarTab[AP_OVERRIDE_FP], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 721 }
fmanzano_dtk 1:9e821e640117 722 sprintf(fmu_buffer, "%s", TCA_ID_FP_OVERRIDE_DISABLE);
fmanzano_dtk 1:9e821e640117 723 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 724 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 725 myPC_debug.printf("BLE - Deshabilitar Anulacion de Lector de Huella\r\n");
fmanzano_dtk 1:9e821e640117 726 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 727 #endif
fmanzano_dtk 1:9e821e640117 728 break;
fmanzano_dtk 1:9e821e640117 729
fmanzano_dtk 1:9e821e640117 730 case CMD_FP_OVERRIDE_COUNT:
fmanzano_dtk 9:46112570c850 731 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 732 ep.write(eprom_AddressArray[EE_Address_OVERRIDE_LIMIT], ((uint16_t) fingerprint_id));
fmanzano_dtk 9:46112570c850 733 } else {
fmanzano_dtk 9:46112570c850 734 EE_WriteVariable(VirtAddVarTab[AP_OVERRIDE_QT], ((uint16_t) fingerprint_id));
fmanzano_dtk 9:46112570c850 735 }
fmanzano_dtk 1:9e821e640117 736 fp_override_limit = fingerprint_id;
fmanzano_dtk 1:9e821e640117 737 sprintf(fmu_buffer, "%s%d,%d", TCA_ID_Q_FP_OVERRIDE, fingerprint_override, fp_override_limit);
fmanzano_dtk 1:9e821e640117 738 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 739 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 740 myPC_debug.printf("BLE - Cambio Muestras para Anulacion de Lector de Huella\n");
fmanzano_dtk 1:9e821e640117 741 myPC_debug.printf("BLE - Nuevo valor de Huellas no Autorizadas: %d seg\r\n", fingerprint_id);
fmanzano_dtk 1:9e821e640117 742 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 743 #endif
fmanzano_dtk 1:9e821e640117 744 break;
fmanzano_dtk 1:9e821e640117 745
fmanzano_dtk 1:9e821e640117 746 case CMD_FP_OVERRIDE_QUERY:
fmanzano_dtk 1:9e821e640117 747 sprintf(fmu_buffer, "%s%d,%d", TCA_ID_Q_FP_OVERRIDE, fingerprint_override, fp_override_limit);
fmanzano_dtk 1:9e821e640117 748 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 749 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 750 myPC_debug.printf("BLE - Consulta por Anulacion de Lector de Huella\r\n");
fmanzano_dtk 1:9e821e640117 751 myPC_debug.printf("BLE - Anulacion: %s\r\n", fingerprint_override?"TRUE":"FALSE");
fmanzano_dtk 1:9e821e640117 752 myPC_debug.printf("BLE - Cantidad de No Autorizados: %d\r\n", fp_override_limit);
fmanzano_dtk 1:9e821e640117 753 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 754 #endif
fmanzano_dtk 1:9e821e640117 755 break;
fmanzano_dtk 1:9e821e640117 756
fmanzano_dtk 1:9e821e640117 757
fmanzano_dtk 1:9e821e640117 758 /** ********************************
fmanzano_dtk 1:9e821e640117 759 * COMANDOS DE PARLANTE
fmanzano_dtk 1:9e821e640117 760 * ******************************** */
fmanzano_dtk 1:9e821e640117 761 case CMD_SET_VOLUME:
fmanzano_dtk 1:9e821e640117 762 temp_JQ8400_Volume = fingerprint_id;
fmanzano_dtk 10:a0005a4116ae 763 if (external_eeprom) {
fmanzano_dtk 10:a0005a4116ae 764 ep.write(eprom_AddressArray[EE_Address_VOLUME], ((uint16_t) temp_JQ8400_Volume));
fmanzano_dtk 10:a0005a4116ae 765 } else {
fmanzano_dtk 10:a0005a4116ae 766 EE_WriteVariable(VirtAddVarTab[AP_VOLUME], ((uint16_t) temp_JQ8400_Volume));
fmanzano_dtk 10:a0005a4116ae 767 }
fmanzano_dtk 1:9e821e640117 768 jq8400_setVol(&temp_JQ8400_Volume, &voice_uart);
fmanzano_dtk 1:9e821e640117 769 sprintf(fmu_buffer, "%s%d", TCA_ID_VOLUME_SET, fingerprint_id);
fmanzano_dtk 1:9e821e640117 770 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 771 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 772 myPC_debug.printf("BLE - Volumen %d\r\n",fingerprint_id);
fmanzano_dtk 1:9e821e640117 773 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 774 #endif
fmanzano_dtk 1:9e821e640117 775 break;
fmanzano_dtk 1:9e821e640117 776
fmanzano_dtk 1:9e821e640117 777 case CMD_QUERY_VOLUME_LEVEL:
fmanzano_dtk 1:9e821e640117 778 sprintf(fmu_buffer, "%s%d", TCA_ID_Q_VOLUME_LEVEL, temp_JQ8400_Volume);
fmanzano_dtk 1:9e821e640117 779 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 780 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 781 myPC_debug.printf("BLE - Consulta por el Nivel de Volumen del Parlante\r\n");
fmanzano_dtk 1:9e821e640117 782 myPC_debug.printf("BLE - Nivel de Volumen del Parlante: %d\r\n", temp_JQ8400_Volume);
fmanzano_dtk 1:9e821e640117 783 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 784 #endif
fmanzano_dtk 1:9e821e640117 785 break;
fmanzano_dtk 1:9e821e640117 786
fmanzano_dtk 1:9e821e640117 787 /** ********************************
fmanzano_dtk 1:9e821e640117 788 * COMANDOS DE SENSOR DE LLUVIA
fmanzano_dtk 1:9e821e640117 789 * ******************************** */
fmanzano_dtk 1:9e821e640117 790 case CMD_RAIN_ENABLE:
fmanzano_dtk 1:9e821e640117 791 functionality_rain_sensor = true;
fmanzano_dtk 9:46112570c850 792 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 793 ep.write(eprom_AddressArray[EE_Address_RAINSENSOR], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 794 } else {
fmanzano_dtk 9:46112570c850 795 EE_WriteVariable(VirtAddVarTab[AP_RAINSENSOR], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 796 }
fmanzano_dtk 1:9e821e640117 797 tick_rain_sensor.detach();
fmanzano_dtk 1:9e821e640117 798 sprintf(fmu_buffer, "%s%d", TCA_ID_RAIN_SENSOR_ENA, 1);
fmanzano_dtk 1:9e821e640117 799 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 800 tick_rain_sensor.attach(&queryRG9, time_sample_rain);
fmanzano_dtk 1:9e821e640117 801 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 802 myPC_debug.printf("BLE - Sensor de Lluvia Habilitado\r\n");
fmanzano_dtk 1:9e821e640117 803 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 804 #endif
fmanzano_dtk 1:9e821e640117 805 break;
fmanzano_dtk 1:9e821e640117 806
fmanzano_dtk 1:9e821e640117 807 case CMD_RAIN_DISABLE:
fmanzano_dtk 1:9e821e640117 808 functionality_rain_sensor = false;
fmanzano_dtk 9:46112570c850 809 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 810 ep.write(eprom_AddressArray[EE_Address_RAINSENSOR], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 811 } else {
fmanzano_dtk 9:46112570c850 812 EE_WriteVariable(VirtAddVarTab[AP_RAINSENSOR], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 813 }
fmanzano_dtk 1:9e821e640117 814 tick_rain_sensor.detach();
fmanzano_dtk 1:9e821e640117 815 sprintf(fmu_buffer, "%s%d", TCA_ID_RAIN_SENSOR_ENA, 0);
fmanzano_dtk 1:9e821e640117 816 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 817 tx_fmu130_var_command(dry_Speed_CMD, &avl_uart);
fmanzano_dtk 1:9e821e640117 818 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 819 myPC_debug.printf("BLE - Sensor de Lluvia Deshabilitado\r\n");
fmanzano_dtk 1:9e821e640117 820 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 821 #endif
fmanzano_dtk 1:9e821e640117 822 break;
fmanzano_dtk 1:9e821e640117 823
fmanzano_dtk 1:9e821e640117 824 case CMD_RAIN_QUERY:
fmanzano_dtk 1:9e821e640117 825 sprintf(fmu_buffer, "%s%d", TCA_ID_Q_RAINSENSOR_STATUS, functionality_rain_sensor);
fmanzano_dtk 1:9e821e640117 826 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 827 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 828 myPC_debug.printf("BLE - Consulta Estatus del Sensor de Lluvia\r\n");
fmanzano_dtk 1:9e821e640117 829 myPC_debug.printf("BLE - Sensor de Lluvia: %d\r\n", functionality_rain_sensor);
fmanzano_dtk 1:9e821e640117 830 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 831 #endif
fmanzano_dtk 1:9e821e640117 832 break;
fmanzano_dtk 1:9e821e640117 833
fmanzano_dtk 1:9e821e640117 834 case CMD_CHANGE_RAIN_TIMER:
fmanzano_dtk 9:46112570c850 835 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 836 ep.write(eprom_AddressArray[EE_Address_RS_SAMPLE_T], ((uint16_t) fingerprint_id));
fmanzano_dtk 9:46112570c850 837 } else {
fmanzano_dtk 9:46112570c850 838 EE_WriteVariable(VirtAddVarTab[AP_RS_SAMPLE_T], ((uint16_t) fingerprint_id));
fmanzano_dtk 9:46112570c850 839 }
fmanzano_dtk 1:9e821e640117 840 time_sample_rain = fingerprint_id * 1.0;
fmanzano_dtk 1:9e821e640117 841 if (functionality_rain_sensor) {
fmanzano_dtk 1:9e821e640117 842 tick_rain_sensor.detach();
fmanzano_dtk 1:9e821e640117 843 tick_rain_sensor.attach(&queryRG9, time_sample_rain);
fmanzano_dtk 1:9e821e640117 844 }
fmanzano_dtk 1:9e821e640117 845 sprintf(fmu_buffer, "%s%.1f", TCA_ID_Q_RAIN_SAMPLE_TIMER, time_sample_rain);
fmanzano_dtk 1:9e821e640117 846 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 847 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 848 myPC_debug.printf("BLE - Cambio Temp. de Muestras para Sensor de Lluvia\n");
fmanzano_dtk 1:9e821e640117 849 myPC_debug.printf("BLE - Nuevo Temp. para muestreo: %d seg\r\n", fingerprint_id);
fmanzano_dtk 1:9e821e640117 850 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 851 #endif
fmanzano_dtk 1:9e821e640117 852 break;
fmanzano_dtk 1:9e821e640117 853
fmanzano_dtk 1:9e821e640117 854 case CMD_QUERY_RAIN_TIMER:
fmanzano_dtk 1:9e821e640117 855 sprintf(fmu_buffer, "%s%.1f", TCA_ID_Q_RAIN_SAMPLE_TIMER, time_sample_rain);
fmanzano_dtk 1:9e821e640117 856 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 857 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 858 myPC_debug.printf("BLE - Consulta por Temp. de Muestras para Sensor de Lluvia\r\n");
fmanzano_dtk 1:9e821e640117 859 myPC_debug.printf("BLE - Muestras en: %.1f seg\r\n", time_sample_rain);
fmanzano_dtk 1:9e821e640117 860 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 861 #endif
fmanzano_dtk 1:9e821e640117 862 break;
fmanzano_dtk 1:9e821e640117 863
fmanzano_dtk 1:9e821e640117 864 case CMD_RAIN_SILENT_MODE_ENA:
fmanzano_dtk 1:9e821e640117 865 functionality_rainSensor_silentMode = true;
fmanzano_dtk 9:46112570c850 866 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 867 ep.write(eprom_AddressArray[EE_Address_RS_SILENTMODE], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 868 } else {
fmanzano_dtk 9:46112570c850 869 EE_WriteVariable(VirtAddVarTab[AP_RS_SILENTMODE], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 870 }
fmanzano_dtk 1:9e821e640117 871 sprintf(fmu_buffer, "%s", TCA_ID_RAIN_SILENT_MODE_ENA);
fmanzano_dtk 1:9e821e640117 872 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 873 tx_fmu130_var_command(dry_Speed_CMD, &avl_uart);
fmanzano_dtk 1:9e821e640117 874 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 875 myPC_debug.printf("BLE - Habilitar Modo silencioso de Sensor de Lluvia\r\n");
fmanzano_dtk 1:9e821e640117 876 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 877 #endif
fmanzano_dtk 1:9e821e640117 878 break;
fmanzano_dtk 1:9e821e640117 879
fmanzano_dtk 1:9e821e640117 880
fmanzano_dtk 1:9e821e640117 881 case CMD_RAIN_SILENT_MODE_DIS:
fmanzano_dtk 1:9e821e640117 882 functionality_rainSensor_silentMode = false;
fmanzano_dtk 9:46112570c850 883 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 884 ep.write(eprom_AddressArray[EE_Address_RS_SILENTMODE], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 885 } else {
fmanzano_dtk 9:46112570c850 886 EE_WriteVariable(VirtAddVarTab[AP_RS_SILENTMODE], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 887 }
fmanzano_dtk 1:9e821e640117 888 sprintf(fmu_buffer, "%s", TCA_ID_RAIN_SILENT_MODE_DIS);
fmanzano_dtk 1:9e821e640117 889 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 890 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 891 myPC_debug.printf("BLE - Deshabilitar Modo silencioso de Sensor de Lluvia\r\n");
fmanzano_dtk 1:9e821e640117 892 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 893 #endif
fmanzano_dtk 1:9e821e640117 894 break;
fmanzano_dtk 1:9e821e640117 895
fmanzano_dtk 1:9e821e640117 896 case CMD_RAIN_SILENT_MODE_Q:
fmanzano_dtk 1:9e821e640117 897 sprintf(fmu_buffer, "%s%d", TCA_ID_RAIN_SILENT_MODE_Q, functionality_rainSensor_silentMode);
fmanzano_dtk 1:9e821e640117 898 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 899 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 900 myPC_debug.printf("BLE - Consulta por Modo silencioso de Sensor de Lluvia\r\n");
fmanzano_dtk 1:9e821e640117 901 myPC_debug.printf("BLE - Modo silencioso: %s\r\n", functionality_rainSensor_silentMode?"TRUE":"FALSE");
fmanzano_dtk 1:9e821e640117 902 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 903 #endif
fmanzano_dtk 1:9e821e640117 904 break;
fmanzano_dtk 1:9e821e640117 905
fmanzano_dtk 1:9e821e640117 906 case CMD_CHANGE_WSL:
fmanzano_dtk 1:9e821e640117 907 wet_Speed_Limit = fingerprint_id;
fmanzano_dtk 9:46112570c850 908 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 909 ep.write(eprom_AddressArray[EE_Address_WET_LIMIT], ((uint16_t) wet_Speed_Limit));
fmanzano_dtk 9:46112570c850 910 } else {
fmanzano_dtk 9:46112570c850 911 EE_WriteVariable(VirtAddVarTab[AP_WET_LIMIT], ((uint16_t) wet_Speed_Limit));
fmanzano_dtk 9:46112570c850 912 }
fmanzano_dtk 1:9e821e640117 913 sprintf(wet_Speed_CMD, "setparam 50092:%d", wet_Speed_Limit);
fmanzano_dtk 1:9e821e640117 914 tx_fmu130_var_command(wet_Speed_CMD, &avl_uart);
fmanzano_dtk 1:9e821e640117 915 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 916 myPC_debug.printf("BLE - Cambio Limite velocidad Mojado\r\n");
fmanzano_dtk 1:9e821e640117 917 myPC_debug.printf("BLE - Nuevo Limite: %d\r\n", wet_Speed_Limit);
fmanzano_dtk 1:9e821e640117 918 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 919 #endif
fmanzano_dtk 1:9e821e640117 920 sprintf(fmu_buffer, "%s%d,%d,%d,%d", TCA_ID_QUERY_SPEED_LIMIT,
fmanzano_dtk 1:9e821e640117 921 wet_Speed_Warning, wet_Speed_Limit, dry_Speed_Warning, dry_Speed_Limit);
fmanzano_dtk 1:9e821e640117 922 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 923 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 924 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 925 #endif
fmanzano_dtk 1:9e821e640117 926 break;
fmanzano_dtk 1:9e821e640117 927
fmanzano_dtk 1:9e821e640117 928 case CMD_CHANGE_WSW:
fmanzano_dtk 1:9e821e640117 929 wet_Speed_Warning = fingerprint_id;
fmanzano_dtk 9:46112570c850 930 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 931 ep.write(eprom_AddressArray[EE_Address_WET_WARNING], ((uint16_t) wet_Speed_Warning));
fmanzano_dtk 9:46112570c850 932 } else {
fmanzano_dtk 9:46112570c850 933 EE_WriteVariable(VirtAddVarTab[AP_WET_WARNING], ((uint16_t) wet_Speed_Warning));
fmanzano_dtk 9:46112570c850 934 }
fmanzano_dtk 1:9e821e640117 935 sprintf(wet_Speed_CMD, "setparam 11104:%d", wet_Speed_Warning);
fmanzano_dtk 1:9e821e640117 936 tx_fmu130_var_command(wet_Speed_CMD, &avl_uart);
fmanzano_dtk 1:9e821e640117 937 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 938 myPC_debug.printf("BLE - Cambio Limite advertencia Mojado\r\n");
fmanzano_dtk 1:9e821e640117 939 myPC_debug.printf("BLE - Nueva advertencia: %d\r\n", wet_Speed_Warning);
fmanzano_dtk 1:9e821e640117 940 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 941 #endif
fmanzano_dtk 1:9e821e640117 942 sprintf(fmu_buffer, "%s%d,%d,%d,%d", TCA_ID_QUERY_SPEED_LIMIT,
fmanzano_dtk 1:9e821e640117 943 wet_Speed_Warning, wet_Speed_Limit, dry_Speed_Warning, dry_Speed_Limit);
fmanzano_dtk 1:9e821e640117 944 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 945 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 946 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 947 #endif
fmanzano_dtk 1:9e821e640117 948 break;
fmanzano_dtk 1:9e821e640117 949
fmanzano_dtk 1:9e821e640117 950 case CMD_CHANGE_DSL:
fmanzano_dtk 1:9e821e640117 951 dry_Speed_Limit = fingerprint_id;
fmanzano_dtk 9:46112570c850 952 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 953 ep.write(eprom_AddressArray[EE_Address_DRY_LIMIT], ((uint16_t) dry_Speed_Limit));
fmanzano_dtk 9:46112570c850 954 } else {
fmanzano_dtk 9:46112570c850 955 EE_WriteVariable(VirtAddVarTab[AP_DRY_LIMIT], ((uint16_t) dry_Speed_Limit));
fmanzano_dtk 9:46112570c850 956 }
fmanzano_dtk 1:9e821e640117 957 sprintf(dry_Speed_CMD, "setparam 50092:%d", dry_Speed_Limit);
fmanzano_dtk 1:9e821e640117 958 tx_fmu130_var_command(dry_Speed_CMD, &avl_uart);
fmanzano_dtk 1:9e821e640117 959 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 960 myPC_debug.printf("BLE - Cambio Limite velocidad Seco\r\n");
fmanzano_dtk 1:9e821e640117 961 myPC_debug.printf("BLE - Nuevo Limite: %d\r\n", dry_Speed_Limit);
fmanzano_dtk 1:9e821e640117 962 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 963 #endif
fmanzano_dtk 1:9e821e640117 964 sprintf(fmu_buffer, "%s%d,%d,%d,%d", TCA_ID_QUERY_SPEED_LIMIT,
fmanzano_dtk 1:9e821e640117 965 wet_Speed_Warning, wet_Speed_Limit, dry_Speed_Warning, dry_Speed_Limit);
fmanzano_dtk 1:9e821e640117 966 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 967 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 968 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 969 #endif
fmanzano_dtk 1:9e821e640117 970 break;
fmanzano_dtk 1:9e821e640117 971
fmanzano_dtk 1:9e821e640117 972 case CMD_CHANGE_DSW:
fmanzano_dtk 1:9e821e640117 973 dry_Speed_Warning = fingerprint_id;
fmanzano_dtk 9:46112570c850 974 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 975 ep.write(eprom_AddressArray[EE_Address_DRY_WARNING], ((uint16_t) dry_Speed_Warning));
fmanzano_dtk 9:46112570c850 976 } else {
fmanzano_dtk 9:46112570c850 977 EE_WriteVariable(VirtAddVarTab[AP_DRY_WARNING], ((uint16_t) dry_Speed_Warning));
fmanzano_dtk 9:46112570c850 978 }
fmanzano_dtk 1:9e821e640117 979 sprintf(dry_Speed_CMD, "setparam 11104:%d", dry_Speed_Warning);
fmanzano_dtk 1:9e821e640117 980 tx_fmu130_var_command(dry_Speed_CMD, &avl_uart);
fmanzano_dtk 1:9e821e640117 981 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 982 myPC_debug.printf("BLE - Cambio Limite advertencia Seco\r\n");
fmanzano_dtk 1:9e821e640117 983 myPC_debug.printf("BLE - Nueva advertencia: %d\r\n", dry_Speed_Warning);
fmanzano_dtk 1:9e821e640117 984 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 985 #endif
fmanzano_dtk 1:9e821e640117 986 sprintf(fmu_buffer, "%s%d,%d,%d,%d", TCA_ID_QUERY_SPEED_LIMIT,
fmanzano_dtk 1:9e821e640117 987 wet_Speed_Warning, wet_Speed_Limit, dry_Speed_Warning, dry_Speed_Limit);
fmanzano_dtk 1:9e821e640117 988 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 989 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 990 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 991 #endif
fmanzano_dtk 1:9e821e640117 992 break;
fmanzano_dtk 1:9e821e640117 993
fmanzano_dtk 1:9e821e640117 994 case CMD_QUERY_SPEED_LIMIT:
fmanzano_dtk 1:9e821e640117 995 sprintf(fmu_buffer, "%s%d,%d,%d,%d", TCA_ID_QUERY_SPEED_LIMIT,
fmanzano_dtk 1:9e821e640117 996 wet_Speed_Warning, wet_Speed_Limit, dry_Speed_Warning, dry_Speed_Limit);
fmanzano_dtk 1:9e821e640117 997 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 998 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 999 myPC_debug.printf("BLE - Consulta Limites Velocidad\r\n");
fmanzano_dtk 1:9e821e640117 1000 myPC_debug.printf("BLE - Mojado Advertencia: %d, Limite: %d\r\n", wet_Speed_Warning, wet_Speed_Limit);
fmanzano_dtk 1:9e821e640117 1001 myPC_debug.printf("BLE - Seco Advertencia: %d, Limite: %d\r\n", dry_Speed_Warning, dry_Speed_Limit);
fmanzano_dtk 1:9e821e640117 1002 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1003 #endif
fmanzano_dtk 1:9e821e640117 1004 break;
fmanzano_dtk 1:9e821e640117 1005
fmanzano_dtk 1:9e821e640117 1006
fmanzano_dtk 1:9e821e640117 1007
fmanzano_dtk 1:9e821e640117 1008 /** ********************************
fmanzano_dtk 1:9e821e640117 1009 * COMANDOS DE CINTURONES
fmanzano_dtk 1:9e821e640117 1010 * ******************************** */
fmanzano_dtk 1:9e821e640117 1011 case CMD_SEATBELT_ENABLE:
fmanzano_dtk 1:9e821e640117 1012 functionality_seatbelt_reading = true;
fmanzano_dtk 9:46112570c850 1013 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1014 ep.write(eprom_AddressArray[EE_Address_SEATBELT_READ], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1015 } else {
fmanzano_dtk 9:46112570c850 1016 EE_WriteVariable(VirtAddVarTab[AP_SEATBELT_READ], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1017 }
fmanzano_dtk 1:9e821e640117 1018 sprintf(fmu_buffer, "%s%d", TCA_ID_SEATBELT_READ_ENA, 1);
fmanzano_dtk 1:9e821e640117 1019 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1020 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1021 myPC_debug.printf("BLE - Lectura Cinturones Habilitado\r\n");
fmanzano_dtk 1:9e821e640117 1022 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1023 #endif
fmanzano_dtk 1:9e821e640117 1024 break;
fmanzano_dtk 1:9e821e640117 1025
fmanzano_dtk 1:9e821e640117 1026 case CMD_SEATBELT_DISABLE:
fmanzano_dtk 1:9e821e640117 1027 functionality_seatbelt_reading = false;
fmanzano_dtk 9:46112570c850 1028 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1029 ep.write(eprom_AddressArray[EE_Address_SEATBELT_READ], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1030 } else {
fmanzano_dtk 9:46112570c850 1031 EE_WriteVariable(VirtAddVarTab[AP_SEATBELT_READ], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1032 }
fmanzano_dtk 1:9e821e640117 1033 sprintf(fmu_buffer, "%s%d", TCA_ID_SEATBELT_READ_ENA, 0);
fmanzano_dtk 1:9e821e640117 1034 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1035 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1036 myPC_debug.printf("BLE - Lectura Cinturones Deshabilitado\r\n");
fmanzano_dtk 1:9e821e640117 1037 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1038 #endif
fmanzano_dtk 1:9e821e640117 1039 break;
fmanzano_dtk 1:9e821e640117 1040
fmanzano_dtk 1:9e821e640117 1041 case CMD_SEATBELT_QUERY:
fmanzano_dtk 1:9e821e640117 1042 sprintf(fmu_buffer, "%s%d", TCA_ID_SEATBELT_READ_ENA, functionality_force_driver_buclke);
fmanzano_dtk 1:9e821e640117 1043 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1044 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1045 myPC_debug.printf("BLE - Consulta Estado de Lectura de Cinturones\r\n");
fmanzano_dtk 1:9e821e640117 1046 myPC_debug.printf("BLE - Lectura de Cinturones: %s\r\n", functionality_force_driver_buclke?"TRUE":"FALSE");
fmanzano_dtk 1:9e821e640117 1047 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1048 #endif
fmanzano_dtk 1:9e821e640117 1049 break;
fmanzano_dtk 1:9e821e640117 1050
fmanzano_dtk 1:9e821e640117 1051 case CMD_FORCE_BUCLKE_ENABLE:
fmanzano_dtk 1:9e821e640117 1052 functionality_force_driver_buclke = true;
fmanzano_dtk 1:9e821e640117 1053 functionality_seatbelt_reading = true;
fmanzano_dtk 9:46112570c850 1054 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1055 ep.write(eprom_AddressArray[EE_Address_SEATBELT_READ], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1056 ep.write(eprom_AddressArray[EE_Address_ENFORCE_SB], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1057 } else {
fmanzano_dtk 9:46112570c850 1058 EE_WriteVariable(VirtAddVarTab[AP_SEATBELT_READ], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1059 EE_WriteVariable(VirtAddVarTab[AP_ENFORCE_SB], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1060 }
fmanzano_dtk 1:9e821e640117 1061 sprintf(fmu_buffer, "%s%d", TCA_ID_FORCE_SEATBELT, 1);
fmanzano_dtk 1:9e821e640117 1062 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1063 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1064 myPC_debug.printf("BLE - Forzar Cinturon de Piloto Habilitado\r\n");
fmanzano_dtk 1:9e821e640117 1065 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1066 #endif
fmanzano_dtk 1:9e821e640117 1067 break;
fmanzano_dtk 1:9e821e640117 1068
fmanzano_dtk 1:9e821e640117 1069 case CMD_FORCE_BUCLKE_DISABLE:
fmanzano_dtk 1:9e821e640117 1070 tx_fmu130_command(FMU_ENGINE_UNLOCK, &avl_uart);
fmanzano_dtk 1:9e821e640117 1071 out1_fingerprint = 1;
fmanzano_dtk 1:9e821e640117 1072 wait_us(1000000);
fmanzano_dtk 1:9e821e640117 1073 out1_fingerprint = 0;
fmanzano_dtk 1:9e821e640117 1074 functionality_force_driver_buclke = false;
fmanzano_dtk 9:46112570c850 1075 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1076 ep.write(eprom_AddressArray[EE_Address_ENFORCE_SB], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1077 } else {
fmanzano_dtk 9:46112570c850 1078 EE_WriteVariable(VirtAddVarTab[AP_ENFORCE_SB], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1079 }
fmanzano_dtk 1:9e821e640117 1080 sprintf(fmu_buffer, "%s%d", TCA_ID_FORCE_SEATBELT, 0);
fmanzano_dtk 1:9e821e640117 1081 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1082 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1083 myPC_debug.printf("BLE - Forzar Cinturon de Piloto Deshabilitado\r\n");
fmanzano_dtk 1:9e821e640117 1084 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1085 #endif
fmanzano_dtk 1:9e821e640117 1086 break;
fmanzano_dtk 1:9e821e640117 1087
fmanzano_dtk 1:9e821e640117 1088 case CMD_QUERY_FORCE_SEATBELT:
fmanzano_dtk 1:9e821e640117 1089 sprintf(fmu_buffer, "%s%d", TCA_ID_Q_FORCE_SEATBELT_ST, functionality_force_driver_buclke);
fmanzano_dtk 1:9e821e640117 1090 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1091 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1092 myPC_debug.printf("BLE - Consulta Estatus para Forzar Cinturon de Piloto\r\n");
fmanzano_dtk 1:9e821e640117 1093 myPC_debug.printf("BLE - Forzar Cinturon de Piloto: %d\r\n", functionality_force_driver_buclke);
fmanzano_dtk 1:9e821e640117 1094 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1095 #endif
fmanzano_dtk 1:9e821e640117 1096 break;
fmanzano_dtk 1:9e821e640117 1097
fmanzano_dtk 1:9e821e640117 1098 case CMD_SET_INPUT_NORMAL_O: // CONFIGURACIÓN DE LIVIANO y Cinturón Chino
fmanzano_dtk 1:9e821e640117 1099 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1100 myPC_debug.printf("BLE - Entradas como Normalmente Abierta\r\n");
fmanzano_dtk 1:9e821e640117 1101 #endif
fmanzano_dtk 9:46112570c850 1102 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1103 ep.write(eprom_AddressArray[EE_Address_PILOT_BTYPE], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1104 ep.write(eprom_AddressArray[EE_Address_COPILOT_BTYPE], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1105 ep.write(eprom_AddressArray[EE_Address_CREW_BTYPE], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1106 } else {
fmanzano_dtk 9:46112570c850 1107 EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1108 EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1109 EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1110 }
fmanzano_dtk 1:9e821e640117 1111 pilot_buckle_type = copilot_buckle_type = crew_buckle_type = true; // HONDURAS
fmanzano_dtk 1:9e821e640117 1112 pilot_buckleUp = copilot_buckleUp = crew_buckleUp = 1;
fmanzano_dtk 1:9e821e640117 1113 pilot_unfasten = copilot_unfasten = crew_unfasten = -1;
fmanzano_dtk 1:9e821e640117 1114 sprintf(fmu_buffer, "%s", TCA_ID_PILOT_BUCKLE_NO);
fmanzano_dtk 1:9e821e640117 1115 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1116 sprintf(fmu_buffer, "%s", TCA_ID_COPILOT_BUCKLE_NO);
fmanzano_dtk 1:9e821e640117 1117 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1118 sprintf(fmu_buffer, "%s", TCA_ID_CREW_BUCKLE_NO);
fmanzano_dtk 1:9e821e640117 1119 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1120 break;
fmanzano_dtk 1:9e821e640117 1121
fmanzano_dtk 1:9e821e640117 1122 case CMD_SET_INPUT_NORMAL_C: // CONFIGURACIÓN DE CAMIÓN
fmanzano_dtk 1:9e821e640117 1123 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1124 myPC_debug.printf("BLE - Entradas como Normalmente Cerradas\r\n");
fmanzano_dtk 1:9e821e640117 1125 #endif
fmanzano_dtk 1:9e821e640117 1126 pilot_buckle_type = copilot_buckle_type = crew_buckle_type = false; // PANAMA
fmanzano_dtk 9:46112570c850 1127 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1128 ep.write(eprom_AddressArray[EE_Address_PILOT_BTYPE], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1129 ep.write(eprom_AddressArray[EE_Address_COPILOT_BTYPE], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1130 ep.write(eprom_AddressArray[EE_Address_CREW_BTYPE], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1131 } else {
fmanzano_dtk 9:46112570c850 1132 EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1133 EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1134 EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1135 }
fmanzano_dtk 1:9e821e640117 1136 pilot_buckleUp = copilot_buckleUp = crew_buckleUp = -1;
fmanzano_dtk 1:9e821e640117 1137 pilot_unfasten = copilot_unfasten = crew_unfasten = 1;
fmanzano_dtk 1:9e821e640117 1138 sprintf(fmu_buffer, "%s", TCA_ID_PILOT_BUCKLE_NC);
fmanzano_dtk 1:9e821e640117 1139 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1140 sprintf(fmu_buffer, "%s", TCA_ID_COPILOT_BUCKLE_NC);
fmanzano_dtk 1:9e821e640117 1141 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1142 sprintf(fmu_buffer, "%s", TCA_ID_CREW_BUCKLE_NC);
fmanzano_dtk 1:9e821e640117 1143 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1144 break;
fmanzano_dtk 1:9e821e640117 1145
fmanzano_dtk 1:9e821e640117 1146 case CMD_QUERY_DIN_CONFIG:
fmanzano_dtk 1:9e821e640117 1147 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1148 myPC_debug.printf("BLE - Consulta por DIN Config.\r\n");
fmanzano_dtk 1:9e821e640117 1149 #endif
fmanzano_dtk 1:9e821e640117 1150
fmanzano_dtk 1:9e821e640117 1151 if (pilot_buckle_type) {
fmanzano_dtk 1:9e821e640117 1152 sprintf(fmu_buffer, "%s", TCA_ID_PILOT_BUCKLE_NO);
fmanzano_dtk 1:9e821e640117 1153 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1154 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1155 myPC_debug.printf("%s\r\n", "BLE - Cinturon de Piloto: NO");
fmanzano_dtk 1:9e821e640117 1156 #endif
fmanzano_dtk 1:9e821e640117 1157 } else {
fmanzano_dtk 1:9e821e640117 1158 sprintf(fmu_buffer, "%s", TCA_ID_PILOT_BUCKLE_NC);
fmanzano_dtk 1:9e821e640117 1159 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1160 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1161 myPC_debug.printf("%s\r\n", "BLE - Cinturon de Piloto: NC");
fmanzano_dtk 1:9e821e640117 1162 #endif
fmanzano_dtk 1:9e821e640117 1163 }
fmanzano_dtk 1:9e821e640117 1164
fmanzano_dtk 1:9e821e640117 1165 if (copilot_buckle_type) {
fmanzano_dtk 1:9e821e640117 1166 sprintf(fmu_buffer, "%s", TCA_ID_COPILOT_BUCKLE_NO);
fmanzano_dtk 1:9e821e640117 1167 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1168 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1169 myPC_debug.printf("%s\r\n", "BLE - Cinturon de Copiloto: NO");
fmanzano_dtk 1:9e821e640117 1170 #endif
fmanzano_dtk 1:9e821e640117 1171 } else {
fmanzano_dtk 1:9e821e640117 1172 sprintf(fmu_buffer, "%s", TCA_ID_COPILOT_BUCKLE_NC);
fmanzano_dtk 1:9e821e640117 1173 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1174 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1175 myPC_debug.printf("%s\r\n", "BLE - Cinturon de Copiloto: NC");
fmanzano_dtk 1:9e821e640117 1176 #endif
fmanzano_dtk 1:9e821e640117 1177 }
fmanzano_dtk 1:9e821e640117 1178
fmanzano_dtk 1:9e821e640117 1179 if (crew_buckle_type) {
fmanzano_dtk 1:9e821e640117 1180 sprintf(fmu_buffer, "%s", TCA_ID_CREW_BUCKLE_NO);
fmanzano_dtk 1:9e821e640117 1181 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1182 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1183 myPC_debug.printf("%s\r\n", "BLE - Cinturon de Tripulante: NO");
fmanzano_dtk 1:9e821e640117 1184 #endif
fmanzano_dtk 1:9e821e640117 1185 } else {
fmanzano_dtk 1:9e821e640117 1186 sprintf(fmu_buffer, "%s", TCA_ID_CREW_BUCKLE_NC);
fmanzano_dtk 1:9e821e640117 1187 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1188 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1189 myPC_debug.printf("%s\r\n", "BLE - Cinturon de Tripulante: NC");
fmanzano_dtk 1:9e821e640117 1190 #endif
fmanzano_dtk 1:9e821e640117 1191 }
fmanzano_dtk 1:9e821e640117 1192 break;
fmanzano_dtk 1:9e821e640117 1193
fmanzano_dtk 1:9e821e640117 1194 case CMD_PILOT_BUCKLE_NO: // CONFIGURACIÓN DE LIVIANO y Cinturón Chino
fmanzano_dtk 1:9e821e640117 1195 pilot_buckle_type = true; // HONDURAS
fmanzano_dtk 9:46112570c850 1196 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1197 ep.write(eprom_AddressArray[EE_Address_PILOT_BTYPE], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1198 } else {
fmanzano_dtk 9:46112570c850 1199 EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1200 }
fmanzano_dtk 1:9e821e640117 1201 pilot_buckleUp = 1;
fmanzano_dtk 1:9e821e640117 1202 pilot_unfasten = -1;
fmanzano_dtk 1:9e821e640117 1203 sprintf(fmu_buffer, "%s", TCA_ID_PILOT_BUCKLE_NO);
fmanzano_dtk 1:9e821e640117 1204 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1205 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1206 myPC_debug.printf("BLE - Cambio Config. Cinturon de Piloto: NO\r\n");
fmanzano_dtk 1:9e821e640117 1207 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1208 #endif
fmanzano_dtk 1:9e821e640117 1209 break;
fmanzano_dtk 1:9e821e640117 1210
fmanzano_dtk 1:9e821e640117 1211 case CMD_PILOT_BUCKLE_NC: // CONFIGURACIÓN DE CAMIÓN
fmanzano_dtk 1:9e821e640117 1212 pilot_buckle_type = false; // PANAMA
fmanzano_dtk 9:46112570c850 1213 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1214 ep.write(eprom_AddressArray[EE_Address_PILOT_BTYPE], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1215 } else {
fmanzano_dtk 9:46112570c850 1216 EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1217 }
fmanzano_dtk 1:9e821e640117 1218 pilot_buckleUp = -1;
fmanzano_dtk 1:9e821e640117 1219 pilot_unfasten = 1;
fmanzano_dtk 1:9e821e640117 1220 sprintf(fmu_buffer, "%s", TCA_ID_PILOT_BUCKLE_NC);
fmanzano_dtk 1:9e821e640117 1221 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1222 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1223 myPC_debug.printf("BLE - Cambio Config. Cinturon de Piloto: NC\r\n");
fmanzano_dtk 1:9e821e640117 1224 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1225 #endif
fmanzano_dtk 1:9e821e640117 1226 break;
fmanzano_dtk 1:9e821e640117 1227
fmanzano_dtk 1:9e821e640117 1228 case CMD_QUERY_PILOT_BT:
fmanzano_dtk 1:9e821e640117 1229 if (pilot_buckle_type) {
fmanzano_dtk 1:9e821e640117 1230 sprintf(fmu_buffer, "%s", TCA_ID_PILOT_BUCKLE_NO);
fmanzano_dtk 1:9e821e640117 1231 } else {
fmanzano_dtk 1:9e821e640117 1232 sprintf(fmu_buffer, "%s", TCA_ID_PILOT_BUCKLE_NC);
fmanzano_dtk 1:9e821e640117 1233 }
fmanzano_dtk 1:9e821e640117 1234 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1235 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1236 myPC_debug.printf("BLE - Consulta por Config. Cinturon de Piloto\r\n");
fmanzano_dtk 1:9e821e640117 1237 myPC_debug.printf("BLE - Cinturon Piloto Tipo: %s\r\n", pilot_buckle_type?"N. OPEN":"N. CLOSE");
fmanzano_dtk 1:9e821e640117 1238 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1239 #endif
fmanzano_dtk 1:9e821e640117 1240 break;
fmanzano_dtk 1:9e821e640117 1241
fmanzano_dtk 1:9e821e640117 1242 case CMD_COPILOT_BUCKLE_NO: // CONFIGURACIÓN DE LIVIANO y Cinturón Chino
fmanzano_dtk 1:9e821e640117 1243 copilot_buckle_type = true; // HONDURAS
fmanzano_dtk 9:46112570c850 1244 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1245 ep.write(eprom_AddressArray[EE_Address_COPILOT_BTYPE], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1246 } else {
fmanzano_dtk 9:46112570c850 1247 EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1248 }
fmanzano_dtk 1:9e821e640117 1249 copilot_buckleUp = 1;
fmanzano_dtk 1:9e821e640117 1250 copilot_unfasten = -1;
fmanzano_dtk 1:9e821e640117 1251 sprintf(fmu_buffer, "%s", TCA_ID_COPILOT_BUCKLE_NO);
fmanzano_dtk 1:9e821e640117 1252 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1253 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1254 myPC_debug.printf("BLE - Cambio Config. Cinturon de Copiloto: NO\r\n");
fmanzano_dtk 1:9e821e640117 1255 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1256 #endif
fmanzano_dtk 1:9e821e640117 1257 break;
fmanzano_dtk 1:9e821e640117 1258
fmanzano_dtk 1:9e821e640117 1259 case CMD_COPILOT_BUCKLE_NC: // CONFIGURACIÓN DE CAMIÓN
fmanzano_dtk 1:9e821e640117 1260 copilot_buckle_type = false; // PANAMA
fmanzano_dtk 9:46112570c850 1261 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1262 ep.write(eprom_AddressArray[EE_Address_COPILOT_BTYPE], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1263 } else {
fmanzano_dtk 9:46112570c850 1264 EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1265 }
fmanzano_dtk 1:9e821e640117 1266 copilot_buckleUp = -1;
fmanzano_dtk 1:9e821e640117 1267 copilot_unfasten = 1;
fmanzano_dtk 1:9e821e640117 1268 sprintf(fmu_buffer, "%s", TCA_ID_COPILOT_BUCKLE_NC);
fmanzano_dtk 1:9e821e640117 1269 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1270 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1271 myPC_debug.printf("BLE - Cambio Config. Cinturon de Copiloto: NC\r\n");
fmanzano_dtk 1:9e821e640117 1272 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1273 #endif
fmanzano_dtk 1:9e821e640117 1274 break;
fmanzano_dtk 1:9e821e640117 1275
fmanzano_dtk 1:9e821e640117 1276 case CMD_QUERY_COPILOT_BT:
fmanzano_dtk 1:9e821e640117 1277 if (copilot_buckle_type) {
fmanzano_dtk 1:9e821e640117 1278 sprintf(fmu_buffer, "%s", TCA_ID_COPILOT_BUCKLE_NO);
fmanzano_dtk 1:9e821e640117 1279 } else {
fmanzano_dtk 1:9e821e640117 1280 sprintf(fmu_buffer, "%s", TCA_ID_COPILOT_BUCKLE_NC);
fmanzano_dtk 1:9e821e640117 1281 }
fmanzano_dtk 1:9e821e640117 1282 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1283 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1284 myPC_debug.printf("BLE - Consulta por Config. Cinturon de Copiloto\r\n");
fmanzano_dtk 1:9e821e640117 1285 myPC_debug.printf("BLE - Cinturon Copiloto Tipo: %s\r\n", copilot_buckle_type?"N. OPEN":"N. CLOSE");
fmanzano_dtk 1:9e821e640117 1286 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1287 #endif
fmanzano_dtk 1:9e821e640117 1288 break;
fmanzano_dtk 1:9e821e640117 1289
fmanzano_dtk 1:9e821e640117 1290 case CMD_CREW_BUCKLE_NO: // CONFIGURACIÓN DE LIVIANO y Cinturón Chino
fmanzano_dtk 1:9e821e640117 1291 crew_buckle_type = true; // HONDURAS
fmanzano_dtk 9:46112570c850 1292 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1293 ep.write(eprom_AddressArray[EE_Address_CREW_BTYPE], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1294 } else {
fmanzano_dtk 9:46112570c850 1295 EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1296 }
fmanzano_dtk 1:9e821e640117 1297 crew_buckleUp = 1;
fmanzano_dtk 1:9e821e640117 1298 crew_unfasten = -1;
fmanzano_dtk 1:9e821e640117 1299 sprintf(fmu_buffer, "%s", TCA_ID_CREW_BUCKLE_NO);
fmanzano_dtk 1:9e821e640117 1300 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1301 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1302 myPC_debug.printf("BLE - Cambio Config. Cinturon de Tripulante: NO\r\n");
fmanzano_dtk 1:9e821e640117 1303 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1304 #endif
fmanzano_dtk 1:9e821e640117 1305 break;
fmanzano_dtk 1:9e821e640117 1306
fmanzano_dtk 1:9e821e640117 1307 case CMD_CREW_BUCKLE_NC: // CONFIGURACIÓN DE CAMIÓN
fmanzano_dtk 1:9e821e640117 1308 crew_buckle_type = false; // PANAMA
fmanzano_dtk 9:46112570c850 1309 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1310 ep.write(eprom_AddressArray[EE_Address_CREW_BTYPE], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1311 } else {
fmanzano_dtk 9:46112570c850 1312 EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1313 }
fmanzano_dtk 1:9e821e640117 1314 crew_buckleUp = -1;
fmanzano_dtk 1:9e821e640117 1315 crew_unfasten = 1;
fmanzano_dtk 1:9e821e640117 1316 sprintf(fmu_buffer, "%s", TCA_ID_CREW_BUCKLE_NC);
fmanzano_dtk 1:9e821e640117 1317 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1318 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1319 myPC_debug.printf("BLE - Cambio Config. Cinturon de Tripulante: NC\r\n");
fmanzano_dtk 1:9e821e640117 1320 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1321 #endif
fmanzano_dtk 1:9e821e640117 1322 break;
fmanzano_dtk 1:9e821e640117 1323
fmanzano_dtk 1:9e821e640117 1324 case CMD_QUERY_CREW_BT:
fmanzano_dtk 1:9e821e640117 1325 if (crew_buckle_type) {
fmanzano_dtk 1:9e821e640117 1326 sprintf(fmu_buffer, "%s", TCA_ID_CREW_BUCKLE_NO);
fmanzano_dtk 1:9e821e640117 1327 } else {
fmanzano_dtk 1:9e821e640117 1328 sprintf(fmu_buffer, "%s", TCA_ID_CREW_BUCKLE_NC);
fmanzano_dtk 1:9e821e640117 1329 }
fmanzano_dtk 1:9e821e640117 1330 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1331 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1332 myPC_debug.printf("BLE - Consulta por Config. Cinturon de Tripulante\r\n");
fmanzano_dtk 1:9e821e640117 1333 myPC_debug.printf("BLE - Cinturon Tripulante Tipo: %s\r\n", crew_buckle_type?"N. OPEN":"N. CLOSE");
fmanzano_dtk 1:9e821e640117 1334 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1335 #endif
fmanzano_dtk 1:9e821e640117 1336 break;
fmanzano_dtk 1:9e821e640117 1337
fmanzano_dtk 1:9e821e640117 1338
fmanzano_dtk 1:9e821e640117 1339
fmanzano_dtk 1:9e821e640117 1340 /** ********************************
fmanzano_dtk 1:9e821e640117 1341 * COMANDOS DE APAGADO POR RALENTI
fmanzano_dtk 1:9e821e640117 1342 * ******************************** */
fmanzano_dtk 1:9e821e640117 1343 case CMD_IDLE_SHUTDOWN_ENABLE:
fmanzano_dtk 1:9e821e640117 1344 functionality_idle_shutdown = true;
fmanzano_dtk 9:46112570c850 1345 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1346 ep.write(eprom_AddressArray[EE_Address_IDLE_SHUTDOWN], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1347 } else {
fmanzano_dtk 9:46112570c850 1348 EE_WriteVariable(VirtAddVarTab[AP_IDLE_SHUTDOWN], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1349 }
fmanzano_dtk 1:9e821e640117 1350 sprintf(fmu_buffer, "%s%d", TCA_ID_FORCE_IDLE_SHUTDOWN, 1);
fmanzano_dtk 1:9e821e640117 1351 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1352 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1353 myPC_debug.printf("BLE - Apagado por Ralenti Habilitado\r\n");
fmanzano_dtk 1:9e821e640117 1354 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1355 #endif
fmanzano_dtk 1:9e821e640117 1356 break;
fmanzano_dtk 1:9e821e640117 1357
fmanzano_dtk 1:9e821e640117 1358 case CMD_IDLE_SHUTDOWN_DISABLE:
fmanzano_dtk 1:9e821e640117 1359 functionality_idle_shutdown = false;
fmanzano_dtk 9:46112570c850 1360 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1361 ep.write(eprom_AddressArray[EE_Address_IDLE_SHUTDOWN], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1362 } else {
fmanzano_dtk 9:46112570c850 1363 EE_WriteVariable(VirtAddVarTab[AP_IDLE_SHUTDOWN], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1364 }
fmanzano_dtk 1:9e821e640117 1365 tick_idle_shutdown.detach();
fmanzano_dtk 1:9e821e640117 1366 sprintf(fmu_buffer, "%s%d", TCA_ID_FORCE_IDLE_SHUTDOWN, 0);
fmanzano_dtk 1:9e821e640117 1367 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1368 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1369 myPC_debug.printf("BLE - Apagado por Ralenti Deshabilitado\r\n");
fmanzano_dtk 1:9e821e640117 1370 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1371 #endif
fmanzano_dtk 1:9e821e640117 1372 break;
fmanzano_dtk 1:9e821e640117 1373
fmanzano_dtk 1:9e821e640117 1374 case CMD_IDLE_SHUTDOWN_QUERY:
fmanzano_dtk 1:9e821e640117 1375 sprintf(fmu_buffer, "%s%d", TCA_ID_Q_IDLE_SHUTDOWN_ST, functionality_idle_shutdown);
fmanzano_dtk 1:9e821e640117 1376 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1377 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1378 myPC_debug.printf("BLE - Consulta Estatus de Apagado por Ralenti\r\n");
fmanzano_dtk 1:9e821e640117 1379 myPC_debug.printf("BLE - Apagado por Ralenti: %s\r\n", functionality_idle_shutdown?"TRUE":"FALSE");
fmanzano_dtk 1:9e821e640117 1380 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1381 #endif
fmanzano_dtk 1:9e821e640117 1382 break;
fmanzano_dtk 1:9e821e640117 1383
fmanzano_dtk 1:9e821e640117 1384 case CMD_CHANGE_IDLE_SHUTDOWN_T:
fmanzano_dtk 9:46112570c850 1385 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1386 ep.write(eprom_AddressArray[EE_Address_IDLE_S_TIME], ((uint16_t) fingerprint_id));
fmanzano_dtk 9:46112570c850 1387 } else {
fmanzano_dtk 9:46112570c850 1388 EE_WriteVariable(VirtAddVarTab[AP_IDLE_S_TIME], ((uint16_t) fingerprint_id));
fmanzano_dtk 9:46112570c850 1389 }
fmanzano_dtk 1:9e821e640117 1390 wait_idle_shutdown = fingerprint_id * 1.0;
fmanzano_dtk 1:9e821e640117 1391 sprintf(fmu_buffer, "%s%.1f", TCA_ID_QUERY_IDLE_TIMER, wait_idle_shutdown);
fmanzano_dtk 1:9e821e640117 1392 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1393 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1394 myPC_debug.printf("BLE - Cambio Temp. de Apagado Ralenti\r\n");
fmanzano_dtk 1:9e821e640117 1395 myPC_debug.printf("BLE - Nuevo Temp. Ralendi: %d seg\r\n", fingerprint_id);
fmanzano_dtk 1:9e821e640117 1396 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1397 #endif
fmanzano_dtk 1:9e821e640117 1398 break;
fmanzano_dtk 1:9e821e640117 1399
fmanzano_dtk 1:9e821e640117 1400 case CMD_QUERY_IDLE_SHUTDOWN_T:
fmanzano_dtk 1:9e821e640117 1401 sprintf(fmu_buffer, "%s%.1f", TCA_ID_QUERY_IDLE_TIMER, wait_idle_shutdown);
fmanzano_dtk 1:9e821e640117 1402 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1403 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1404 myPC_debug.printf("BLE - Consulta Temp. de Apagado Ralenti\r\n");
fmanzano_dtk 1:9e821e640117 1405 myPC_debug.printf("BLE - Apagado Ralenti en %.1f seg\r\n", wait_idle_shutdown);
fmanzano_dtk 1:9e821e640117 1406 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1407 #endif
fmanzano_dtk 1:9e821e640117 1408 break;
fmanzano_dtk 1:9e821e640117 1409
fmanzano_dtk 1:9e821e640117 1410
fmanzano_dtk 1:9e821e640117 1411 /** ********************************
fmanzano_dtk 1:9e821e640117 1412 * COMANDOS DE RECORDATORIO DE RALENTI
fmanzano_dtk 1:9e821e640117 1413 * ******************************** */
fmanzano_dtk 1:9e821e640117 1414 case CMD_IDLE_REMINDER_ENABLE:
fmanzano_dtk 1:9e821e640117 1415 functionality_idle_reminder = true;
fmanzano_dtk 9:46112570c850 1416 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1417 ep.write(eprom_AddressArray[EE_Address_IDLE_REMINDER], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1418 } else {
fmanzano_dtk 9:46112570c850 1419 EE_WriteVariable(VirtAddVarTab[AP_IDLE_REMINDER], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1420 }
fmanzano_dtk 1:9e821e640117 1421 sprintf(fmu_buffer, "%s", TCA_ID_IDLE_REMINDER_ENA);
fmanzano_dtk 1:9e821e640117 1422 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1423 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1424 myPC_debug.printf("BLE - Recordatorio por Ralenti Habilitado\r\n");
fmanzano_dtk 1:9e821e640117 1425 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1426 #endif
fmanzano_dtk 1:9e821e640117 1427 break;
fmanzano_dtk 1:9e821e640117 1428
fmanzano_dtk 1:9e821e640117 1429 case CMD_IDLE_REMINDER_DISABLE:
fmanzano_dtk 1:9e821e640117 1430 functionality_idle_reminder = false;
fmanzano_dtk 9:46112570c850 1431 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1432 ep.write(eprom_AddressArray[EE_Address_IDLE_REMINDER], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1433 } else {
fmanzano_dtk 9:46112570c850 1434 EE_WriteVariable(VirtAddVarTab[AP_IDLE_REMINDER], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1435 }
fmanzano_dtk 1:9e821e640117 1436 sprintf(fmu_buffer, "%s", TCA_ID_IDLE_REMINDER_DIS);
fmanzano_dtk 1:9e821e640117 1437 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1438 tick_idle_reminder.detach();
fmanzano_dtk 1:9e821e640117 1439 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1440 myPC_debug.printf("BLE - Recordatorio por Ralenti Deshabilitado\r\n");
fmanzano_dtk 1:9e821e640117 1441 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1442 #endif
fmanzano_dtk 1:9e821e640117 1443 break;
fmanzano_dtk 1:9e821e640117 1444
fmanzano_dtk 1:9e821e640117 1445 case CMD_IDLE_REMINDER_QUERY:
fmanzano_dtk 1:9e821e640117 1446 if (functionality_idle_reminder) {
fmanzano_dtk 1:9e821e640117 1447 sprintf(fmu_buffer, "%s", TCA_ID_IDLE_REMINDER_ENA);
fmanzano_dtk 1:9e821e640117 1448 } else {
fmanzano_dtk 1:9e821e640117 1449 sprintf(fmu_buffer, "%s", TCA_ID_IDLE_REMINDER_DIS);
fmanzano_dtk 1:9e821e640117 1450 }
fmanzano_dtk 1:9e821e640117 1451 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1452 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1453 myPC_debug.printf("BLE - Consulta Estatus de Recordatorio por Ralenti\r\n");
fmanzano_dtk 1:9e821e640117 1454 myPC_debug.printf("BLE - Recordatorio por Ralenti: %s\r\n", functionality_idle_reminder?"TRUE":"FALSE");
fmanzano_dtk 1:9e821e640117 1455 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1456 #endif
fmanzano_dtk 1:9e821e640117 1457 break;
fmanzano_dtk 1:9e821e640117 1458
fmanzano_dtk 1:9e821e640117 1459 case CMD_CHANGE_IDLE_REMINDER_T:
fmanzano_dtk 9:46112570c850 1460 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1461 ep.write(eprom_AddressArray[EE_Address_IDLE_R_TIME], ((uint16_t) fingerprint_id));
fmanzano_dtk 9:46112570c850 1462 } else {
fmanzano_dtk 9:46112570c850 1463 EE_WriteVariable(VirtAddVarTab[AP_IDLE_R_TIME], ((uint16_t) fingerprint_id));
fmanzano_dtk 9:46112570c850 1464 }
fmanzano_dtk 1:9e821e640117 1465 wait_idle_reminder = fingerprint_id * 1.0;
fmanzano_dtk 1:9e821e640117 1466 sprintf(fmu_buffer, "%s%.1f", TCA_ID_IDLE_REMINDER_TIME, wait_idle_reminder);
fmanzano_dtk 1:9e821e640117 1467 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1468 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1469 myPC_debug.printf("BLE - Cambio Temp. de Recordatorio Ralenti\r\n");
fmanzano_dtk 1:9e821e640117 1470 myPC_debug.printf("BLE - Nuevo Recordatorio Ralendi: %d seg\r\n", fingerprint_id);
fmanzano_dtk 1:9e821e640117 1471 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1472 #endif
fmanzano_dtk 1:9e821e640117 1473 break;
fmanzano_dtk 1:9e821e640117 1474
fmanzano_dtk 1:9e821e640117 1475 case CMD_QUERY_IDLE_REMINDER_T:
fmanzano_dtk 1:9e821e640117 1476 sprintf(fmu_buffer, "%s%.1f", TCA_ID_IDLE_REMINDER_TIME, wait_idle_reminder);
fmanzano_dtk 1:9e821e640117 1477 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1478 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1479 myPC_debug.printf("BLE - Consulta Temp. de Recordatorio Ralenti\r\n");
fmanzano_dtk 1:9e821e640117 1480 myPC_debug.printf("BLE - Recordatorio Ralenti en %.1f seg\r\n", wait_idle_reminder);
fmanzano_dtk 1:9e821e640117 1481 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1482 #endif
fmanzano_dtk 1:9e821e640117 1483 break;
fmanzano_dtk 1:9e821e640117 1484
fmanzano_dtk 1:9e821e640117 1485
fmanzano_dtk 1:9e821e640117 1486 /** ********************************
fmanzano_dtk 1:9e821e640117 1487 * COMANDOS DE TIP DE SEGURIDAD
fmanzano_dtk 1:9e821e640117 1488 * ******************************** */
fmanzano_dtk 1:9e821e640117 1489 case CMD_QUERY_SAFETY_TIP_TIME:
fmanzano_dtk 1:9e821e640117 1490 sprintf(fmu_buffer, "%s%.1f", TCA_ID_QUERY_SAFETY_TIP, time_safety_tip);
fmanzano_dtk 1:9e821e640117 1491 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1492 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1493 myPC_debug.printf("BLE - Consulta Temp. de Tip de Seguridad\r\n");
fmanzano_dtk 1:9e821e640117 1494 myPC_debug.printf("BLE - Tip de Seguridad en %.1f seg\r\n", time_safety_tip);
fmanzano_dtk 1:9e821e640117 1495 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1496 #endif
fmanzano_dtk 1:9e821e640117 1497 break;
fmanzano_dtk 1:9e821e640117 1498
fmanzano_dtk 1:9e821e640117 1499 case CHANGE_SAFETY_TIP_TIME:
fmanzano_dtk 9:46112570c850 1500 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1501 ep.write(eprom_AddressArray[EE_Address_SAFETY_TIP_T], ((uint16_t) fingerprint_id));
fmanzano_dtk 9:46112570c850 1502 } else {
fmanzano_dtk 9:46112570c850 1503 EE_WriteVariable(VirtAddVarTab[AP_SAFETY_TIP_T], ((uint16_t) fingerprint_id));
fmanzano_dtk 9:46112570c850 1504 }
fmanzano_dtk 1:9e821e640117 1505 time_safety_tip = fingerprint_id * 1.0;
fmanzano_dtk 1:9e821e640117 1506 sprintf(fmu_buffer, "%s%.1f", TCA_ID_QUERY_SAFETY_TIP, time_safety_tip);
fmanzano_dtk 1:9e821e640117 1507 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1508 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1509 myPC_debug.printf("BLE - Cambio Temp. de Tip de Seguridad\r\n");
fmanzano_dtk 1:9e821e640117 1510 myPC_debug.printf("BLE - Nuevo Temp. para Tip de Seguridad: %d seg\r\n", fingerprint_id);
fmanzano_dtk 1:9e821e640117 1511 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1512 #endif
fmanzano_dtk 1:9e821e640117 1513 break;
fmanzano_dtk 1:9e821e640117 1514
fmanzano_dtk 1:9e821e640117 1515 case CMD_SAFETY_TIP_ENABLE:
fmanzano_dtk 1:9e821e640117 1516 functionality_safety_tip = true;
fmanzano_dtk 9:46112570c850 1517 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1518 ep.write(eprom_AddressArray[EE_Address_SAFETY_TIP], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1519 } else {
fmanzano_dtk 9:46112570c850 1520 EE_WriteVariable(VirtAddVarTab[AP_SAFETY_TIP], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1521 }
fmanzano_dtk 1:9e821e640117 1522 sprintf(fmu_buffer, "%s", TCA_ID_SAFETY_TIP_ENABLE);
fmanzano_dtk 1:9e821e640117 1523 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1524 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1525 myPC_debug.printf("BLE - Tip de Seguridad Habilitado\r\n");
fmanzano_dtk 1:9e821e640117 1526 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1527 #endif
fmanzano_dtk 1:9e821e640117 1528 break;
fmanzano_dtk 1:9e821e640117 1529
fmanzano_dtk 1:9e821e640117 1530 case CMD_SAFETY_TIP_DISABLE:
fmanzano_dtk 1:9e821e640117 1531 functionality_safety_tip = false;
fmanzano_dtk 9:46112570c850 1532 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1533 ep.write(eprom_AddressArray[EE_Address_SAFETY_TIP], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1534 } else {
fmanzano_dtk 9:46112570c850 1535 EE_WriteVariable(VirtAddVarTab[AP_SAFETY_TIP], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1536 }
fmanzano_dtk 1:9e821e640117 1537 tick_safety_tip.detach();
fmanzano_dtk 1:9e821e640117 1538 sprintf(fmu_buffer, "%s", TCA_ID_SAFETY_TIP_DISABLE);
fmanzano_dtk 1:9e821e640117 1539 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1540 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1541 myPC_debug.printf("BLE - Tip de Seguridad Deshabilitado\r\n");
fmanzano_dtk 1:9e821e640117 1542 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1543 #endif
fmanzano_dtk 1:9e821e640117 1544 break;
fmanzano_dtk 1:9e821e640117 1545
fmanzano_dtk 1:9e821e640117 1546 /** ********************************
fmanzano_dtk 1:9e821e640117 1547 * COMANDOS DE INFORMACIÓN ICS5
fmanzano_dtk 1:9e821e640117 1548 * ******************************** */
fmanzano_dtk 1:9e821e640117 1549 case CMD_QUERY_HARDWARE_VER:
fmanzano_dtk 1:9e821e640117 1550 sprintf(fmu_buffer, "%s%s", TCA_ID_HARDWARE_VERSION, hardware_version);
fmanzano_dtk 1:9e821e640117 1551 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1552 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1553 myPC_debug.printf("BLE - Consulta por Version de HW\r\n");
fmanzano_dtk 1:9e821e640117 1554 myPC_debug.printf("BLE - HW: %s\r\n", hardware_version);
fmanzano_dtk 1:9e821e640117 1555 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1556 #endif
fmanzano_dtk 1:9e821e640117 1557 break;
fmanzano_dtk 1:9e821e640117 1558
fmanzano_dtk 1:9e821e640117 1559 case CMD_QUERY_FIRMWARE_VER:
fmanzano_dtk 1:9e821e640117 1560 sprintf(fmu_buffer, "%s%s", TCA_ID_FIRMWARE_VERSION, firmware_version);
fmanzano_dtk 1:9e821e640117 1561 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1562 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1563 myPC_debug.printf("BLE - Consulta por Version de Firmware\r\n");
fmanzano_dtk 1:9e821e640117 1564 myPC_debug.printf("BLE - FW: %s\r\n", firmware_version);
fmanzano_dtk 1:9e821e640117 1565 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1566 #endif
fmanzano_dtk 1:9e821e640117 1567 break;
fmanzano_dtk 1:9e821e640117 1568
fmanzano_dtk 1:9e821e640117 1569 /** ********************************
fmanzano_dtk 1:9e821e640117 1570 * COMANDOS DE GEOCERCAS
fmanzano_dtk 1:9e821e640117 1571 * ******************************** */
fmanzano_dtk 1:9e821e640117 1572 case CMD_GEO_WARNING_ENABLE:
fmanzano_dtk 1:9e821e640117 1573 functionality_geo_warning = true;
fmanzano_dtk 9:46112570c850 1574 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1575 ep.write(eprom_AddressArray[EE_Address_GEOZONE], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1576 } else {
fmanzano_dtk 9:46112570c850 1577 EE_WriteVariable(VirtAddVarTab[AP_GEOZONE], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1578 }
fmanzano_dtk 1:9e821e640117 1579 sprintf(fmu_buffer, "%s", TCA_ID_GEO_WARNING_ENABLE);
fmanzano_dtk 1:9e821e640117 1580 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1581 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1582 myPC_debug.printf("BLE - Habilitar Notificacion de Geocercas Controladas\r\n");
fmanzano_dtk 1:9e821e640117 1583 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1584 #endif
fmanzano_dtk 1:9e821e640117 1585 break;
fmanzano_dtk 1:9e821e640117 1586
fmanzano_dtk 1:9e821e640117 1587 case CMD_GEO_WARNING_DISABLE:
fmanzano_dtk 1:9e821e640117 1588 functionality_geo_warning = false;
fmanzano_dtk 9:46112570c850 1589 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1590 ep.write(eprom_AddressArray[EE_Address_GEOZONE], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1591 } else {
fmanzano_dtk 9:46112570c850 1592 EE_WriteVariable(VirtAddVarTab[AP_GEOZONE], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1593 }
fmanzano_dtk 1:9e821e640117 1594 sprintf(fmu_buffer, "%s", TCA_ID_GEO_WARNING_DISABLE);
fmanzano_dtk 1:9e821e640117 1595 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1596 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1597 myPC_debug.printf("BLE - Deshabilitar Notificacion de Geocercas Controladas\r\n");
fmanzano_dtk 1:9e821e640117 1598 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1599 #endif
fmanzano_dtk 1:9e821e640117 1600 break;
fmanzano_dtk 1:9e821e640117 1601
fmanzano_dtk 1:9e821e640117 1602 case CMD_GEO_WARNING_QUERY:
fmanzano_dtk 1:9e821e640117 1603 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1604 myPC_debug.printf("BLE - Consulta por Notificacion de Geocercas Controladas\r\n");
fmanzano_dtk 1:9e821e640117 1605 myPC_debug.printf("BLE - Notificacion de Geocercas: %s\r\n", functionality_geo_warning?"TRUE":"FALSE");
fmanzano_dtk 1:9e821e640117 1606 #endif
fmanzano_dtk 1:9e821e640117 1607 if (functionality_geo_warning) {
fmanzano_dtk 1:9e821e640117 1608 sprintf(fmu_buffer, "%s", TCA_ID_GEO_WARNING_QUERY_ON);
fmanzano_dtk 1:9e821e640117 1609 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1610 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1611 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1612 #endif
fmanzano_dtk 1:9e821e640117 1613 } else {
fmanzano_dtk 1:9e821e640117 1614 sprintf(fmu_buffer, "%s", TCA_ID_GEO_WARNING_QUERY_OFF);
fmanzano_dtk 1:9e821e640117 1615 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1616 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1617 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1618 #endif
fmanzano_dtk 1:9e821e640117 1619 }
fmanzano_dtk 1:9e821e640117 1620 break;
fmanzano_dtk 1:9e821e640117 1621
fmanzano_dtk 1:9e821e640117 1622
fmanzano_dtk 1:9e821e640117 1623 /** ********************************
fmanzano_dtk 1:9e821e640117 1624 * COMANDOS DE AUTORESET BLUETOOTH
fmanzano_dtk 1:9e821e640117 1625 * ******************************** */
fmanzano_dtk 1:9e821e640117 1626 case CMD_BLE_AUTORESET_ENABLE:
fmanzano_dtk 1:9e821e640117 1627 functionality_ble_autoreset = true;
fmanzano_dtk 9:46112570c850 1628 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1629 ep.write(eprom_AddressArray[EE_Address_BLE_RESET], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1630 } else {
fmanzano_dtk 9:46112570c850 1631 EE_WriteVariable(VirtAddVarTab[AP_BLE_RESET], ((uint16_t) true));
fmanzano_dtk 9:46112570c850 1632 }
fmanzano_dtk 1:9e821e640117 1633 tick_autoreset_ble.detach();
fmanzano_dtk 1:9e821e640117 1634 tick_autoreset_ble.attach(&BLE_reset, time_ble_autoreset);
fmanzano_dtk 1:9e821e640117 1635 sprintf(fmu_buffer, "%s", TCA_ID_BLE_AUTORESET_ENA);
fmanzano_dtk 1:9e821e640117 1636 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1637 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1638 myPC_debug.printf("BLE - Habilitar Autoreset de Bluetooth\r\n");
fmanzano_dtk 1:9e821e640117 1639 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1640 #endif
fmanzano_dtk 1:9e821e640117 1641 break;
fmanzano_dtk 1:9e821e640117 1642
fmanzano_dtk 1:9e821e640117 1643 case CMD_BLE_AUTORESET_DISABLE:
fmanzano_dtk 1:9e821e640117 1644 functionality_ble_autoreset = false;
fmanzano_dtk 9:46112570c850 1645 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1646 ep.write(eprom_AddressArray[EE_Address_BLE_RESET], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1647 } else {
fmanzano_dtk 9:46112570c850 1648 EE_WriteVariable(VirtAddVarTab[AP_BLE_RESET], ((uint16_t) false));
fmanzano_dtk 9:46112570c850 1649 }
fmanzano_dtk 1:9e821e640117 1650 tick_autoreset_ble.detach();
fmanzano_dtk 1:9e821e640117 1651 sprintf(fmu_buffer, "%s", TCA_ID_BLE_AUTORESET_DIS);
fmanzano_dtk 1:9e821e640117 1652 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1653 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1654 myPC_debug.printf("BLE - Deshabilitar Autoreset de Bluetooth\r\n");
fmanzano_dtk 1:9e821e640117 1655 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1656 #endif
fmanzano_dtk 1:9e821e640117 1657 break;
fmanzano_dtk 1:9e821e640117 1658
fmanzano_dtk 1:9e821e640117 1659 case CMD_BLE_AUTORESET_TIME:
fmanzano_dtk 9:46112570c850 1660 if (external_eeprom) {
fmanzano_dtk 9:46112570c850 1661 ep.write(eprom_AddressArray[EE_Address_BLE_RESET_T], ((uint16_t) fingerprint_id));
fmanzano_dtk 9:46112570c850 1662 } else {
fmanzano_dtk 9:46112570c850 1663 EE_WriteVariable(VirtAddVarTab[AB_BLE_RESET_T], ((uint16_t) fingerprint_id));
fmanzano_dtk 9:46112570c850 1664 }
fmanzano_dtk 1:9e821e640117 1665 time_ble_autoreset = fingerprint_id * 1.0;
fmanzano_dtk 1:9e821e640117 1666 if (functionality_ble_autoreset) {
fmanzano_dtk 1:9e821e640117 1667 tick_autoreset_ble.detach();
fmanzano_dtk 1:9e821e640117 1668 tick_autoreset_ble.attach(&BLE_reset, time_ble_autoreset);
fmanzano_dtk 1:9e821e640117 1669 }
fmanzano_dtk 1:9e821e640117 1670 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1671 myPC_debug.printf("BLE - Cambio Temp. Autoreset de Bluetooth\n");
fmanzano_dtk 1:9e821e640117 1672 myPC_debug.printf("BLE - Nuevo Temp. para muestreo: %d seg\r\n", fingerprint_id);
fmanzano_dtk 1:9e821e640117 1673 #endif
fmanzano_dtk 1:9e821e640117 1674 break;
fmanzano_dtk 1:9e821e640117 1675
fmanzano_dtk 1:9e821e640117 1676 case CMD_BLE_AUTORESET_QUERY:
fmanzano_dtk 1:9e821e640117 1677 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1678 myPC_debug.printf("BLE - Consulta por Autoreset de Bluetooth\r\n");
fmanzano_dtk 1:9e821e640117 1679 myPC_debug.printf("BLE - Autoreset de Bluetooth: %s\r\n", functionality_ble_autoreset?"TRUE":"FALSE");
fmanzano_dtk 1:9e821e640117 1680 myPC_debug.printf("BLE - Tiempo Autoreset de Bluetooth: %.1f\r\n", time_ble_autoreset);
fmanzano_dtk 1:9e821e640117 1681
fmanzano_dtk 1:9e821e640117 1682 #endif
fmanzano_dtk 1:9e821e640117 1683 if (functionality_ble_autoreset) {
fmanzano_dtk 1:9e821e640117 1684 sprintf(fmu_buffer, "%s%.0f", TCA_ID_BLE_AUTORESET_qENA, time_ble_autoreset);
fmanzano_dtk 1:9e821e640117 1685 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1686 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1687 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1688 #endif
fmanzano_dtk 1:9e821e640117 1689 } else {
fmanzano_dtk 1:9e821e640117 1690 sprintf(fmu_buffer, "%s%.0f", TCA_ID_BLE_AUTORESET_qDIS, time_ble_autoreset);
fmanzano_dtk 1:9e821e640117 1691 tx_fmu130_message(fmu_buffer, &avl_uart);
fmanzano_dtk 1:9e821e640117 1692 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1693 myPC_debug.printf("%s\r\n", fmu_buffer);
fmanzano_dtk 1:9e821e640117 1694 #endif
fmanzano_dtk 1:9e821e640117 1695 }
fmanzano_dtk 1:9e821e640117 1696 break;
fmanzano_dtk 1:9e821e640117 1697
fmanzano_dtk 1:9e821e640117 1698 default:
fmanzano_dtk 1:9e821e640117 1699 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1700 myPC_debug.printf("BLE - Comando no identificado\r\n");
fmanzano_dtk 1:9e821e640117 1701 #endif
fmanzano_dtk 1:9e821e640117 1702 break;
fmanzano_dtk 1:9e821e640117 1703 }
fmanzano_dtk 1:9e821e640117 1704
fmanzano_dtk 1:9e821e640117 1705 } else {
fmanzano_dtk 1:9e821e640117 1706 // Error trama incompleta.
fmanzano_dtk 1:9e821e640117 1707 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1708 myPC_debug.printf("BLE - Trama incompleta\r\n");
fmanzano_dtk 1:9e821e640117 1709 #endif
fmanzano_dtk 1:9e821e640117 1710 }
fmanzano_dtk 1:9e821e640117 1711 /* DESHABILITADA LA FUNCIÓN DE SLEEP EN EL LECTOR
fmanzano_dtk 1:9e821e640117 1712 fingerprint.Sleep();
fmanzano_dtk 1:9e821e640117 1713 flag_fingerprint_Sleep = true;
fmanzano_dtk 1:9e821e640117 1714 myPC_debug.printf("BLE - GT521Fx@Sleep\r\n");
fmanzano_dtk 1:9e821e640117 1715 */
fmanzano_dtk 1:9e821e640117 1716 break;
fmanzano_dtk 1:9e821e640117 1717
fmanzano_dtk 1:9e821e640117 1718 default:
fmanzano_dtk 1:9e821e640117 1719 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1720 myPC_debug.printf("BLE - Trama no identificada\r\n");
fmanzano_dtk 1:9e821e640117 1721 myPC_debug.printf("BLE PAYLOAD:\r\n%s\r\n", fmu130_payload);
fmanzano_dtk 1:9e821e640117 1722 #endif
fmanzano_dtk 1:9e821e640117 1723 break;
fmanzano_dtk 1:9e821e640117 1724 }
fmanzano_dtk 1:9e821e640117 1725 } else {
fmanzano_dtk 1:9e821e640117 1726 #ifdef DEBUG_FMU130_CPP
fmanzano_dtk 1:9e821e640117 1727 myPC_debug.printf("BLE - Sin bytes recibidos\r\n");
fmanzano_dtk 1:9e821e640117 1728 #endif
fmanzano_dtk 1:9e821e640117 1729 }
fmanzano_dtk 1:9e821e640117 1730 }