Proyecto ABInBev para la tarjeta Guaria 1/2.

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

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fmanzano_dtk 5:07720e3f99d2 1 /**
fmanzano_dtk 5:07720e3f99d2 2 * @file flash_ee_exe.cpp
fmanzano_dtk 5:07720e3f99d2 3 * @author Felícito Manzano (felicito.manzano@detektor.com.sv)
fmanzano_dtk 5:07720e3f99d2 4 * @brief
fmanzano_dtk 5:07720e3f99d2 5 * @version 0.1
fmanzano_dtk 5:07720e3f99d2 6 * @date 2022-07-04
fmanzano_dtk 5:07720e3f99d2 7 *
fmanzano_dtk 5:07720e3f99d2 8 * @copyright Copyright (c) 2022
fmanzano_dtk 5:07720e3f99d2 9 *
fmanzano_dtk 5:07720e3f99d2 10 */
fmanzano_dtk 5:07720e3f99d2 11
fmanzano_dtk 5:07720e3f99d2 12
fmanzano_dtk 5:07720e3f99d2 13 #include "mbed.h"
fmanzano_dtk 5:07720e3f99d2 14 #include "flash_ee_exe.hpp"
fmanzano_dtk 5:07720e3f99d2 15 #include "flash_eeprom.h"
fmanzano_dtk 5:07720e3f99d2 16 #include "USBSerial.h"
fmanzano_dtk 5:07720e3f99d2 17 #include <ctype.h>
fmanzano_dtk 5:07720e3f99d2 18
fmanzano_dtk 5:07720e3f99d2 19 /** * INTERFACES * **/
fmanzano_dtk 5:07720e3f99d2 20 extern USBSerial myPC_debug;
fmanzano_dtk 5:07720e3f99d2 21 extern DigitalOut flashLED;
fmanzano_dtk 5:07720e3f99d2 22
fmanzano_dtk 5:07720e3f99d2 23 /** * VARIABLES * **/
fmanzano_dtk 5:07720e3f99d2 24 // Manejo de EEPROM FLASH
fmanzano_dtk 5:07720e3f99d2 25 extern uint16_t VirtAddVarTab[];
fmanzano_dtk 5:07720e3f99d2 26 extern uint16_t VarDataTab[];
fmanzano_dtk 5:07720e3f99d2 27
fmanzano_dtk 5:07720e3f99d2 28 // Lector de Huellas
fmanzano_dtk 5:07720e3f99d2 29 extern bool fingerprint_enable;
fmanzano_dtk 5:07720e3f99d2 30 extern bool fingerprint_remotly_disable;
fmanzano_dtk 5:07720e3f99d2 31 extern bool fingerprint_override;
fmanzano_dtk 5:07720e3f99d2 32 extern int fp_override_limit; // 4 intentos
fmanzano_dtk 5:07720e3f99d2 33
fmanzano_dtk 5:07720e3f99d2 34 // Ralentí
fmanzano_dtk 5:07720e3f99d2 35 extern bool enable_idle_shutdown;
fmanzano_dtk 5:07720e3f99d2 36 extern bool enable_idle_reminder;
fmanzano_dtk 5:07720e3f99d2 37 extern float wait_idle_shutdown; //600.0 segundos
fmanzano_dtk 5:07720e3f99d2 38 extern float wait_idle_reminder; // 180.0 segundos
fmanzano_dtk 5:07720e3f99d2 39
fmanzano_dtk 5:07720e3f99d2 40 // Cinturones
fmanzano_dtk 5:07720e3f99d2 41 extern bool enable_seatbelt_reading;
fmanzano_dtk 5:07720e3f99d2 42 extern bool enable_force_seatbelt_buclke;
fmanzano_dtk 5:07720e3f99d2 43 extern bool pilot_buckle_type;
fmanzano_dtk 5:07720e3f99d2 44 extern int pilot_buckleUp;
fmanzano_dtk 5:07720e3f99d2 45 extern int pilot_unfasten;
fmanzano_dtk 5:07720e3f99d2 46 extern bool copilot_buckle_type;
fmanzano_dtk 5:07720e3f99d2 47 extern int copilot_buckleUp;
fmanzano_dtk 5:07720e3f99d2 48 extern int copilot_unfasten;
fmanzano_dtk 5:07720e3f99d2 49 extern bool crew_buckle_type;
fmanzano_dtk 5:07720e3f99d2 50 extern int crew_buckleUp;
fmanzano_dtk 5:07720e3f99d2 51 extern int crew_unfasten;
fmanzano_dtk 5:07720e3f99d2 52
fmanzano_dtk 5:07720e3f99d2 53 // Sensor de Lluvia
fmanzano_dtk 5:07720e3f99d2 54 extern bool enable_rain_sensor;
fmanzano_dtk 5:07720e3f99d2 55 extern bool enable_rain_silent_mode;
fmanzano_dtk 5:07720e3f99d2 56 extern float time_sample_rain; // 6.0 segundos
fmanzano_dtk 5:07720e3f99d2 57
fmanzano_dtk 5:07720e3f99d2 58 // Limites de Velocidad en Mojado y seco
fmanzano_dtk 5:07720e3f99d2 59 extern int wet_Speed_Warning; // 50 Km/h
fmanzano_dtk 5:07720e3f99d2 60 extern int wet_Speed_Limit; // 55 Km/h
fmanzano_dtk 5:07720e3f99d2 61 extern int dry_Speed_Warning; // 70 Km/h
fmanzano_dtk 5:07720e3f99d2 62 extern int dry_Speed_Limit; // 80 Km/h
fmanzano_dtk 5:07720e3f99d2 63
fmanzano_dtk 5:07720e3f99d2 64 // Tip de Seguridad y Geocercas
fmanzano_dtk 5:07720e3f99d2 65 extern bool enable_geo_warning;
fmanzano_dtk 5:07720e3f99d2 66 extern bool enable_safety_tip;
fmanzano_dtk 5:07720e3f99d2 67 extern float time_safety_tip; // 900.0 segundos
fmanzano_dtk 5:07720e3f99d2 68
fmanzano_dtk 5:07720e3f99d2 69 // Volumen de Parlante
fmanzano_dtk 5:07720e3f99d2 70 extern int temp_JQ8400_Volume; // 4 HIGH
fmanzano_dtk 5:07720e3f99d2 71
fmanzano_dtk 5:07720e3f99d2 72 // Autoreset de BLE
fmanzano_dtk 5:07720e3f99d2 73 extern bool enable_ble_autoreset;
fmanzano_dtk 5:07720e3f99d2 74 extern float time_ble_autoreset;
fmanzano_dtk 5:07720e3f99d2 75
fmanzano_dtk 5:07720e3f99d2 76 #define DEBUG_FLASH_EE_CPP 1
fmanzano_dtk 5:07720e3f99d2 77
fmanzano_dtk 5:07720e3f99d2 78 /**
fmanzano_dtk 5:07720e3f99d2 79 * @brief
fmanzano_dtk 5:07720e3f99d2 80 * Esta función inicializa la EEPROM. Después ejecuta un lazo a lo largo
fmanzano_dtk 5:07720e3f99d2 81 * de las direcciones predefinidas como EEPROM y carga en un arreglo su
fmanzano_dtk 5:07720e3f99d2 82 * valor.
fmanzano_dtk 5:07720e3f99d2 83 *
fmanzano_dtk 5:07720e3f99d2 84 */
fmanzano_dtk 5:07720e3f99d2 85 void readFlash_Booting() {
fmanzano_dtk 5:07720e3f99d2 86 #ifdef DEBUG_FLASH_EE_CPP
fmanzano_dtk 5:07720e3f99d2 87 myPC_debug.printf("\r\n FLASH - Leyendo datos de memoria...");
fmanzano_dtk 5:07720e3f99d2 88 #endif
fmanzano_dtk 5:07720e3f99d2 89 // Variable local
fmanzano_dtk 5:07720e3f99d2 90 int i;
fmanzano_dtk 5:07720e3f99d2 91
fmanzano_dtk 5:07720e3f99d2 92 // Leer todas las variables de Flash
fmanzano_dtk 5:07720e3f99d2 93 for(i = 0; i < NB_OF_VAR; i++) {
fmanzano_dtk 5:07720e3f99d2 94 EE_ReadVariable(VirtAddVarTab[i], &VarDataTab[i]);
fmanzano_dtk 5:07720e3f99d2 95 }
fmanzano_dtk 5:07720e3f99d2 96 }
fmanzano_dtk 5:07720e3f99d2 97
fmanzano_dtk 5:07720e3f99d2 98 /**
fmanzano_dtk 5:07720e3f99d2 99 * @brief
fmanzano_dtk 5:07720e3f99d2 100 *
fmanzano_dtk 5:07720e3f99d2 101 */
fmanzano_dtk 5:07720e3f99d2 102 void load_2_Var() {
fmanzano_dtk 5:07720e3f99d2 103 #ifdef DEBUG_FLASH_EE_CPP
fmanzano_dtk 5:07720e3f99d2 104 myPC_debug.printf("\r\n FLASH - Cargando datos en Variables...");
fmanzano_dtk 5:07720e3f99d2 105 #endif
fmanzano_dtk 5:07720e3f99d2 106 // Lector de Huellas
fmanzano_dtk 5:07720e3f99d2 107 fingerprint_enable = (bool) VarDataTab[AP_FINGERPRINT];
fmanzano_dtk 5:07720e3f99d2 108 fingerprint_remotly_disable = (bool) VarDataTab[AP_FINGERPRINT_RE];
fmanzano_dtk 5:07720e3f99d2 109 fingerprint_override = (bool) VarDataTab[AP_OVERRIDE_FP];
fmanzano_dtk 5:07720e3f99d2 110 fp_override_limit = (int) VarDataTab[AP_OVERRIDE_QT];
fmanzano_dtk 5:07720e3f99d2 111
fmanzano_dtk 5:07720e3f99d2 112
fmanzano_dtk 5:07720e3f99d2 113 // Ralentí
fmanzano_dtk 5:07720e3f99d2 114 enable_idle_shutdown = (bool) VarDataTab[AP_IDLE_SHUTDOWN];
fmanzano_dtk 5:07720e3f99d2 115 enable_idle_reminder = (bool) VarDataTab[AP_IDLE_REMINDER];
fmanzano_dtk 5:07720e3f99d2 116 wait_idle_shutdown = ((int) VarDataTab[AP_IDLE_S_TIME]) * 1.0;
fmanzano_dtk 5:07720e3f99d2 117 wait_idle_reminder = ((int) VarDataTab[AP_IDLE_R_TIME]) * 1.0;
fmanzano_dtk 5:07720e3f99d2 118
fmanzano_dtk 5:07720e3f99d2 119 // Cinturones
fmanzano_dtk 5:07720e3f99d2 120 enable_seatbelt_reading = (bool) VarDataTab[AP_SEATBELT_READ];
fmanzano_dtk 5:07720e3f99d2 121 enable_force_seatbelt_buclke = (bool) VarDataTab[AP_ENFORCE_SB];
fmanzano_dtk 5:07720e3f99d2 122 pilot_buckle_type = (bool) VarDataTab[AP_PILOT_BTYPE];
fmanzano_dtk 5:07720e3f99d2 123 copilot_buckle_type = (bool) VarDataTab[AP_COPILOT_BTYPE];
fmanzano_dtk 5:07720e3f99d2 124 crew_buckle_type = (bool) VarDataTab[AP_CREW_BTYPE];
fmanzano_dtk 5:07720e3f99d2 125
fmanzano_dtk 5:07720e3f99d2 126 // Pilot Seatbelt Buckle Type Definition
fmanzano_dtk 5:07720e3f99d2 127 if (pilot_buckle_type) { // N.O. - Honduras
fmanzano_dtk 5:07720e3f99d2 128 pilot_buckleUp = 1;
fmanzano_dtk 5:07720e3f99d2 129 pilot_unfasten = -1;
fmanzano_dtk 5:07720e3f99d2 130 } else { // N.C. - Panamá
fmanzano_dtk 5:07720e3f99d2 131 pilot_buckleUp = -1;
fmanzano_dtk 5:07720e3f99d2 132 pilot_unfasten = 1;
fmanzano_dtk 5:07720e3f99d2 133 }
fmanzano_dtk 5:07720e3f99d2 134
fmanzano_dtk 5:07720e3f99d2 135 // Copilot Seatbelt Buckle Type Definition
fmanzano_dtk 5:07720e3f99d2 136 if (copilot_buckle_type) { // N.O. - Honduras
fmanzano_dtk 5:07720e3f99d2 137 copilot_buckleUp = 1;
fmanzano_dtk 5:07720e3f99d2 138 copilot_unfasten = -1;
fmanzano_dtk 5:07720e3f99d2 139 } else { // N.C. - Panamá
fmanzano_dtk 5:07720e3f99d2 140 copilot_buckleUp = -1;
fmanzano_dtk 5:07720e3f99d2 141 copilot_unfasten = 1;
fmanzano_dtk 5:07720e3f99d2 142 }
fmanzano_dtk 5:07720e3f99d2 143
fmanzano_dtk 5:07720e3f99d2 144 // Crew Seatbelt Buckle Type Definition
fmanzano_dtk 5:07720e3f99d2 145 if (crew_buckle_type) { // N.O. - Honduras
fmanzano_dtk 5:07720e3f99d2 146 crew_buckleUp = 1;
fmanzano_dtk 5:07720e3f99d2 147 crew_unfasten = -1;
fmanzano_dtk 5:07720e3f99d2 148 } else { // N.C. - Panamá
fmanzano_dtk 5:07720e3f99d2 149 crew_buckleUp = -1;
fmanzano_dtk 5:07720e3f99d2 150 crew_unfasten = 1;
fmanzano_dtk 5:07720e3f99d2 151 }
fmanzano_dtk 5:07720e3f99d2 152
fmanzano_dtk 5:07720e3f99d2 153 // Sensor de Lluvia
fmanzano_dtk 5:07720e3f99d2 154 enable_rain_sensor = (bool) VarDataTab[AP_RAINSENSOR];
fmanzano_dtk 5:07720e3f99d2 155 enable_rain_silent_mode = (bool) VarDataTab[AP_RS_SILENTMODE];
fmanzano_dtk 5:07720e3f99d2 156 time_sample_rain = ((int) VarDataTab[AP_RS_SAMPLE_T]) * 1.0;;
fmanzano_dtk 5:07720e3f99d2 157
fmanzano_dtk 5:07720e3f99d2 158 // Limites de Velocidad en Mojado y seco
fmanzano_dtk 5:07720e3f99d2 159 wet_Speed_Warning = (int) VarDataTab[AP_WET_WARNING];
fmanzano_dtk 5:07720e3f99d2 160 wet_Speed_Limit = (int) VarDataTab[AP_WET_LIMIT];
fmanzano_dtk 5:07720e3f99d2 161 dry_Speed_Warning = (int) VarDataTab[AP_DRY_WARNING];
fmanzano_dtk 5:07720e3f99d2 162 dry_Speed_Limit = (int) VarDataTab[AP_DRY_LIMIT];
fmanzano_dtk 5:07720e3f99d2 163
fmanzano_dtk 5:07720e3f99d2 164 // Tip de Seguridad y Geocercas
fmanzano_dtk 5:07720e3f99d2 165 enable_safety_tip = (bool) VarDataTab[AP_SAFETY_TIP];
fmanzano_dtk 5:07720e3f99d2 166 time_safety_tip = ((int) VarDataTab[AP_SAFETY_TIP_T]) * 1.0; // 900.0 segundos
fmanzano_dtk 5:07720e3f99d2 167 enable_geo_warning = (bool) VarDataTab[AP_GEOZONE];
fmanzano_dtk 5:07720e3f99d2 168
fmanzano_dtk 5:07720e3f99d2 169 // Volumen de Parlante
fmanzano_dtk 5:07720e3f99d2 170 temp_JQ8400_Volume = (int) VarDataTab[AP_VOLUME];
fmanzano_dtk 5:07720e3f99d2 171
fmanzano_dtk 5:07720e3f99d2 172 // Autoreset BLE
fmanzano_dtk 5:07720e3f99d2 173 enable_ble_autoreset = (bool) VarDataTab[AP_BLE_RESET];
fmanzano_dtk 5:07720e3f99d2 174 time_ble_autoreset = ((int) VarDataTab[AB_BLE_RESET_T]) * 1.0;
fmanzano_dtk 5:07720e3f99d2 175
fmanzano_dtk 5:07720e3f99d2 176
fmanzano_dtk 5:07720e3f99d2 177 #ifdef DEBUG_FLASH_EE_CPP
fmanzano_dtk 5:07720e3f99d2 178 myPC_debug.printf("\r\n FLASH - Completado!");
fmanzano_dtk 5:07720e3f99d2 179 myPC_debug.printf("\r\n FLASH - Valores cargados:");
fmanzano_dtk 5:07720e3f99d2 180 myPC_debug.printf("\r\n Lector de Huellas: %s", fingerprint_enable?"TRUE":"FALSE");
fmanzano_dtk 5:07720e3f99d2 181 myPC_debug.printf("\r\n Lector de Huellas Deshabilitado Remoto: %s", fingerprint_enable?"TRUE":"FALSE");
fmanzano_dtk 5:07720e3f99d2 182 myPC_debug.printf("\r\n Anulacion de Lector: %s", fingerprint_override?"TRUE":"FALSE");
fmanzano_dtk 5:07720e3f99d2 183 myPC_debug.printf("\r\n Cantidad para Anulacion: %d\r\n", fp_override_limit);
fmanzano_dtk 5:07720e3f99d2 184 myPC_debug.printf("\r\n Apagado por Ralenti: %s", enable_idle_shutdown?"TRUE":"FALSE");
fmanzano_dtk 5:07720e3f99d2 185 myPC_debug.printf("\r\n Recordatorio de Ralenti: %s", enable_idle_reminder?"TRUE":"FALSE");
fmanzano_dtk 5:07720e3f99d2 186 myPC_debug.printf("\r\n Tiempo Apagado por Ralenti: %.1f", wait_idle_shutdown);
fmanzano_dtk 5:07720e3f99d2 187 myPC_debug.printf("\r\n Tiempo Recordatorio de Ralenti: %.1f\r\n", wait_idle_reminder);
fmanzano_dtk 5:07720e3f99d2 188 myPC_debug.printf("\r\n Lectura de Cinturones: %s", enable_seatbelt_reading?"TRUE":"FALSE");
fmanzano_dtk 5:07720e3f99d2 189 myPC_debug.printf("\r\n Forzar Conductor Abrochado: %s\r\n", enable_force_seatbelt_buclke?"TRUE":"FALSE");
fmanzano_dtk 5:07720e3f99d2 190 myPC_debug.printf("\r\n Tipo de Hebilla Piloto: %s", pilot_buckle_type?"N. OPEN":"N. CLOSE");
fmanzano_dtk 5:07720e3f99d2 191 myPC_debug.printf("\r\n Tipo de Hebilla Copiloto: %s", copilot_buckle_type?"N. OPEN":"N. CLOSE");
fmanzano_dtk 5:07720e3f99d2 192 myPC_debug.printf("\r\n Tipo de Hebilla Tripulante: %s", crew_buckle_type?"N. OPEN":"N. CLOSE");
fmanzano_dtk 5:07720e3f99d2 193 myPC_debug.printf("\r\n Sensor de Lluvia: %s", enable_rain_sensor?"TRUE":"FALSE");
fmanzano_dtk 5:07720e3f99d2 194 myPC_debug.printf("\r\n Modo Silencioso de Lluvia: %s", enable_rain_silent_mode?"TRUE":"FALSE");
fmanzano_dtk 5:07720e3f99d2 195 myPC_debug.printf("\r\n Temporizador para Lluvia: %.1f\r\n", time_sample_rain);
fmanzano_dtk 5:07720e3f99d2 196 myPC_debug.printf("\r\n Advertencia Mojado: %d", wet_Speed_Warning);
fmanzano_dtk 5:07720e3f99d2 197 myPC_debug.printf("\r\n Limite Mojado: %d", wet_Speed_Limit);
fmanzano_dtk 5:07720e3f99d2 198 myPC_debug.printf("\r\n Advertencia Seco: %d", dry_Speed_Warning);
fmanzano_dtk 5:07720e3f99d2 199 myPC_debug.printf("\r\n Limite Seco: %d\r\n", dry_Speed_Limit);
fmanzano_dtk 5:07720e3f99d2 200 myPC_debug.printf("\r\n Notificacion Geocerca: %s", enable_geo_warning?"TRUE":"FALSE");
fmanzano_dtk 5:07720e3f99d2 201 myPC_debug.printf("\r\n Tip de Seguridad: %s", enable_safety_tip?"TRUE":"FALSE");
fmanzano_dtk 5:07720e3f99d2 202 myPC_debug.printf("\r\n Tiempo entre Tip de Seguridad: %.1f\r\n", time_safety_tip);
fmanzano_dtk 5:07720e3f99d2 203 myPC_debug.printf("\r\n Volumen Parlante: %d\r\n", temp_JQ8400_Volume);
fmanzano_dtk 5:07720e3f99d2 204 myPC_debug.printf("\r\n BLE Autoreset: %s", enable_ble_autoreset?"TRUE":"FALSE");
fmanzano_dtk 5:07720e3f99d2 205 myPC_debug.printf("\r\n BLE Temporizador: %.1f\r\n\r\n", time_ble_autoreset);
fmanzano_dtk 5:07720e3f99d2 206 #endif
fmanzano_dtk 5:07720e3f99d2 207 }
fmanzano_dtk 5:07720e3f99d2 208
fmanzano_dtk 5:07720e3f99d2 209 void flash_Booting() {
fmanzano_dtk 5:07720e3f99d2 210 HAL_FLASH_Unlock();
fmanzano_dtk 5:07720e3f99d2 211 EE_Init();
fmanzano_dtk 5:07720e3f99d2 212 readFlash_Booting();
fmanzano_dtk 5:07720e3f99d2 213 load_2_Var();
fmanzano_dtk 5:07720e3f99d2 214 }
fmanzano_dtk 5:07720e3f99d2 215
fmanzano_dtk 5:07720e3f99d2 216 void flash_Default() {
fmanzano_dtk 5:07720e3f99d2 217 // Desbloquear Flash para Escritura
fmanzano_dtk 5:07720e3f99d2 218 #ifdef DEBUG_FLASH_EE_CPP
fmanzano_dtk 5:07720e3f99d2 219 myPC_debug.printf("\r\n FLASH - Cargando valores por defecto");
fmanzano_dtk 5:07720e3f99d2 220 #endif
fmanzano_dtk 5:07720e3f99d2 221 #define SEATBELT_CONFIG 7
fmanzano_dtk 5:07720e3f99d2 222 EE_WriteVariable(VirtAddVarTab[AP_FINGERPRINT], ((uint16_t) true)); // Fingerprint Enable
fmanzano_dtk 5:07720e3f99d2 223 EE_WriteVariable(VirtAddVarTab[AP_OVERRIDE_FP], ((uint16_t) true)); // Override Fingerprint Authentication
fmanzano_dtk 5:07720e3f99d2 224 EE_WriteVariable(VirtAddVarTab[AP_OVERRIDE_QT], ((uint16_t) 4)); // Override Fingerprint Quantity
fmanzano_dtk 5:07720e3f99d2 225 EE_WriteVariable(VirtAddVarTab[AP_IDLE_SHUTDOWN], ((uint16_t) false)); // Idle Shutdown Enable
fmanzano_dtk 5:07720e3f99d2 226 EE_WriteVariable(VirtAddVarTab[AP_IDLE_REMINDER], ((uint16_t) true)); // Idle Shutdown Reminder
fmanzano_dtk 10:a0005a4116ae 227 EE_WriteVariable(VirtAddVarTab[AP_IDLE_S_TIME], ((uint16_t) 600)); // Idle Shutdown Cutoff Time
fmanzano_dtk 5:07720e3f99d2 228 EE_WriteVariable(VirtAddVarTab[AP_IDLE_R_TIME], ((uint16_t) 180)); // Idle Shutdown Reminder Time
fmanzano_dtk 5:07720e3f99d2 229 EE_WriteVariable(VirtAddVarTab[AP_SEATBELT_READ], ((uint16_t) true)); // Seatbelt reading Enable
fmanzano_dtk 5:07720e3f99d2 230 EE_WriteVariable(VirtAddVarTab[AP_ENFORCE_SB], ((uint16_t) true)); // Force Driver Buckleup
fmanzano_dtk 5:07720e3f99d2 231 #if (SEATBELT_CONFIG == 0)
fmanzano_dtk 5:07720e3f99d2 232 EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 233 EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 234 EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 235 #elif (SEATBELT_CONFIG == 1)
fmanzano_dtk 5:07720e3f99d2 236 EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 237 EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 238 EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 239 #elif (SEATBELT_CONFIG == 2)
fmanzano_dtk 5:07720e3f99d2 240 EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 241 EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 242 EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 243 #elif (SEATBELT_CONFIG == 3)
fmanzano_dtk 5:07720e3f99d2 244 EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 245 EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 246 EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 247 #elif (SEATBELT_CONFIG == 4)
fmanzano_dtk 5:07720e3f99d2 248 EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 249 EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 250 EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 251 #elif (SEATBELT_CONFIG == 5)
fmanzano_dtk 5:07720e3f99d2 252 EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 253 EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 254 EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 255 #elif (SEATBELT_CONFIG == 6)
fmanzano_dtk 5:07720e3f99d2 256 EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 257 EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 258 EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 259 #elif (SEATBELT_CONFIG == 7)
fmanzano_dtk 5:07720e3f99d2 260 EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 261 EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 262 EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN)
fmanzano_dtk 5:07720e3f99d2 263 #endif
fmanzano_dtk 5:07720e3f99d2 264 EE_WriteVariable(VirtAddVarTab[AP_RAINSENSOR], ((uint16_t) true)); // Rain Sensor Enable
fmanzano_dtk 10:a0005a4116ae 265 EE_WriteVariable(VirtAddVarTab[AP_RS_SILENTMODE], ((uint16_t) false)); // Silent mode Rain Sensor
fmanzano_dtk 5:07720e3f99d2 266 EE_WriteVariable(VirtAddVarTab[AP_RS_SAMPLE_T], ((uint16_t) 6)); // Sample Time Rain Sensor
fmanzano_dtk 5:07720e3f99d2 267 EE_WriteVariable(VirtAddVarTab[AP_WET_LIMIT], ((uint16_t) 55)); // Wet Speed Limit
fmanzano_dtk 5:07720e3f99d2 268 EE_WriteVariable(VirtAddVarTab[AP_WET_WARNING], ((uint16_t) 50)); // Wet Speed Warning
fmanzano_dtk 5:07720e3f99d2 269 EE_WriteVariable(VirtAddVarTab[AP_DRY_LIMIT], ((uint16_t) 80)); // Dry Speed Limit
fmanzano_dtk 5:07720e3f99d2 270 EE_WriteVariable(VirtAddVarTab[AP_DRY_WARNING], ((uint16_t) 70)); // Dry Speed Warning
fmanzano_dtk 10:a0005a4116ae 271 EE_WriteVariable(VirtAddVarTab[AP_SAFETY_TIP], ((uint16_t) true)); // Enable Safety Tip
fmanzano_dtk 10:a0005a4116ae 272 EE_WriteVariable(VirtAddVarTab[AP_SAFETY_TIP_T], ((uint16_t) 1800)); // Time for Safety Tip
fmanzano_dtk 5:07720e3f99d2 273 EE_WriteVariable(VirtAddVarTab[AP_GEOZONE], ((uint16_t) false)); // Geozone alert
fmanzano_dtk 10:a0005a4116ae 274 EE_WriteVariable(VirtAddVarTab[AP_VOLUME], ((uint16_t) 5)); // Volume Level 6=Maximum
fmanzano_dtk 5:07720e3f99d2 275 EE_WriteVariable(VirtAddVarTab[AP_BLE_RESET], ((uint16_t) true)); // BLE Autoreset
fmanzano_dtk 5:07720e3f99d2 276 EE_WriteVariable(VirtAddVarTab[AB_BLE_RESET_T], ((uint16_t) 3600)); // BLE Autoreset Time
fmanzano_dtk 5:07720e3f99d2 277 EE_WriteVariable(VirtAddVarTab[AP_FINGERPRINT_RE], ((uint16_t) false)); // Fingerprint Enable
fmanzano_dtk 5:07720e3f99d2 278
fmanzano_dtk 5:07720e3f99d2 279
fmanzano_dtk 5:07720e3f99d2 280 // LED
fmanzano_dtk 5:07720e3f99d2 281 flashLED = 1;
fmanzano_dtk 5:07720e3f99d2 282 wait_ms(3750);
fmanzano_dtk 5:07720e3f99d2 283 flashLED = 0;
fmanzano_dtk 5:07720e3f99d2 284 #ifdef DEBUG_FLASH_EE_CPP
fmanzano_dtk 5:07720e3f99d2 285 myPC_debug.printf("\r\n FLASH - Completado!");
fmanzano_dtk 5:07720e3f99d2 286 #endif
fmanzano_dtk 5:07720e3f99d2 287
fmanzano_dtk 5:07720e3f99d2 288 }
fmanzano_dtk 5:07720e3f99d2 289
fmanzano_dtk 5:07720e3f99d2 290 void writeFlash(int myAddress, int myValue) {
fmanzano_dtk 5:07720e3f99d2 291 // Desbloquear Flash para Escritura
fmanzano_dtk 5:07720e3f99d2 292 EE_WriteVariable(VirtAddVarTab[myAddress], ((uint16_t) myValue));
fmanzano_dtk 5:07720e3f99d2 293 }