diff --git a/Software/src/battery/BATTERIES.cpp b/Software/src/battery/BATTERIES.cpp index 247e61e5..4ea2c24f 100644 --- a/Software/src/battery/BATTERIES.cpp +++ b/Software/src/battery/BATTERIES.cpp @@ -317,6 +317,14 @@ void setup_battery() { } #endif +/* User-selected Tesla settings */ +bool user_selected_tesla_digital_HVIL = false; +uint16_t user_selected_tesla_GTW_country = 0; +bool user_selected_tesla_GTW_rightHandDrive = false; +uint16_t user_selected_tesla_GTW_mapRegion = 0; +uint16_t user_selected_tesla_GTW_chassisType = 0; +uint16_t user_selected_tesla_GTW_packEnergy = 0; + /* User-selected voltages used for custom-BMS batteries (RJXZS etc.) */ #if defined(MAX_CUSTOM_PACK_VOLTAGE_DV) && defined(MIN_CUSTOM_PACK_VOLTAGE_DV) && \ defined(MAX_CUSTOM_CELL_VOLTAGE_MV) && defined(MIN_CUSTOM_CELL_VOLTAGE_MV) diff --git a/Software/src/battery/BATTERIES.h b/Software/src/battery/BATTERIES.h index 5c5539a6..f26dcf6e 100644 --- a/Software/src/battery/BATTERIES.h +++ b/Software/src/battery/BATTERIES.h @@ -61,4 +61,11 @@ extern uint16_t user_selected_min_pack_voltage_dV; extern uint16_t user_selected_max_cell_voltage_mV; extern uint16_t user_selected_min_cell_voltage_mV; +extern bool user_selected_tesla_digital_HVIL; +extern uint16_t user_selected_tesla_GTW_country; +extern bool user_selected_tesla_GTW_rightHandDrive; +extern uint16_t user_selected_tesla_GTW_mapRegion; +extern uint16_t user_selected_tesla_GTW_chassisType; +extern uint16_t user_selected_tesla_GTW_packEnergy; + #endif diff --git a/Software/src/communication/nvm/comm_nvm.cpp b/Software/src/communication/nvm/comm_nvm.cpp index 91adc099..7d513c81 100644 --- a/Software/src/communication/nvm/comm_nvm.cpp +++ b/Software/src/communication/nvm/comm_nvm.cpp @@ -103,6 +103,12 @@ void init_stored_settings() { user_selected_inverter_ah_capacity = settings.getUInt("INVAHCAPACITY", 0); user_selected_inverter_battery_type = settings.getUInt("INVBTYPE", 0); user_selected_inverter_ignore_contactors = settings.getBool("INVICNT", false); + user_selected_tesla_digital_HVIL = settings.getBool("DIGITALHVIL", false); + user_selected_tesla_GTW_country = settings.getUInt("GTWCOUNTRY", 0); + user_selected_tesla_GTW_rightHandDrive = settings.getBool("GTWRHD", false); + user_selected_tesla_GTW_mapRegion = settings.getUInt("GTWMAPREG", 0); + user_selected_tesla_GTW_chassisType = settings.getUInt("GTWCHASSIS", 0); + user_selected_tesla_GTW_packEnergy = settings.getUInt("GTWPACK", 0); auto readIf = [](const char* settingName) { auto batt1If = (comm_interface)settings.getUInt(settingName, (int)comm_interface::CanNative); diff --git a/Software/src/devboard/webserver/settings_html.cpp b/Software/src/devboard/webserver/settings_html.cpp index 7ca338ce..176a0776 100644 --- a/Software/src/devboard/webserver/settings_html.cpp +++ b/Software/src/devboard/webserver/settings_html.cpp @@ -500,6 +500,30 @@ String settings_processor(const String& var, BatteryEmulatorSettingsStore& setti return settings.getBool("INVICNT") ? "checked" : ""; } + if (var == "DIGITALHVIL") { + return settings.getBool("DIGITALHVIL") ? "checked" : ""; + } + + if (var == "GTWCOUNTRY") { + return String(settings.getUInt("GTWCOUNTRY", 0)); + } + + if (var == "GTWRHD") { + return settings.getBool("GTWRHD") ? "checked" : ""; + } + + if (var == "GTWMAPREG") { + return String(settings.getUInt("GTWMAPREG", 0)); + } + + if (var == "GTWCHASSIS") { + return String(settings.getUInt("GTWCHASSIS", 0)); + } + + if (var == "GTWPACK") { + return String(settings.getUInt("GTWPACK", 0)); + } + return String(); } @@ -686,6 +710,11 @@ const char* getCANInterfaceName(CAN_Interface interface) { display: contents; } + form .if-tesla { display: none; } + form[data-battery="32"] .if-tesla, form[data-battery="33"] .if-tesla { + display: contents; + } + form .if-dblbtr { display: none; } form[data-dblbtr="true"] .if-dblbtr { display: contents; @@ -735,6 +764,21 @@ const char* getCANInterfaceName(CAN_Interface interface) { %BATTTYPE% +