Felícito Manzano
/
DTK_Guaria2_ABInBev
Proyecto ABInBev para la tarjeta Guaria 1/2.
Program/flash_ee_exe.cpp@18:522f706f03b1, 2022-07-07 (annotated)
- Committer:
- fmanzano_dtk
- Date:
- Thu Jul 07 08:56:13 2022 -0600
- Revision:
- 18:522f706f03b1
- Parent:
- 10:a0005a4116ae
- Child:
- 19:5580a9a54ad5
Actualizacion
Who changed what in which revision?
User | Revision | Line number | New 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 | /** |
fmanzano_dtk | 5:07720e3f99d2 | 100 | * @brief |
fmanzano_dtk | 5:07720e3f99d2 | 101 | * |
fmanzano_dtk | 5:07720e3f99d2 | 102 | */ |
fmanzano_dtk | 5:07720e3f99d2 | 103 | void load_2_Var() { |
fmanzano_dtk | 5:07720e3f99d2 | 104 | #ifdef DEBUG_FLASH_EE_CPP |
fmanzano_dtk | 5:07720e3f99d2 | 105 | myPC_debug.printf("\r\n FLASH - Cargando datos en Variables..."); |
fmanzano_dtk | 5:07720e3f99d2 | 106 | #endif |
fmanzano_dtk | 5:07720e3f99d2 | 107 | // Lector de Huellas |
fmanzano_dtk | 5:07720e3f99d2 | 108 | fingerprint_enable = (bool) VarDataTab[AP_FINGERPRINT]; |
fmanzano_dtk | 5:07720e3f99d2 | 109 | fingerprint_remotly_disable = (bool) VarDataTab[AP_FINGERPRINT_RE]; |
fmanzano_dtk | 5:07720e3f99d2 | 110 | fingerprint_override = (bool) VarDataTab[AP_OVERRIDE_FP]; |
fmanzano_dtk | 5:07720e3f99d2 | 111 | fp_override_limit = (int) VarDataTab[AP_OVERRIDE_QT]; |
fmanzano_dtk | 5:07720e3f99d2 | 112 | |
fmanzano_dtk | 5:07720e3f99d2 | 113 | |
fmanzano_dtk | 5:07720e3f99d2 | 114 | // Ralentí |
fmanzano_dtk | 5:07720e3f99d2 | 115 | enable_idle_shutdown = (bool) VarDataTab[AP_IDLE_SHUTDOWN]; |
fmanzano_dtk | 5:07720e3f99d2 | 116 | enable_idle_reminder = (bool) VarDataTab[AP_IDLE_REMINDER]; |
fmanzano_dtk | 5:07720e3f99d2 | 117 | wait_idle_shutdown = ((int) VarDataTab[AP_IDLE_S_TIME]) * 1.0; |
fmanzano_dtk | 5:07720e3f99d2 | 118 | wait_idle_reminder = ((int) VarDataTab[AP_IDLE_R_TIME]) * 1.0; |
fmanzano_dtk | 5:07720e3f99d2 | 119 | |
fmanzano_dtk | 5:07720e3f99d2 | 120 | // Cinturones |
fmanzano_dtk | 5:07720e3f99d2 | 121 | enable_seatbelt_reading = (bool) VarDataTab[AP_SEATBELT_READ]; |
fmanzano_dtk | 5:07720e3f99d2 | 122 | enable_force_seatbelt_buclke = (bool) VarDataTab[AP_ENFORCE_SB]; |
fmanzano_dtk | 5:07720e3f99d2 | 123 | pilot_buckle_type = (bool) VarDataTab[AP_PILOT_BTYPE]; |
fmanzano_dtk | 5:07720e3f99d2 | 124 | copilot_buckle_type = (bool) VarDataTab[AP_COPILOT_BTYPE]; |
fmanzano_dtk | 5:07720e3f99d2 | 125 | crew_buckle_type = (bool) VarDataTab[AP_CREW_BTYPE]; |
fmanzano_dtk | 5:07720e3f99d2 | 126 | |
fmanzano_dtk | 5:07720e3f99d2 | 127 | // Pilot Seatbelt Buckle Type Definition |
fmanzano_dtk | 5:07720e3f99d2 | 128 | if (pilot_buckle_type) { // N.O. - Honduras |
fmanzano_dtk | 5:07720e3f99d2 | 129 | pilot_buckleUp = 1; |
fmanzano_dtk | 5:07720e3f99d2 | 130 | pilot_unfasten = -1; |
fmanzano_dtk | 5:07720e3f99d2 | 131 | } else { // N.C. - Panamá |
fmanzano_dtk | 5:07720e3f99d2 | 132 | pilot_buckleUp = -1; |
fmanzano_dtk | 5:07720e3f99d2 | 133 | pilot_unfasten = 1; |
fmanzano_dtk | 5:07720e3f99d2 | 134 | } |
fmanzano_dtk | 5:07720e3f99d2 | 135 | |
fmanzano_dtk | 5:07720e3f99d2 | 136 | // Copilot Seatbelt Buckle Type Definition |
fmanzano_dtk | 5:07720e3f99d2 | 137 | if (copilot_buckle_type) { // N.O. - Honduras |
fmanzano_dtk | 5:07720e3f99d2 | 138 | copilot_buckleUp = 1; |
fmanzano_dtk | 5:07720e3f99d2 | 139 | copilot_unfasten = -1; |
fmanzano_dtk | 5:07720e3f99d2 | 140 | } else { // N.C. - Panamá |
fmanzano_dtk | 5:07720e3f99d2 | 141 | copilot_buckleUp = -1; |
fmanzano_dtk | 5:07720e3f99d2 | 142 | copilot_unfasten = 1; |
fmanzano_dtk | 5:07720e3f99d2 | 143 | } |
fmanzano_dtk | 5:07720e3f99d2 | 144 | |
fmanzano_dtk | 5:07720e3f99d2 | 145 | // Crew Seatbelt Buckle Type Definition |
fmanzano_dtk | 5:07720e3f99d2 | 146 | if (crew_buckle_type) { // N.O. - Honduras |
fmanzano_dtk | 5:07720e3f99d2 | 147 | crew_buckleUp = 1; |
fmanzano_dtk | 5:07720e3f99d2 | 148 | crew_unfasten = -1; |
fmanzano_dtk | 5:07720e3f99d2 | 149 | } else { // N.C. - Panamá |
fmanzano_dtk | 5:07720e3f99d2 | 150 | crew_buckleUp = -1; |
fmanzano_dtk | 5:07720e3f99d2 | 151 | crew_unfasten = 1; |
fmanzano_dtk | 5:07720e3f99d2 | 152 | } |
fmanzano_dtk | 5:07720e3f99d2 | 153 | |
fmanzano_dtk | 5:07720e3f99d2 | 154 | // Sensor de Lluvia |
fmanzano_dtk | 5:07720e3f99d2 | 155 | enable_rain_sensor = (bool) VarDataTab[AP_RAINSENSOR]; |
fmanzano_dtk | 5:07720e3f99d2 | 156 | enable_rain_silent_mode = (bool) VarDataTab[AP_RS_SILENTMODE]; |
fmanzano_dtk | 5:07720e3f99d2 | 157 | time_sample_rain = ((int) VarDataTab[AP_RS_SAMPLE_T]) * 1.0;; |
fmanzano_dtk | 5:07720e3f99d2 | 158 | |
fmanzano_dtk | 5:07720e3f99d2 | 159 | // Limites de Velocidad en Mojado y seco |
fmanzano_dtk | 5:07720e3f99d2 | 160 | wet_Speed_Warning = (int) VarDataTab[AP_WET_WARNING]; |
fmanzano_dtk | 5:07720e3f99d2 | 161 | wet_Speed_Limit = (int) VarDataTab[AP_WET_LIMIT]; |
fmanzano_dtk | 5:07720e3f99d2 | 162 | dry_Speed_Warning = (int) VarDataTab[AP_DRY_WARNING]; |
fmanzano_dtk | 5:07720e3f99d2 | 163 | dry_Speed_Limit = (int) VarDataTab[AP_DRY_LIMIT]; |
fmanzano_dtk | 5:07720e3f99d2 | 164 | |
fmanzano_dtk | 5:07720e3f99d2 | 165 | // Tip de Seguridad y Geocercas |
fmanzano_dtk | 5:07720e3f99d2 | 166 | enable_safety_tip = (bool) VarDataTab[AP_SAFETY_TIP]; |
fmanzano_dtk | 5:07720e3f99d2 | 167 | time_safety_tip = ((int) VarDataTab[AP_SAFETY_TIP_T]) * 1.0; // 900.0 segundos |
fmanzano_dtk | 5:07720e3f99d2 | 168 | enable_geo_warning = (bool) VarDataTab[AP_GEOZONE]; |
fmanzano_dtk | 5:07720e3f99d2 | 169 | |
fmanzano_dtk | 5:07720e3f99d2 | 170 | // Volumen de Parlante |
fmanzano_dtk | 5:07720e3f99d2 | 171 | temp_JQ8400_Volume = (int) VarDataTab[AP_VOLUME]; |
fmanzano_dtk | 5:07720e3f99d2 | 172 | |
fmanzano_dtk | 5:07720e3f99d2 | 173 | // Autoreset BLE |
fmanzano_dtk | 5:07720e3f99d2 | 174 | enable_ble_autoreset = (bool) VarDataTab[AP_BLE_RESET]; |
fmanzano_dtk | 5:07720e3f99d2 | 175 | time_ble_autoreset = ((int) VarDataTab[AB_BLE_RESET_T]) * 1.0; |
fmanzano_dtk | 5:07720e3f99d2 | 176 | |
fmanzano_dtk | 5:07720e3f99d2 | 177 | |
fmanzano_dtk | 5:07720e3f99d2 | 178 | #ifdef DEBUG_FLASH_EE_CPP |
fmanzano_dtk | 5:07720e3f99d2 | 179 | myPC_debug.printf("\r\n FLASH - Completado!"); |
fmanzano_dtk | 5:07720e3f99d2 | 180 | myPC_debug.printf("\r\n FLASH - Valores cargados:"); |
fmanzano_dtk | 5:07720e3f99d2 | 181 | myPC_debug.printf("\r\n Lector de Huellas: %s", fingerprint_enable?"TRUE":"FALSE"); |
fmanzano_dtk | 5:07720e3f99d2 | 182 | myPC_debug.printf("\r\n Lector de Huellas Deshabilitado Remoto: %s", fingerprint_enable?"TRUE":"FALSE"); |
fmanzano_dtk | 5:07720e3f99d2 | 183 | myPC_debug.printf("\r\n Anulacion de Lector: %s", fingerprint_override?"TRUE":"FALSE"); |
fmanzano_dtk | 5:07720e3f99d2 | 184 | myPC_debug.printf("\r\n Cantidad para Anulacion: %d\r\n", fp_override_limit); |
fmanzano_dtk | 5:07720e3f99d2 | 185 | myPC_debug.printf("\r\n Apagado por Ralenti: %s", enable_idle_shutdown?"TRUE":"FALSE"); |
fmanzano_dtk | 5:07720e3f99d2 | 186 | myPC_debug.printf("\r\n Recordatorio de Ralenti: %s", enable_idle_reminder?"TRUE":"FALSE"); |
fmanzano_dtk | 5:07720e3f99d2 | 187 | myPC_debug.printf("\r\n Tiempo Apagado por Ralenti: %.1f", wait_idle_shutdown); |
fmanzano_dtk | 5:07720e3f99d2 | 188 | myPC_debug.printf("\r\n Tiempo Recordatorio de Ralenti: %.1f\r\n", wait_idle_reminder); |
fmanzano_dtk | 5:07720e3f99d2 | 189 | myPC_debug.printf("\r\n Lectura de Cinturones: %s", enable_seatbelt_reading?"TRUE":"FALSE"); |
fmanzano_dtk | 5:07720e3f99d2 | 190 | myPC_debug.printf("\r\n Forzar Conductor Abrochado: %s\r\n", enable_force_seatbelt_buclke?"TRUE":"FALSE"); |
fmanzano_dtk | 5:07720e3f99d2 | 191 | myPC_debug.printf("\r\n Tipo de Hebilla Piloto: %s", pilot_buckle_type?"N. OPEN":"N. CLOSE"); |
fmanzano_dtk | 5:07720e3f99d2 | 192 | myPC_debug.printf("\r\n Tipo de Hebilla Copiloto: %s", copilot_buckle_type?"N. OPEN":"N. CLOSE"); |
fmanzano_dtk | 5:07720e3f99d2 | 193 | myPC_debug.printf("\r\n Tipo de Hebilla Tripulante: %s", crew_buckle_type?"N. OPEN":"N. CLOSE"); |
fmanzano_dtk | 5:07720e3f99d2 | 194 | myPC_debug.printf("\r\n Sensor de Lluvia: %s", enable_rain_sensor?"TRUE":"FALSE"); |
fmanzano_dtk | 5:07720e3f99d2 | 195 | myPC_debug.printf("\r\n Modo Silencioso de Lluvia: %s", enable_rain_silent_mode?"TRUE":"FALSE"); |
fmanzano_dtk | 5:07720e3f99d2 | 196 | myPC_debug.printf("\r\n Temporizador para Lluvia: %.1f\r\n", time_sample_rain); |
fmanzano_dtk | 5:07720e3f99d2 | 197 | myPC_debug.printf("\r\n Advertencia Mojado: %d", wet_Speed_Warning); |
fmanzano_dtk | 5:07720e3f99d2 | 198 | myPC_debug.printf("\r\n Limite Mojado: %d", wet_Speed_Limit); |
fmanzano_dtk | 5:07720e3f99d2 | 199 | myPC_debug.printf("\r\n Advertencia Seco: %d", dry_Speed_Warning); |
fmanzano_dtk | 5:07720e3f99d2 | 200 | myPC_debug.printf("\r\n Limite Seco: %d\r\n", dry_Speed_Limit); |
fmanzano_dtk | 5:07720e3f99d2 | 201 | myPC_debug.printf("\r\n Notificacion Geocerca: %s", enable_geo_warning?"TRUE":"FALSE"); |
fmanzano_dtk | 5:07720e3f99d2 | 202 | myPC_debug.printf("\r\n Tip de Seguridad: %s", enable_safety_tip?"TRUE":"FALSE"); |
fmanzano_dtk | 5:07720e3f99d2 | 203 | myPC_debug.printf("\r\n Tiempo entre Tip de Seguridad: %.1f\r\n", time_safety_tip); |
fmanzano_dtk | 5:07720e3f99d2 | 204 | myPC_debug.printf("\r\n Volumen Parlante: %d\r\n", temp_JQ8400_Volume); |
fmanzano_dtk | 5:07720e3f99d2 | 205 | myPC_debug.printf("\r\n BLE Autoreset: %s", enable_ble_autoreset?"TRUE":"FALSE"); |
fmanzano_dtk | 5:07720e3f99d2 | 206 | myPC_debug.printf("\r\n BLE Temporizador: %.1f\r\n\r\n", time_ble_autoreset); |
fmanzano_dtk | 5:07720e3f99d2 | 207 | #endif |
fmanzano_dtk | 5:07720e3f99d2 | 208 | } |
fmanzano_dtk | 5:07720e3f99d2 | 209 | |
fmanzano_dtk | 5:07720e3f99d2 | 210 | void flash_Booting() { |
fmanzano_dtk | 5:07720e3f99d2 | 211 | HAL_FLASH_Unlock(); |
fmanzano_dtk | 5:07720e3f99d2 | 212 | EE_Init(); |
fmanzano_dtk | 5:07720e3f99d2 | 213 | readFlash_Booting(); |
fmanzano_dtk | 5:07720e3f99d2 | 214 | load_2_Var(); |
fmanzano_dtk | 5:07720e3f99d2 | 215 | } |
fmanzano_dtk | 5:07720e3f99d2 | 216 | |
fmanzano_dtk | 5:07720e3f99d2 | 217 | void flash_Default() { |
fmanzano_dtk | 5:07720e3f99d2 | 218 | // Desbloquear Flash para Escritura |
fmanzano_dtk | 5:07720e3f99d2 | 219 | #ifdef DEBUG_FLASH_EE_CPP |
fmanzano_dtk | 5:07720e3f99d2 | 220 | myPC_debug.printf("\r\n FLASH - Cargando valores por defecto"); |
fmanzano_dtk | 5:07720e3f99d2 | 221 | #endif |
fmanzano_dtk | 5:07720e3f99d2 | 222 | #define SEATBELT_CONFIG 7 |
fmanzano_dtk | 5:07720e3f99d2 | 223 | EE_WriteVariable(VirtAddVarTab[AP_FINGERPRINT], ((uint16_t) true)); // Fingerprint Enable |
fmanzano_dtk | 5:07720e3f99d2 | 224 | EE_WriteVariable(VirtAddVarTab[AP_OVERRIDE_FP], ((uint16_t) true)); // Override Fingerprint Authentication |
fmanzano_dtk | 5:07720e3f99d2 | 225 | EE_WriteVariable(VirtAddVarTab[AP_OVERRIDE_QT], ((uint16_t) 4)); // Override Fingerprint Quantity |
fmanzano_dtk | 5:07720e3f99d2 | 226 | EE_WriteVariable(VirtAddVarTab[AP_IDLE_SHUTDOWN], ((uint16_t) false)); // Idle Shutdown Enable |
fmanzano_dtk | 5:07720e3f99d2 | 227 | EE_WriteVariable(VirtAddVarTab[AP_IDLE_REMINDER], ((uint16_t) true)); // Idle Shutdown Reminder |
fmanzano_dtk | 10:a0005a4116ae | 228 | EE_WriteVariable(VirtAddVarTab[AP_IDLE_S_TIME], ((uint16_t) 600)); // Idle Shutdown Cutoff Time |
fmanzano_dtk | 5:07720e3f99d2 | 229 | EE_WriteVariable(VirtAddVarTab[AP_IDLE_R_TIME], ((uint16_t) 180)); // Idle Shutdown Reminder Time |
fmanzano_dtk | 5:07720e3f99d2 | 230 | EE_WriteVariable(VirtAddVarTab[AP_SEATBELT_READ], ((uint16_t) true)); // Seatbelt reading Enable |
fmanzano_dtk | 5:07720e3f99d2 | 231 | EE_WriteVariable(VirtAddVarTab[AP_ENFORCE_SB], ((uint16_t) true)); // Force Driver Buckleup |
fmanzano_dtk | 5:07720e3f99d2 | 232 | #if (SEATBELT_CONFIG == 0) |
fmanzano_dtk | 5:07720e3f99d2 | 233 | EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 234 | EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 235 | EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 236 | #elif (SEATBELT_CONFIG == 1) |
fmanzano_dtk | 5:07720e3f99d2 | 237 | EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 238 | EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 239 | EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 240 | #elif (SEATBELT_CONFIG == 2) |
fmanzano_dtk | 5:07720e3f99d2 | 241 | EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 242 | EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 243 | EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 244 | #elif (SEATBELT_CONFIG == 3) |
fmanzano_dtk | 5:07720e3f99d2 | 245 | EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 246 | EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 247 | EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 248 | #elif (SEATBELT_CONFIG == 4) |
fmanzano_dtk | 5:07720e3f99d2 | 249 | EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 250 | EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 251 | EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 252 | #elif (SEATBELT_CONFIG == 5) |
fmanzano_dtk | 5:07720e3f99d2 | 253 | EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 254 | EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 255 | EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 256 | #elif (SEATBELT_CONFIG == 6) |
fmanzano_dtk | 5:07720e3f99d2 | 257 | EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 258 | EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 259 | EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) false)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 260 | #elif (SEATBELT_CONFIG == 7) |
fmanzano_dtk | 5:07720e3f99d2 | 261 | EE_WriteVariable(VirtAddVarTab[AP_PILOT_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 262 | EE_WriteVariable(VirtAddVarTab[AP_COPILOT_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 263 | EE_WriteVariable(VirtAddVarTab[AP_CREW_BTYPE], ((uint16_t) true)); // Seatbelt reading Type (FALSE = PA | TRUE = HN) |
fmanzano_dtk | 5:07720e3f99d2 | 264 | #endif |
fmanzano_dtk | 5:07720e3f99d2 | 265 | EE_WriteVariable(VirtAddVarTab[AP_RAINSENSOR], ((uint16_t) true)); // Rain Sensor Enable |
fmanzano_dtk | 10:a0005a4116ae | 266 | EE_WriteVariable(VirtAddVarTab[AP_RS_SILENTMODE], ((uint16_t) false)); // Silent mode Rain Sensor |
fmanzano_dtk | 5:07720e3f99d2 | 267 | EE_WriteVariable(VirtAddVarTab[AP_RS_SAMPLE_T], ((uint16_t) 6)); // Sample Time Rain Sensor |
fmanzano_dtk | 5:07720e3f99d2 | 268 | EE_WriteVariable(VirtAddVarTab[AP_WET_LIMIT], ((uint16_t) 55)); // Wet Speed Limit |
fmanzano_dtk | 5:07720e3f99d2 | 269 | EE_WriteVariable(VirtAddVarTab[AP_WET_WARNING], ((uint16_t) 50)); // Wet Speed Warning |
fmanzano_dtk | 5:07720e3f99d2 | 270 | EE_WriteVariable(VirtAddVarTab[AP_DRY_LIMIT], ((uint16_t) 80)); // Dry Speed Limit |
fmanzano_dtk | 5:07720e3f99d2 | 271 | EE_WriteVariable(VirtAddVarTab[AP_DRY_WARNING], ((uint16_t) 70)); // Dry Speed Warning |
fmanzano_dtk | 10:a0005a4116ae | 272 | EE_WriteVariable(VirtAddVarTab[AP_SAFETY_TIP], ((uint16_t) true)); // Enable Safety Tip |
fmanzano_dtk | 10:a0005a4116ae | 273 | EE_WriteVariable(VirtAddVarTab[AP_SAFETY_TIP_T], ((uint16_t) 1800)); // Time for Safety Tip |
fmanzano_dtk | 5:07720e3f99d2 | 274 | EE_WriteVariable(VirtAddVarTab[AP_GEOZONE], ((uint16_t) false)); // Geozone alert |
fmanzano_dtk | 10:a0005a4116ae | 275 | EE_WriteVariable(VirtAddVarTab[AP_VOLUME], ((uint16_t) 5)); // Volume Level 6=Maximum |
fmanzano_dtk | 5:07720e3f99d2 | 276 | EE_WriteVariable(VirtAddVarTab[AP_BLE_RESET], ((uint16_t) true)); // BLE Autoreset |
fmanzano_dtk | 5:07720e3f99d2 | 277 | EE_WriteVariable(VirtAddVarTab[AB_BLE_RESET_T], ((uint16_t) 3600)); // BLE Autoreset Time |
fmanzano_dtk | 5:07720e3f99d2 | 278 | EE_WriteVariable(VirtAddVarTab[AP_FINGERPRINT_RE], ((uint16_t) false)); // Fingerprint Enable |
fmanzano_dtk | 5:07720e3f99d2 | 279 | |
fmanzano_dtk | 5:07720e3f99d2 | 280 | |
fmanzano_dtk | 5:07720e3f99d2 | 281 | // LED |
fmanzano_dtk | 5:07720e3f99d2 | 282 | flashLED = 1; |
fmanzano_dtk | 5:07720e3f99d2 | 283 | wait_ms(3750); |
fmanzano_dtk | 5:07720e3f99d2 | 284 | flashLED = 0; |
fmanzano_dtk | 5:07720e3f99d2 | 285 | #ifdef DEBUG_FLASH_EE_CPP |
fmanzano_dtk | 5:07720e3f99d2 | 286 | myPC_debug.printf("\r\n FLASH - Completado!"); |
fmanzano_dtk | 5:07720e3f99d2 | 287 | #endif |
fmanzano_dtk | 5:07720e3f99d2 | 288 | |
fmanzano_dtk | 5:07720e3f99d2 | 289 | } |
fmanzano_dtk | 5:07720e3f99d2 | 290 | |
fmanzano_dtk | 5:07720e3f99d2 | 291 | void writeFlash(int myAddress, int myValue) { |
fmanzano_dtk | 5:07720e3f99d2 | 292 | // Desbloquear Flash para Escritura |
fmanzano_dtk | 5:07720e3f99d2 | 293 | EE_WriteVariable(VirtAddVarTab[myAddress], ((uint16_t) myValue)); |
fmanzano_dtk | 5:07720e3f99d2 | 294 | } |