diff --git a/CANbus.dbc b/CANbus.dbc index 3ed5783b..0b2f56a1 100644 --- a/CANbus.dbc +++ b/CANbus.dbc @@ -1,403 +1,403 @@ -VERSION "" - - -NS_ : - NS_DESC_ - CM_ - BA_DEF_ - BA_ - VAL_ - CAT_DEF_ - CAT_ - FILTER - BA_DEF_DEF_ - EV_DATA_ - ENVVAR_DATA_ - SGTYPE_ - SGTYPE_VAL_ - BA_DEF_SGTYPE_ - BA_SGTYPE_ - SIG_TYPE_REF_ - VAL_TABLE_ - SIG_GROUP_ - SIG_VALTYPE_ - SIGTYPE_VALTYPE_ - BO_TX_BU_ - BA_DEF_REL_ - BA_REL_ - BA_DEF_DEF_REL_ - BU_SG_REL_ - BU_EV_REL_ - BU_BO_REL_ - SG_MUL_VAL_ - -BS_: - -BU_: SME ACC ETC PDB TMAIN VDM TPERIPH_FL TPERIPH_FR TPERIPH_BL TPERIPH_BR SMPC CHARGER_BOARD IZZE1 - - -BO_ 128 SYNC: 0 ETC - -BO_ 390 SME_RPDO_Throttle_Demand: 8 ETC - SG_ SME_THROTL_PowerReady : 35|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_THROTL_MBB_Alive : 40|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ SME_THROTL_Reverse : 33|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_THROTL_Forward : 32|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_THROTL_MaxSpeed : 16|16@1- (1,0) [-32768|32767] "RPM" Vector__XXX - SG_ SME_THROTL_TorqueDemand : 0|16@1- (1,0) [-32767|32767] "Q15" Vector__XXX - -BO_ 646 SME_RPDO_Max_Currents: 8 ETC - SG_ SME_CURRLIM_ChargeCurrentLim : 0|16@1+ (1,0) [0|65535] "A" Vector__XXX - SG_ SME_CURRLIM_DischargeCurrentLim : 16|16@1+ (1,0) [0|65535] "A" Vector__XXX - -BO_ 1154 SME_TPDO_Torque_speed: 8 SME - SG_ SME_TRQSPD_SOC_Low_Traction : 32|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_TRQSPD_SOC_Low_Hydraulic : 33|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_TRQSPD_Reverse : 34|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_TRQSPD_Forward : 35|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_TRQSPD_Park_Brake : 36|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_TRQSPD_Pedal_Brake : 37|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_TRQSPD_Controller_Overtermp : 38|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_TRQSPD_Key_switch_overvolt : 39|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_TRQSPD_Key_switch_undervolt : 40|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_TRQSPD_Running : 41|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_TRQSPD_Traction : 42|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_TRQSPD_Hydraulic : 43|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_TRQSPD_Powering_Enabled : 44|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_TRQSPD_Powering_Ready : 45|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_TRQSPD_contactor_closed : 47|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_TRQSPD_Precharging : 46|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SME_TRQSPD_Speed : 0|16@1+ (1,0) [-32768|32767] "RPM" Vector__XXX - SG_ SME_TRQSPD_MotorFlags : 48|16@1+ (1,0) [0|65535] "" Vector__XXX - SG_ SME_TRQSPD_Torque : 16|16@1- (1,0) [-32767|32767] "Q15" Vector__XXX - -BO_ 1666 SME_TPDO_Temperature: 8 SME - SG_ SME_TEMP_FaultLevel : 40|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ SME_TEMP_FaultCode : 32|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ SME_TEMP_DC_Bus_V : 16|16@1+ (0.1,0) [0|6553.5] "V" Vector__XXX - SG_ SME_TEMP_ControllerTemperature : 8|8@1+ (1,-40) [0|255] "C" Vector__XXX - SG_ SME_TEMP_MotorTemperature : 0|8@1+ (1,-40) [0|255] "C" Vector__XXX - SG_ SME_TEMP_BusCurrent : 48|16@1- (0.1,0) [-3276.8|3276.7] "A" Vector__XXX - -BO_ 392 ACC_TPDO_STATUS: 8 ACC - SG_ ACC_STATUS_BMS_FAULT : 0|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ ACC_STATUS_IMD_FAULT : 1|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ ACC_STATUS_SHUTDOWN_STATE : 2|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ ACC_STATUS_PRECHARGE_DONE : 3|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ ACC_STATUS_PRECHARGING : 4|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ ACC_STATUS_CELL_TOO_LOW : 8|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ ACC_STATUS_CELL_TOO_HIGH : 9|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ ACC_STATUS_TEMP_TOO_LOW : 10|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ ACC_STATUS_TEMP_TOO_HIGH : 11|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ ACC_STATUS_TEMP_TOO_HIGH_CRG : 12|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ ACC_STATUS_CHARGING : 5|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ ACC_STATUS_GLV_VOLTAGE : 16|16@1+ (1,0) [0|65.635] "mV" Vector__XXX - SG_ ACC_STATUS_CELL_FAULT_INDEX : 32|32@1+ (1,0) [0|0] "" Vector__XXX - SG_ ACC_STATUS_BALANCING : 13|1@1+ (1,0) [0|0] "" Vector__XXX - -BO_ 648 ACC_TPDO_POWER: 8 ACC - SG_ ACC_POWER_PACK_VOLTAGE : 0|16@1+ (0.01,0) [0|655.35] "V" Vector__XXX - SG_ ACC_POWER_SOC : 16|8@1+ (1,0) [0|255] "Percentage" Vector__XXX - SG_ ACC_POWER_CURRENT : 24|16@1- (0.1,0) [-3276.8|3276.7] "A" Vector__XXX - -BO_ 401 ACC_TPDO_SEG0_VOLTS: 6 ACC - SG_ ACC_SEG0_VOLTS_CELL0 : 0|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG0_VOLTS_CELL1 : 8|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG0_VOLTS_CELL2 : 16|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG0_VOLTS_CELL3 : 24|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG0_VOLTS_CELL4 : 32|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG0_VOLTS_CELL5 : 40|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - -BO_ 657 ACC_TPDO_SEG0_TEMPS: 6 ACC - SG_ ACC_SEG0_TEMPS_CELL0 : 0|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG0_TEMPS_CELL1 : 8|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG0_TEMPS_CELL2 : 16|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG0_TEMPS_CELL3 : 24|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG0_TEMPS_CELL4 : 32|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG0_TEMPS_CELL5 : 40|8@1- (1,0) [-128|127] "C" Vector__XXX - -BO_ 402 ACC_TPDO_SEG1_VOLTS: 6 ACC - SG_ ACC_SEG1_VOLTS_CELL0 : 0|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG1_VOLTS_CELL1 : 8|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG1_VOLTS_CELL2 : 16|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG1_VOLTS_CELL3 : 24|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG1_VOLTS_CELL4 : 32|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG1_VOLTS_CELL5 : 40|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - -BO_ 658 ACC_TPDO_SEG1_TEMPS: 6 ACC - SG_ ACC_SEG1_TEMPS_CELL0 : 0|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG1_TEMPS_CELL1 : 8|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG1_TEMPS_CELL2 : 16|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG1_TEMPS_CELL3 : 24|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG1_TEMPS_CELL4 : 32|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG1_TEMPS_CELL5 : 40|8@1- (1,0) [-128|127] "C" Vector__XXX - -BO_ 403 ACC_TPDO_SEG2_VOLTS: 6 ACC - SG_ ACC_SEG2_VOLTS_CELL0 : 0|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG2_VOLTS_CELL1 : 8|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG2_VOLTS_CELL2 : 16|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG2_VOLTS_CELL3 : 24|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG2_VOLTS_CELL4 : 32|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG2_VOLTS_CELL5 : 40|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - -BO_ 659 ACC_TPDO_SEG2_TEMPS: 6 ACC - SG_ ACC_SEG2_TEMPS_CELL0 : 0|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG2_TEMPS_CELL1 : 8|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG2_TEMPS_CELL2 : 16|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG2_TEMPS_CELL3 : 24|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG2_TEMPS_CELL4 : 32|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG2_TEMPS_CELL5 : 40|8@1- (1,0) [-128|127] "C" Vector__XXX - -BO_ 404 ACC_TPDO_SEG3_VOLTS: 6 ACC - SG_ ACC_SEG3_VOLTS_CELL0 : 0|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG3_VOLTS_CELL1 : 8|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG3_VOLTS_CELL2 : 16|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG3_VOLTS_CELL3 : 24|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG3_VOLTS_CELL4 : 32|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG3_VOLTS_CELL5 : 40|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - -BO_ 660 ACC_TPDO_SEG3_TEMPS: 6 ACC - SG_ ACC_SEG3_TEMPS_CELL0 : 0|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG3_TEMPS_CELL1 : 8|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG3_TEMPS_CELL2 : 16|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG3_TEMPS_CELL3 : 24|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG3_TEMPS_CELL4 : 32|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG3_TEMPS_CELL5 : 40|8@1- (1,0) [-128|127] "C" Vector__XXX - -BO_ 405 ACC_TPDO_SEG4_VOLTS: 6 ACC - SG_ ACC_SEG4_VOLTS_CELL0 : 0|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG4_VOLTS_CELL1 : 8|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG4_VOLTS_CELL2 : 16|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG4_VOLTS_CELL3 : 24|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG4_VOLTS_CELL4 : 32|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - SG_ ACC_SEG4_VOLTS_CELL5 : 40|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX - -BO_ 661 ACC_TPDO_SEG4_TEMPS: 6 ACC - SG_ ACC_SEG4_TEMPS_CELL0 : 0|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG4_TEMPS_CELL1 : 8|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG4_TEMPS_CELL2 : 16|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG4_TEMPS_CELL3 : 24|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG4_TEMPS_CELL4 : 32|8@1- (1,0) [-128|127] "C" Vector__XXX - SG_ ACC_SEG4_TEMPS_CELL5 : 40|8@1- (1,0) [-128|127] "C" Vector__XXX - -BO_ 2148139008 VDM_GPS_LAT_LONG: 8 VDM - SG_ VDM_GPS_Latitude : 7|32@0- (1,0) [0|0] "deg" Vector__XXX - SG_ VDM_GPS_Longitude : 39|32@0- (1,0) [0|0] "deg" Vector__XXX - -BO_ 2148139009 VDM_GPS_DATA: 8 VDM - SG_ VDM_GPS_SPEED : 7|16@0+ (0.01,0) [0|0] "mph" Vector__XXX - SG_ VDM_GPS_ALTITUDE : 23|16@0- (1,0) [0|0] "ft" Vector__XXX - SG_ VDM_GPS_TRUE_COURSE : 39|16@0+ (0.01,0) [0|0] "deg" Vector__XXX - SG_ VDM_GPS_SATELLITES_IN_USE : 55|8@0+ (1,0) [0|0] "" Vector__XXX - SG_ VDM_GPS_VALID1 : 63|8@0+ (1,0) [0|0] "" Vector__XXX - -BO_ 2148139010 VDM_DATE_TIME: 8 VDM - SG_ VDM_GPS_VALID2 : 7|8@0+ (1,0) [0|0] "" Vector__XXX - SG_ VDM_UTC_DATE_YEAR : 15|8@0+ (1,0) [0|0] "years" Vector__XXX - SG_ VDM_UTC_DATE_MONTH : 23|8@0+ (1,0) [0|0] "months" Vector__XXX - SG_ VDM_UTC_DATE_DAY : 31|8@0+ (1,0) [0|0] "days" Vector__XXX - SG_ VDM_UTC_TIME_HOURS : 47|8@0+ (1,0) [0|0] "hours" Vector__XXX - SG_ VDM_UTC_TIME_MINUTES : 55|8@0+ (1,0) [0|0] "minutes" Vector__XXX - SG_ VDM_UTC_TIME_SECONDS : 63|8@0+ (1,0) [0|0] "seconds" Vector__XXX - -BO_ 2148139011 VDM_ACCELERATION: 8 VDM - SG_ VDM_X_AXIS_ACCELERATION : 7|16@0- (0.000244141,0) [0|0] "gs" Vector__XXX - SG_ VDM_Y_AXIS_ACCELERATION : 23|16@0- (0.000244141,0) [0|0] "gs" Vector__XXX - SG_ VDM_Z_AXIS_ACCELERATION : 39|16@0- (0.000244141,0) [0|0] "gs" Vector__XXX - -BO_ 2148139012 VDM_YAW_RATE: 8 VDM - SG_ VDM_X_AXIS_YAW_RATE : 7|16@0- (0.0152588,0) [0|0] "deg/s" Vector__XXX - SG_ VDM_Y_AXIS_YAW_RATE : 23|16@0- (0.0152588,0) [0|0] "deg/s" Vector__XXX - SG_ VDM_Z_AXIS_YAW_RATE : 39|16@0- (0.0152588,0) [0|0] "deg/s" Vector__XXX - -BO_ 393 ETC_TPDO_STATUS: 8 ETC - SG_ ETC_STATUS_HE1 : 0|16@1+ (1,0) [0|65535] "mV" Vector__XXX - SG_ ETC_STATUS_HE2 : 16|16@1+ (1,0) [0|65535] "mV" Vector__XXX - SG_ ETC_STATUS_BRAKE_SENSE_VOLTAGE : 32|16@1+ (1,0) [0|65535] "mV" Vector__XXX - SG_ ETC_STATUS_RTD_BUTTON : 56|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ ETC_STATUS_RTDS : 57|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ ETC_STATUS_REVERSE : 58|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ ETC_STATUS_BRAKELIGHT : 59|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ ETC_STATUS_PEDAL_TRAVEL : 48|8@1+ (1,0) [0|100] "%" Vector__XXX - SG_ ETC_STATUS_RTD : 60|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ ETC_STATUS_IMPLAUSIBILITY : 61|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ ETC_STATUS_TS_ACTIVE : 62|1@1+ (1,0) [0|0] "" Vector__XXX - -BO_ 410 PDB_TPDO_POWER_A: 8 PDB - SG_ PDB_POWER_A_GLV_VOLTAGE : 0|16@1+ (1,0) [0|65535] "mV" Vector__XXX - SG_ PDB_POWER_A_CURRENT_SHUTDOWN : 16|8@1+ (1,0) [0|255] "lsb" Vector__XXX - SG_ PDB_POWER_A_CURRENT_ACC : 24|8@1+ (1,0) [0|255] "lsb" Vector__XXX - SG_ PDB_POWER_A_CURRENT_ETC : 32|8@1+ (1,0) [0|255] "lsb" Vector__XXX - SG_ PDB_POWER_A_CURRENT_BPS : 40|8@1+ (1,0) [0|255] "lsb" Vector__XXX - SG_ PDB_POWER_A_CURRENT_TRACTIVE : 48|8@1+ (1,0) [0|255] "lsb" Vector__XXX - SG_ PDB_POWER_A_CURRENT_BSPD : 56|8@1+ (1,0) [0|255] "lsb" Vector__XXX - -BO_ 666 PDB_TPDO_POWER_B: 8 PDB - SG_ PDB_POWER_B_CURRENT_TELEMETRY : 0|8@1+ (1,0) [0|255] "lsb" Vector__XXX - SG_ PDB_POWER_B_CURRENT_PDB : 8|8@1+ (1,0) [0|255] "lsb" Vector__XXX - SG_ PDB_POWER_B_CURRENT_DASH : 16|8@1+ (1,0) [0|255] "lsb" Vector__XXX - SG_ PDB_POWER_B_CURRENT_RTML : 24|8@1+ (1,0) [0|255] "lsb" Vector__XXX - SG_ PDB_POWER_B_CURRENT_EXTRA_1 : 32|8@1+ (1,0) [0|255] "lsb" Vector__XXX - SG_ PDB_POWER_B_CURRENT_EXTRA_2 : 40|8@1+ (1,0) [0|255] "lsb" Vector__XXX - -BO_ 416 TMAIN_TPDO_DATA: 8 TMAIN - SG_ TMAIN_DATA_BRAKES_F : 0|16@1+ (0.1,0) [0|0] "psi" Vector__XXX - SG_ TMAIN_DATA_BRAKES_R : 16|16@1+ (0.1,0) [0|0] "psi" Vector__XXX - -BO_ 418 TPERIPH_FL_TPDO_DATA: 7 TPERIPH_FL - SG_ TPERIPH_FL_DATA_WHEELSPEED : 0|16@1- (0.1,0) [0|0] "rpm" Vector__XXX - SG_ TPERIPH_FL_DATA_SUSTRAVEL : 16|16@1+ (0.01,0) [0|655.35] "mm" Vector__XXX - SG_ TPERIPH_FL_DATA_STRAIN : 32|16@1- (1e-07,0) [0|0] "%" Vector__XXX - SG_ TPERIPH_FL_DATA_SIDE_TIRE_TEMP : 48|8@1+ (1,0) [0|255] "C" Vector__XXX - -BO_ 419 TPERIPH_FR_TPDO_DATA: 7 TPERIPH_FR - SG_ TPERIPH_FR_DATA_WHEELSPEED : 0|16@1- (0.1,0) [0|0] "rpm" Vector__XXX - SG_ TPERIPH_FR_DATA_SUSTRAVEL : 16|16@1+ (0.01,0) [0|655.35] "mm" Vector__XXX - SG_ TPERIPH_FR_DATA_STRAIN : 32|16@1- (1e-07,0) [0|0] "%" Vector__XXX - SG_ TPERIPH_FR_DATA_SIDE_TIRE_TEMP : 48|8@1+ (1,0) [0|255] "C" Vector__XXX - -BO_ 420 TPERIPH_BL_TPDO_DATA: 7 TPERIPH_BL - SG_ TPERIPH_BL_DATA_WHEELSPEED : 0|16@1- (0.1,0) [0|0] "rpm" Vector__XXX - SG_ TPERIPH_BL_DATA_SUSTRAVEL : 16|16@1+ (0.01,0) [0|655.35] "mm" Vector__XXX - SG_ TPERIPH_BL_DATA_STRAIN : 32|16@1- (1e-07,0) [0|0] "%" Vector__XXX - SG_ TPERIPH_BL_DATA_SIDE_TIRE_TEMP : 48|8@1+ (1,0) [0|255] "C" Vector__XXX - -BO_ 421 TPERIPH_BR_TPDO_DATA: 7 TPERIPH_BR - SG_ TPERIPH_BR_DATA_WHEELSPEED : 0|16@1- (0.1,0) [0|0] "rpm" Vector__XXX - SG_ TPERIPH_BR_DATA_SUSTRAVEL : 16|16@1+ (0.01,0) [0|655.35] "mm" Vector__XXX - SG_ TPERIPH_BR_DATA_STRAIN : 32|16@1- (1e-07,0) [0|0] "%" Vector__XXX - SG_ TPERIPH_BR_DATA_SIDE_TIRE_TEMP : 48|8@1+ (1,0) [0|255] "C" Vector__XXX - -BO_ 673 TPERIPH_FL_TPDO_TIRETEMP: 8 TPERIPH_FL - SG_ TPERIPH_FL_TIRETEMP_1 : 0|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_FL_TIRETEMP_2 : 8|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_FL_TIRETEMP_3 : 16|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_FL_TIRETEMP_4 : 24|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_FL_TIRETEMP_5 : 32|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_FL_TIRETEMP_6 : 40|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_FL_TIRETEMP_7 : 48|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_FL_TIRETEMP_8 : 56|8@1+ (1,0) [0|0] "C" Vector__XXX - -BO_ 674 TPERIPH_FR_TPDO_TIRETEMP: 8 TPERIPH_FR - SG_ TPERIPH_FR_TIRETEMP_1 : 0|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_FR_TIRETEMP_2 : 8|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_FR_TIRETEMP_3 : 16|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_FR_TIRETEMP_4 : 24|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_FR_TIRETEMP_5 : 32|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_FR_TIRETEMP_6 : 40|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_FR_TIRETEMP_7 : 48|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_FR_TIRETEMP_8 : 56|8@1+ (1,0) [0|0] "C" Vector__XXX - -BO_ 675 TPERIPH_BL_TPDO_TIRETEMP: 8 TPERIPH_BL - SG_ TPERIPH_BL_TIRETEMP_1 : 0|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_BL_TIRETEMP_2 : 8|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_BL_TIRETEMP_3 : 16|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_BL_TIRETEMP_4 : 24|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_BL_TIRETEMP_5 : 32|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_BL_TIRETEMP_6 : 40|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_BL_TIRETEMP_7 : 48|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_BL_TIRETEMP_8 : 56|8@1+ (1,0) [0|0] "C" Vector__XXX - -BO_ 676 TPERIPH_BR_TPDO_TIRETEMP: 8 TPERIPH_BR - SG_ TPERIPH_BR_TIRETEMP_1 : 0|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_BR_TIRETEMP_2 : 8|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_BR_TIRETEMP_3 : 16|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_BR_TIRETEMP_4 : 24|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_BR_TIRETEMP_5 : 32|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_BR_TIRETEMP_6 : 40|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_BR_TIRETEMP_7 : 48|8@1+ (1,0) [0|0] "C" Vector__XXX - SG_ TPERIPH_BR_TIRETEMP_8 : 56|8@1+ (1,0) [0|0] "C" Vector__XXX - -BO_ 2021 LSS_COMMAND: 8 CHARGER_BOARD - SG_ COMMAND_MODE : 8|8@1+ (1,0) [0|0] "" Vector__XXX - SG_ COMMAND_COMMAND_SPECIFIER : 0|8@1+ (1,0) [0|0] "" Vector__XXX - -BO_ 2020 LSS_RESPONSE: 8 SMPC - SG_ RESPONSE_COMMAND_SPECIFIER : 0|8@1+ (1,0) [0|0] "" Vector__XXX - -BO_ 518 SMPC_RPDO_CONTROL: 8 CHARGER_BOARD - SG_ SMPC_CONTROL_PACK_VOLTAGE : 16|32@1+ (1,0) [0|65535] "mV" Vector__XXX - SG_ SMPC_CONTROL_DEST_NODE_ID : 0|8@1+ (1,0) [0|0] "" Vector__XXX - SG_ SMPC_CONTROL_ENABLE : 9|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ SMPC_CONTROL_CURRENT_10X_MULT : 11|1@1+ (1,0) [0|0] "" Vector__XXX - SG_ SMPC_CONTROL_EVSE_OVERRIDE : 13|1@1+ (1,0) [0|0] "" Vector__XXX - -BO_ 774 SMPC_RPDO_MAX_VOLTAGE_CURRENT: 8 CHARGER_BOARD - SG_ SMPC_MAX_DEST_NODE_ID : 0|8@1+ (1,0) [0|0] "" Vector__XXX - SG_ SMPC_MAX_CHRG_VOLTAGE : 8|32@1+ (1,0) [0|0] "mV" Vector__XXX - SG_ SMPC_MAX_CHRG_CURRENT : 40|16@1+ (1,0) [0|0] "mA" Vector__XXX - SG_ SMPC_MAX_INPUT_EVSE_OVERRIDE : 56|8@1+ (1,0) [0|255] "A" Vector__XXX - -BO_ 400 SMPC_TPDO_STATUS: 8 SMPC - SG_ SMPC_STATUS_CURRENT_MA : 48|16@1+ (1,0) [0|65535] "mA" Vector__XXX - SG_ SMPC_STATUS_VOLTAGE_MV : 16|32@1+ (1,0) [0|2704] "mV" Vector__XXX - SG_ SMPC_STATUS_J1772_DISCONN : 13|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SMPC_STATUS_REQUEST_EXCLUSIVE : 12|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SMPC_STATUS_CHARGER_UNPLUGGED : 8|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SMPC_STATUS_CHARGING : 7|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SMPC_STATUS_INTERNAL_FAULT : 6|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SMPC_STATUS_UNDERVOLTAGE_FAULT : 5|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SMPC_STATUS_OVERVOLTAGE_FAULT : 4|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SMPC_STATUS_OVERCURRENT_FAULT : 3|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SMPC_STATUS_OVERTEMP_FAULT : 2|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SMPC_STATUS_CHARGE_COMPLETE : 1|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SMPC_STATUS_READY : 0|1@1+ (1,0) [0|1] "" Vector__XXX - -BO_ 656 SMPC_TPDO_MAX_VOLTAGE_CURRENT: 8 SMPC - SG_ SMPC_MAX2_INPUT_CURR_LIM : 56|8@1+ (1,0) [0|255] "A" Vector__XXX - SG_ SMPC_MAX2_EVSE_CURRENT : 48|8@1+ (1,0) [0|255] "A" Vector__XXX - SG_ SMPC_MAX2_MAX_CURRENT_MA : 32|16@1+ (1,0) [0|65535] "mA" Vector__XXX - SG_ SMPC_MAX2_MAX_VOLTAGE_MV : 0|32@1+ (1,0) [0|2704] "mV" Vector__XXX - -BO_ 912 SMPC_TPDO_INPUT_AC: 8 SMPC - SG_ SMPC_INPUT_MAX_CHARGER_TEMP_C : 40|8@1+ (1,-50) [-50|205] "C" Vector__XXX - SG_ SMPC_INPUT_AC_INPUT_FREQUENCY_HZ : 32|8@1+ (1,0) [0|255] "HZ" Vector__XXX - SG_ SMPC_INPUT_AC_INPUT_CURRENT_MA : 16|16@1+ (1,0) [0|65535] "mA" Vector__XXX - SG_ SMPC_INPUT_J1772_TRIGGERED : 10|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SMPC_INPUT_J1772_DISCONNECTED : 9|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SMPC_INPUT_J1772_CONNECTED : 8|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SMPC_INPUT_AC_INPUT_VOLTAGE : 0|8@1+ (1,0) [0|255] "Vac" Vector__XXX - -BO_ 1168 SMPC_TPDO_SERIAL_PART_NUM: 8 SMPC - SG_ SMPC_SER_FIRMWARE_VER : 48|16@1+ (1,0) [0|65535] "" Vector__XXX - SG_ SMPC_SER_SERIAL_NUMBER : 16|32@1+ (1,0) [0|2704] "" Vector__XXX - SG_ SMPC_SER_PART_NUMBER : 0|16@1+ (1,0) [0|65535] "" Vector__XXX - -BO_ 1220 IZZE_BRAKETEMP_S1M1: 8 IZZE1 - SG_ IZZE_BRAKETEMP_S1_CH1 : 7|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX - SG_ IZZE_BRAKETEMP_S1_CH2 : 23|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX - SG_ IZZE_BRAKETEMP_S1_CH3 : 39|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX - SG_ IZZE_BRAKETEMP_S1_CH4 : 55|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX - -BO_ 1221 IZZE_BRAKETEMP_S1M2: 8 IZZE1 - SG_ IZZE_BRAKETEMP_S1_CH5 : 7|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX - SG_ IZZE_BRAKETEMP_S1_CH6 : 23|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX - SG_ IZZE_BRAKETEMP_S1_CH7 : 39|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX - SG_ IZZE_BRAKETEMP_S1_CH8 : 55|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX - -BO_ 1222 IZZE_BRAKETEMP_S1M3: 8 IZZE1 - SG_ IZZE_BRAKETEMP_S1_CH9 : 7|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX - SG_ IZZE_BRAKETEMP_S1_CH10 : 23|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX - SG_ IZZE_BRAKETEMP_S1_CH11 : 39|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX - SG_ IZZE_BRAKETEMP_S1_CH12 : 55|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX - -BO_ 1223 IZZE_BRAKETEMP_S1M4: 8 IZZE1 - SG_ IZZE_BRAKETEMP_S1_CH13 : 7|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX - SG_ IZZE_BRAKETEMP_S1_CH14 : 23|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX - SG_ IZZE_BRAKETEMP_S1_CH15 : 39|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX - SG_ IZZE_BRAKETEMP_S1_CH16 : 55|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX - -BO_ 1224 IZZE_BRAKETEMP_S1M5: 8 IZZE1 - SG_ IZZE_BRAKETEMP_S1_STEMP : 55|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX - - - -CM_ SG_ 2148139008 VDM_GPS_Latitude "Float32"; -CM_ SG_ 2148139008 VDM_GPS_Longitude "Float32"; -BA_DEF_ "BusType" STRING ; -BA_DEF_ BO_ "GenMsgBackgroundColor" STRING ; -BA_DEF_ BO_ "GenMsgForegroundColor" STRING ; -BA_DEF_DEF_ "BusType" "CAN"; -BA_DEF_DEF_ "GenMsgBackgroundColor" "#c8c8c8"; -BA_DEF_DEF_ "GenMsgForegroundColor" "#000000"; - +VERSION "" + + +NS_ : + NS_DESC_ + CM_ + BA_DEF_ + BA_ + VAL_ + CAT_DEF_ + CAT_ + FILTER + BA_DEF_DEF_ + EV_DATA_ + ENVVAR_DATA_ + SGTYPE_ + SGTYPE_VAL_ + BA_DEF_SGTYPE_ + BA_SGTYPE_ + SIG_TYPE_REF_ + VAL_TABLE_ + SIG_GROUP_ + SIG_VALTYPE_ + SIGTYPE_VALTYPE_ + BO_TX_BU_ + BA_DEF_REL_ + BA_REL_ + BA_DEF_DEF_REL_ + BU_SG_REL_ + BU_EV_REL_ + BU_BO_REL_ + SG_MUL_VAL_ + +BS_: + +BU_: SME ACC ETC PDB TMAIN VDM TPERIPH_FL TPERIPH_FR TPERIPH_BL TPERIPH_BR SMPC CHARGER_BOARD IZZE1 + + +BO_ 128 SYNC: 0 ETC + +BO_ 390 SME_RPDO_Throttle_Demand: 8 ETC + SG_ SME_THROTL_PowerReady : 35|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_THROTL_MBB_Alive : 40|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ SME_THROTL_Reverse : 33|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_THROTL_Forward : 32|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_THROTL_MaxSpeed : 16|16@1- (1,0) [-32768|32767] "RPM" Vector__XXX + SG_ SME_THROTL_TorqueDemand : 0|16@1- (1,0) [-32767|32767] "Q15" Vector__XXX + +BO_ 646 SME_RPDO_Max_Currents: 8 ETC + SG_ SME_CURRLIM_ChargeCurrentLim : 0|16@1+ (1,0) [0|65535] "A" Vector__XXX + SG_ SME_CURRLIM_DischargeCurrentLim : 16|16@1+ (1,0) [0|65535] "A" Vector__XXX + +BO_ 1154 SME_TPDO_Torque_speed: 8 SME + SG_ SME_TRQSPD_SOC_Low_Traction : 32|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_TRQSPD_SOC_Low_Hydraulic : 33|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_TRQSPD_Reverse : 34|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_TRQSPD_Forward : 35|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_TRQSPD_Park_Brake : 36|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_TRQSPD_Pedal_Brake : 37|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_TRQSPD_Controller_Overtermp : 38|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_TRQSPD_Key_switch_overvolt : 39|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_TRQSPD_Key_switch_undervolt : 40|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_TRQSPD_Running : 41|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_TRQSPD_Traction : 42|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_TRQSPD_Hydraulic : 43|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_TRQSPD_Powering_Enabled : 44|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_TRQSPD_Powering_Ready : 45|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_TRQSPD_contactor_closed : 47|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_TRQSPD_Precharging : 46|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SME_TRQSPD_Speed : 0|16@1+ (1,0) [-32768|32767] "RPM" Vector__XXX + SG_ SME_TRQSPD_MotorFlags : 48|16@1+ (1,0) [0|65535] "" Vector__XXX + SG_ SME_TRQSPD_Torque : 16|16@1- (1,0) [-32767|32767] "Q15" Vector__XXX + +BO_ 1666 SME_TPDO_Temperature: 8 SME + SG_ SME_TEMP_FaultLevel : 40|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ SME_TEMP_FaultCode : 32|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ SME_TEMP_DC_Bus_V : 16|16@1+ (0.1,0) [0|6553.5] "V" Vector__XXX + SG_ SME_TEMP_ControllerTemperature : 8|8@1+ (1,-40) [0|255] "C" Vector__XXX + SG_ SME_TEMP_MotorTemperature : 0|8@1+ (1,-40) [0|255] "C" Vector__XXX + SG_ SME_TEMP_BusCurrent : 48|16@1- (0.1,0) [-3276.8|3276.7] "A" Vector__XXX + +BO_ 392 ACC_TPDO_STATUS: 8 ACC + SG_ ACC_STATUS_BMS_FAULT : 0|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ ACC_STATUS_IMD_FAULT : 1|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ ACC_STATUS_SHUTDOWN_STATE : 2|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ ACC_STATUS_PRECHARGE_DONE : 3|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ ACC_STATUS_PRECHARGING : 4|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ ACC_STATUS_CELL_TOO_LOW : 8|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ ACC_STATUS_CELL_TOO_HIGH : 9|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ ACC_STATUS_TEMP_TOO_LOW : 10|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ ACC_STATUS_TEMP_TOO_HIGH : 11|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ ACC_STATUS_TEMP_TOO_HIGH_CRG : 12|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ ACC_STATUS_CHARGING : 5|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ ACC_STATUS_GLV_VOLTAGE : 16|16@1+ (1,0) [0|65.635] "mV" Vector__XXX + SG_ ACC_STATUS_CELL_FAULT_INDEX : 32|32@1+ (1,0) [0|0] "" Vector__XXX + SG_ ACC_STATUS_BALANCING : 13|1@1+ (1,0) [0|0] "" Vector__XXX + +BO_ 648 ACC_TPDO_POWER: 8 ACC + SG_ ACC_POWER_PACK_VOLTAGE : 0|16@1+ (0.01,0) [0|655.35] "V" Vector__XXX + SG_ ACC_POWER_SOC : 16|8@1+ (1,0) [0|255] "Percentage" Vector__XXX + SG_ ACC_POWER_CURRENT : 24|16@1- (0.1,0) [-3276.8|3276.7] "A" Vector__XXX + +BO_ 401 ACC_TPDO_SEG0_VOLTS: 6 ACC + SG_ ACC_SEG0_VOLTS_CELL0 : 0|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG0_VOLTS_CELL1 : 8|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG0_VOLTS_CELL2 : 16|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG0_VOLTS_CELL3 : 24|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG0_VOLTS_CELL4 : 32|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG0_VOLTS_CELL5 : 40|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + +BO_ 657 ACC_TPDO_SEG0_TEMPS: 6 ACC + SG_ ACC_SEG0_TEMPS_CELL0 : 0|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG0_TEMPS_CELL1 : 8|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG0_TEMPS_CELL2 : 16|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG0_TEMPS_CELL3 : 24|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG0_TEMPS_CELL4 : 32|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG0_TEMPS_CELL5 : 40|8@1- (1,0) [-128|127] "C" Vector__XXX + +BO_ 402 ACC_TPDO_SEG1_VOLTS: 6 ACC + SG_ ACC_SEG1_VOLTS_CELL0 : 0|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG1_VOLTS_CELL1 : 8|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG1_VOLTS_CELL2 : 16|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG1_VOLTS_CELL3 : 24|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG1_VOLTS_CELL4 : 32|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG1_VOLTS_CELL5 : 40|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + +BO_ 658 ACC_TPDO_SEG1_TEMPS: 6 ACC + SG_ ACC_SEG1_TEMPS_CELL0 : 0|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG1_TEMPS_CELL1 : 8|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG1_TEMPS_CELL2 : 16|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG1_TEMPS_CELL3 : 24|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG1_TEMPS_CELL4 : 32|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG1_TEMPS_CELL5 : 40|8@1- (1,0) [-128|127] "C" Vector__XXX + +BO_ 403 ACC_TPDO_SEG2_VOLTS: 6 ACC + SG_ ACC_SEG2_VOLTS_CELL0 : 0|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG2_VOLTS_CELL1 : 8|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG2_VOLTS_CELL2 : 16|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG2_VOLTS_CELL3 : 24|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG2_VOLTS_CELL4 : 32|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG2_VOLTS_CELL5 : 40|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + +BO_ 659 ACC_TPDO_SEG2_TEMPS: 6 ACC + SG_ ACC_SEG2_TEMPS_CELL0 : 0|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG2_TEMPS_CELL1 : 8|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG2_TEMPS_CELL2 : 16|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG2_TEMPS_CELL3 : 24|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG2_TEMPS_CELL4 : 32|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG2_TEMPS_CELL5 : 40|8@1- (1,0) [-128|127] "C" Vector__XXX + +BO_ 404 ACC_TPDO_SEG3_VOLTS: 6 ACC + SG_ ACC_SEG3_VOLTS_CELL0 : 0|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG3_VOLTS_CELL1 : 8|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG3_VOLTS_CELL2 : 16|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG3_VOLTS_CELL3 : 24|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG3_VOLTS_CELL4 : 32|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG3_VOLTS_CELL5 : 40|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + +BO_ 660 ACC_TPDO_SEG3_TEMPS: 6 ACC + SG_ ACC_SEG3_TEMPS_CELL0 : 0|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG3_TEMPS_CELL1 : 8|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG3_TEMPS_CELL2 : 16|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG3_TEMPS_CELL3 : 24|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG3_TEMPS_CELL4 : 32|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG3_TEMPS_CELL5 : 40|8@1- (1,0) [-128|127] "C" Vector__XXX + +BO_ 405 ACC_TPDO_SEG4_VOLTS: 6 ACC + SG_ ACC_SEG4_VOLTS_CELL0 : 0|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG4_VOLTS_CELL1 : 8|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG4_VOLTS_CELL2 : 16|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG4_VOLTS_CELL3 : 24|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG4_VOLTS_CELL4 : 32|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + SG_ ACC_SEG4_VOLTS_CELL5 : 40|8@1+ (0.01,2) [2|4.55] "V" Vector__XXX + +BO_ 661 ACC_TPDO_SEG4_TEMPS: 6 ACC + SG_ ACC_SEG4_TEMPS_CELL0 : 0|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG4_TEMPS_CELL1 : 8|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG4_TEMPS_CELL2 : 16|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG4_TEMPS_CELL3 : 24|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG4_TEMPS_CELL4 : 32|8@1- (1,0) [-128|127] "C" Vector__XXX + SG_ ACC_SEG4_TEMPS_CELL5 : 40|8@1- (1,0) [-128|127] "C" Vector__XXX + +BO_ 2148139008 VDM_GPS_LAT_LONG: 8 VDM + SG_ VDM_GPS_Latitude : 7|32@0- (1,0) [0|0] "deg" Vector__XXX + SG_ VDM_GPS_Longitude : 39|32@0- (1,0) [0|0] "deg" Vector__XXX + +BO_ 2148139009 VDM_GPS_DATA: 8 VDM + SG_ VDM_GPS_SPEED : 7|16@0+ (0.01,0) [0|0] "mph" Vector__XXX + SG_ VDM_GPS_ALTITUDE : 23|16@0- (1,0) [0|0] "ft" Vector__XXX + SG_ VDM_GPS_TRUE_COURSE : 39|16@0+ (0.01,0) [0|0] "deg" Vector__XXX + SG_ VDM_GPS_SATELLITES_IN_USE : 55|8@0+ (1,0) [0|0] "" Vector__XXX + SG_ VDM_GPS_VALID1 : 63|8@0+ (1,0) [0|0] "" Vector__XXX + +BO_ 2148139010 VDM_DATE_TIME: 8 VDM + SG_ VDM_GPS_VALID2 : 7|8@0+ (1,0) [0|0] "" Vector__XXX + SG_ VDM_UTC_DATE_YEAR : 15|8@0+ (1,0) [0|0] "years" Vector__XXX + SG_ VDM_UTC_DATE_MONTH : 23|8@0+ (1,0) [0|0] "months" Vector__XXX + SG_ VDM_UTC_DATE_DAY : 31|8@0+ (1,0) [0|0] "days" Vector__XXX + SG_ VDM_UTC_TIME_HOURS : 47|8@0+ (1,0) [0|0] "hours" Vector__XXX + SG_ VDM_UTC_TIME_MINUTES : 55|8@0+ (1,0) [0|0] "minutes" Vector__XXX + SG_ VDM_UTC_TIME_SECONDS : 63|8@0+ (1,0) [0|0] "seconds" Vector__XXX + +BO_ 2148139011 VDM_ACCELERATION: 8 VDM + SG_ VDM_X_AXIS_ACCELERATION : 7|16@0- (0.000244141,0) [0|0] "gs" Vector__XXX + SG_ VDM_Y_AXIS_ACCELERATION : 23|16@0- (0.000244141,0) [0|0] "gs" Vector__XXX + SG_ VDM_Z_AXIS_ACCELERATION : 39|16@0- (0.000244141,0) [0|0] "gs" Vector__XXX + +BO_ 2148139012 VDM_YAW_RATE: 8 VDM + SG_ VDM_X_AXIS_YAW_RATE : 7|16@0- (0.0152588,0) [0|0] "deg/s" Vector__XXX + SG_ VDM_Y_AXIS_YAW_RATE : 23|16@0- (0.0152588,0) [0|0] "deg/s" Vector__XXX + SG_ VDM_Z_AXIS_YAW_RATE : 39|16@0- (0.0152588,0) [0|0] "deg/s" Vector__XXX + +BO_ 393 ETC_TPDO_STATUS: 8 ETC + SG_ ETC_STATUS_HE1 : 0|16@1+ (1,0) [0|65535] "mV" Vector__XXX + SG_ ETC_STATUS_HE2 : 16|16@1+ (1,0) [0|65535] "mV" Vector__XXX + SG_ ETC_STATUS_BRAKE_SENSE_VOLTAGE : 32|16@1+ (1,0) [0|65535] "mV" Vector__XXX + SG_ ETC_STATUS_RTD_BUTTON : 56|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ ETC_STATUS_RTDS : 57|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ ETC_STATUS_REVERSE : 58|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ ETC_STATUS_BRAKELIGHT : 59|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ ETC_STATUS_PEDAL_TRAVEL : 48|8@1+ (1,0) [0|100] "%" Vector__XXX + SG_ ETC_STATUS_RTD : 60|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ ETC_STATUS_IMPLAUSIBILITY : 61|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ ETC_STATUS_TS_ACTIVE : 62|1@1+ (1,0) [0|0] "" Vector__XXX + +BO_ 410 PDB_TPDO_POWER_A: 8 PDB + SG_ PDB_POWER_A_GLV_VOLTAGE : 0|16@1+ (1,0) [0|65535] "mV" Vector__XXX + SG_ PDB_POWER_A_CURRENT_SHUTDOWN : 16|8@1+ (1,0) [0|255] "lsb" Vector__XXX + SG_ PDB_POWER_A_CURRENT_ACC : 24|8@1+ (1,0) [0|255] "lsb" Vector__XXX + SG_ PDB_POWER_A_CURRENT_ETC : 32|8@1+ (1,0) [0|255] "lsb" Vector__XXX + SG_ PDB_POWER_A_CURRENT_BPS : 40|8@1+ (1,0) [0|255] "lsb" Vector__XXX + SG_ PDB_POWER_A_CURRENT_TRACTIVE : 48|8@1+ (1,0) [0|255] "lsb" Vector__XXX + SG_ PDB_POWER_A_CURRENT_BSPD : 56|8@1+ (1,0) [0|255] "lsb" Vector__XXX + +BO_ 666 PDB_TPDO_POWER_B: 8 PDB + SG_ PDB_POWER_B_CURRENT_TELEMETRY : 0|8@1+ (1,0) [0|255] "lsb" Vector__XXX + SG_ PDB_POWER_B_CURRENT_PDB : 8|8@1+ (1,0) [0|255] "lsb" Vector__XXX + SG_ PDB_POWER_B_CURRENT_DASH : 16|8@1+ (1,0) [0|255] "lsb" Vector__XXX + SG_ PDB_POWER_B_CURRENT_RTML : 24|8@1+ (1,0) [0|255] "lsb" Vector__XXX + SG_ PDB_POWER_B_CURRENT_EXTRA_1 : 32|8@1+ (1,0) [0|255] "lsb" Vector__XXX + SG_ PDB_POWER_B_CURRENT_EXTRA_2 : 40|8@1+ (1,0) [0|255] "lsb" Vector__XXX + +BO_ 416 TMAIN_TPDO_DATA: 8 TMAIN + SG_ TMAIN_DATA_BRAKES_F : 0|16@1+ (0.1,0) [0|0] "psi" Vector__XXX + SG_ TMAIN_DATA_BRAKES_R : 16|16@1+ (0.1,0) [0|0] "psi" Vector__XXX + +BO_ 418 TPERIPH_FL_TPDO_DATA: 7 TPERIPH_FL + SG_ TPERIPH_FL_DATA_WHEELSPEED : 0|16@1- (0.1,0) [0|0] "rpm" Vector__XXX + SG_ TPERIPH_FL_DATA_SUSTRAVEL : 16|16@1+ (0.01,0) [0|655.35] "mm" Vector__XXX + SG_ TPERIPH_FL_DATA_STRAIN : 32|16@1- (1e-07,0) [0|0] "%" Vector__XXX + SG_ TPERIPH_FL_DATA_SIDE_TIRE_TEMP : 48|8@1+ (1,0) [0|255] "C" Vector__XXX + +BO_ 419 TPERIPH_FR_TPDO_DATA: 7 TPERIPH_FR + SG_ TPERIPH_FR_DATA_WHEELSPEED : 0|16@1- (0.1,0) [0|0] "rpm" Vector__XXX + SG_ TPERIPH_FR_DATA_SUSTRAVEL : 16|16@1+ (0.01,0) [0|655.35] "mm" Vector__XXX + SG_ TPERIPH_FR_DATA_STRAIN : 32|16@1- (1e-07,0) [0|0] "%" Vector__XXX + SG_ TPERIPH_FR_DATA_SIDE_TIRE_TEMP : 48|8@1+ (1,0) [0|255] "C" Vector__XXX + +BO_ 420 TPERIPH_BL_TPDO_DATA: 7 TPERIPH_BL + SG_ TPERIPH_BL_DATA_WHEELSPEED : 0|16@1- (0.1,0) [0|0] "rpm" Vector__XXX + SG_ TPERIPH_BL_DATA_SUSTRAVEL : 16|16@1+ (0.01,0) [0|655.35] "mm" Vector__XXX + SG_ TPERIPH_BL_DATA_STRAIN : 32|16@1- (1e-07,0) [0|0] "%" Vector__XXX + SG_ TPERIPH_BL_DATA_SIDE_TIRE_TEMP : 48|8@1+ (1,0) [0|255] "C" Vector__XXX + +BO_ 421 TPERIPH_BR_TPDO_DATA: 7 TPERIPH_BR + SG_ TPERIPH_BR_DATA_WHEELSPEED : 0|16@1- (0.1,0) [0|0] "rpm" Vector__XXX + SG_ TPERIPH_BR_DATA_SUSTRAVEL : 16|16@1+ (0.01,0) [0|655.35] "mm" Vector__XXX + SG_ TPERIPH_BR_DATA_STRAIN : 32|16@1- (1e-07,0) [0|0] "%" Vector__XXX + SG_ TPERIPH_BR_DATA_SIDE_TIRE_TEMP : 48|8@1+ (1,0) [0|255] "C" Vector__XXX + +BO_ 673 TPERIPH_FL_TPDO_TIRETEMP: 8 TPERIPH_FL + SG_ TPERIPH_FL_TIRETEMP_1 : 0|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_FL_TIRETEMP_2 : 8|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_FL_TIRETEMP_3 : 16|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_FL_TIRETEMP_4 : 24|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_FL_TIRETEMP_5 : 32|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_FL_TIRETEMP_6 : 40|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_FL_TIRETEMP_7 : 48|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_FL_TIRETEMP_8 : 56|8@1+ (1,0) [0|0] "C" Vector__XXX + +BO_ 674 TPERIPH_FR_TPDO_TIRETEMP: 8 TPERIPH_FR + SG_ TPERIPH_FR_TIRETEMP_1 : 0|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_FR_TIRETEMP_2 : 8|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_FR_TIRETEMP_3 : 16|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_FR_TIRETEMP_4 : 24|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_FR_TIRETEMP_5 : 32|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_FR_TIRETEMP_6 : 40|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_FR_TIRETEMP_7 : 48|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_FR_TIRETEMP_8 : 56|8@1+ (1,0) [0|0] "C" Vector__XXX + +BO_ 675 TPERIPH_BL_TPDO_TIRETEMP: 8 TPERIPH_BL + SG_ TPERIPH_BL_TIRETEMP_1 : 0|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_BL_TIRETEMP_2 : 8|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_BL_TIRETEMP_3 : 16|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_BL_TIRETEMP_4 : 24|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_BL_TIRETEMP_5 : 32|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_BL_TIRETEMP_6 : 40|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_BL_TIRETEMP_7 : 48|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_BL_TIRETEMP_8 : 56|8@1+ (1,0) [0|0] "C" Vector__XXX + +BO_ 676 TPERIPH_BR_TPDO_TIRETEMP: 8 TPERIPH_BR + SG_ TPERIPH_BR_TIRETEMP_1 : 0|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_BR_TIRETEMP_2 : 8|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_BR_TIRETEMP_3 : 16|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_BR_TIRETEMP_4 : 24|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_BR_TIRETEMP_5 : 32|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_BR_TIRETEMP_6 : 40|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_BR_TIRETEMP_7 : 48|8@1+ (1,0) [0|0] "C" Vector__XXX + SG_ TPERIPH_BR_TIRETEMP_8 : 56|8@1+ (1,0) [0|0] "C" Vector__XXX + +BO_ 2021 LSS_COMMAND: 8 CHARGER_BOARD + SG_ COMMAND_MODE : 8|8@1+ (1,0) [0|0] "" Vector__XXX + SG_ COMMAND_COMMAND_SPECIFIER : 0|8@1+ (1,0) [0|0] "" Vector__XXX + +BO_ 2020 LSS_RESPONSE: 8 SMPC + SG_ RESPONSE_COMMAND_SPECIFIER : 0|8@1+ (1,0) [0|0] "" Vector__XXX + +BO_ 518 SMPC_RPDO_CONTROL: 8 CHARGER_BOARD + SG_ SMPC_CONTROL_PACK_VOLTAGE : 16|32@1+ (1,0) [0|65535] "mV" Vector__XXX + SG_ SMPC_CONTROL_DEST_NODE_ID : 0|8@1+ (1,0) [0|0] "" Vector__XXX + SG_ SMPC_CONTROL_ENABLE : 9|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ SMPC_CONTROL_CURRENT_10X_MULT : 11|1@1+ (1,0) [0|0] "" Vector__XXX + SG_ SMPC_CONTROL_EVSE_OVERRIDE : 13|1@1+ (1,0) [0|0] "" Vector__XXX + +BO_ 774 SMPC_RPDO_MAX_VOLTAGE_CURRENT: 8 CHARGER_BOARD + SG_ SMPC_MAX_DEST_NODE_ID : 0|8@1+ (1,0) [0|0] "" Vector__XXX + SG_ SMPC_MAX_CHRG_VOLTAGE : 8|32@1+ (1,0) [0|0] "mV" Vector__XXX + SG_ SMPC_MAX_CHRG_CURRENT : 40|16@1+ (1,0) [0|0] "mA" Vector__XXX + SG_ SMPC_MAX_INPUT_EVSE_OVERRIDE : 56|8@1+ (1,0) [0|255] "A" Vector__XXX + +BO_ 400 SMPC_TPDO_STATUS: 8 SMPC + SG_ SMPC_STATUS_CURRENT_MA : 48|16@1+ (1,0) [0|65535] "mA" Vector__XXX + SG_ SMPC_STATUS_VOLTAGE_MV : 16|32@1+ (1,0) [0|2704] "mV" Vector__XXX + SG_ SMPC_STATUS_J1772_DISCONN : 13|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SMPC_STATUS_REQUEST_EXCLUSIVE : 12|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SMPC_STATUS_CHARGER_UNPLUGGED : 8|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SMPC_STATUS_CHARGING : 7|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SMPC_STATUS_INTERNAL_FAULT : 6|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SMPC_STATUS_UNDERVOLTAGE_FAULT : 5|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SMPC_STATUS_OVERVOLTAGE_FAULT : 4|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SMPC_STATUS_OVERCURRENT_FAULT : 3|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SMPC_STATUS_OVERTEMP_FAULT : 2|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SMPC_STATUS_CHARGE_COMPLETE : 1|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SMPC_STATUS_READY : 0|1@1+ (1,0) [0|1] "" Vector__XXX + +BO_ 656 SMPC_TPDO_MAX_VOLTAGE_CURRENT: 8 SMPC + SG_ SMPC_MAX2_INPUT_CURR_LIM : 56|8@1+ (1,0) [0|255] "A" Vector__XXX + SG_ SMPC_MAX2_EVSE_CURRENT : 48|8@1+ (1,0) [0|255] "A" Vector__XXX + SG_ SMPC_MAX2_MAX_CURRENT_MA : 32|16@1+ (1,0) [0|65535] "mA" Vector__XXX + SG_ SMPC_MAX2_MAX_VOLTAGE_MV : 0|32@1+ (1,0) [0|2704] "mV" Vector__XXX + +BO_ 912 SMPC_TPDO_INPUT_AC: 8 SMPC + SG_ SMPC_INPUT_MAX_CHARGER_TEMP_C : 40|8@1+ (1,-50) [-50|205] "C" Vector__XXX + SG_ SMPC_INPUT_AC_INPUT_FREQUENCY_HZ : 32|8@1+ (1,0) [0|255] "HZ" Vector__XXX + SG_ SMPC_INPUT_AC_INPUT_CURRENT_MA : 16|16@1+ (1,0) [0|65535] "mA" Vector__XXX + SG_ SMPC_INPUT_J1772_TRIGGERED : 10|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SMPC_INPUT_J1772_DISCONNECTED : 9|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SMPC_INPUT_J1772_CONNECTED : 8|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SMPC_INPUT_AC_INPUT_VOLTAGE : 0|8@1+ (1,0) [0|255] "Vac" Vector__XXX + +BO_ 1168 SMPC_TPDO_SERIAL_PART_NUM: 8 SMPC + SG_ SMPC_SER_FIRMWARE_VER : 48|16@1+ (1,0) [0|65535] "" Vector__XXX + SG_ SMPC_SER_SERIAL_NUMBER : 16|32@1+ (1,0) [0|2704] "" Vector__XXX + SG_ SMPC_SER_PART_NUMBER : 0|16@1+ (1,0) [0|65535] "" Vector__XXX + +BO_ 1220 IZZE_BRAKETEMP_S1M1: 8 IZZE1 + SG_ IZZE_BRAKETEMP_S1_CH1 : 7|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX + SG_ IZZE_BRAKETEMP_S1_CH2 : 23|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX + SG_ IZZE_BRAKETEMP_S1_CH3 : 39|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX + SG_ IZZE_BRAKETEMP_S1_CH4 : 55|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX + +BO_ 1221 IZZE_BRAKETEMP_S1M2: 8 IZZE1 + SG_ IZZE_BRAKETEMP_S1_CH5 : 7|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX + SG_ IZZE_BRAKETEMP_S1_CH6 : 23|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX + SG_ IZZE_BRAKETEMP_S1_CH7 : 39|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX + SG_ IZZE_BRAKETEMP_S1_CH8 : 55|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX + +BO_ 1222 IZZE_BRAKETEMP_S1M3: 8 IZZE1 + SG_ IZZE_BRAKETEMP_S1_CH9 : 7|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX + SG_ IZZE_BRAKETEMP_S1_CH10 : 23|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX + SG_ IZZE_BRAKETEMP_S1_CH11 : 39|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX + SG_ IZZE_BRAKETEMP_S1_CH12 : 55|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX + +BO_ 1223 IZZE_BRAKETEMP_S1M4: 8 IZZE1 + SG_ IZZE_BRAKETEMP_S1_CH13 : 7|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX + SG_ IZZE_BRAKETEMP_S1_CH14 : 23|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX + SG_ IZZE_BRAKETEMP_S1_CH15 : 39|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX + SG_ IZZE_BRAKETEMP_S1_CH16 : 55|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX + +BO_ 1224 IZZE_BRAKETEMP_S1M5: 8 IZZE1 + SG_ IZZE_BRAKETEMP_S1_STEMP : 55|16@0+ (0.1,-100) [-100|6453] "C" Vector__XXX + + + +CM_ SG_ 2148139008 VDM_GPS_Latitude "Float32"; +CM_ SG_ 2148139008 VDM_GPS_Longitude "Float32"; +BA_DEF_ "BusType" STRING ; +BA_DEF_ BO_ "GenMsgBackgroundColor" STRING ; +BA_DEF_ BO_ "GenMsgForegroundColor" STRING ; +BA_DEF_DEF_ "BusType" "CAN"; +BA_DEF_DEF_ "GenMsgBackgroundColor" "#c8c8c8"; +BA_DEF_DEF_ "GenMsgForegroundColor" "#000000"; + diff --git a/Telemetry-Main/CANProtocol.hpp b/Telemetry-Main/CANProtocol.hpp index 5b3bf2fb..ca9b1adb 100644 --- a/Telemetry-Main/CANProtocol.hpp +++ b/Telemetry-Main/CANProtocol.hpp @@ -128,14 +128,14 @@ struct PDB_POWER_B_t { }; struct SME_THROTTLE_DEMAND_t { - uint16_t TORQUE_DEMAND; // bits 0-15 - uint16_t MAX_SPEED; // bits 16-31 - uint8_t FORWARD : 1; // bit 32 - uint8_t REVERSE : 1; // bit 33 - uint8_t padding_34 : 1; // bit 34 (used for alignment) - uint8_t POWER_READY : 1; // bit 35 - uint8_t padding2 : 4; // bits 36-39 - uint8_t MBB_ALIVE: 4; // bits 40-43 + uint16_t TORQUE_DEMAND; // bits 0-15 + uint16_t MAX_SPEED; // bits 16-31 + uint8_t FORWARD : 1; // bit 32 + uint8_t REVERSE : 1; // bit 33 + uint8_t padding_34 : 1; // bit 34 (used for alignment) + uint8_t POWER_READY : 1; // bit 35 + uint8_t padding2 : 4; // bits 36-39 + uint8_t MBB_ALIVE: 4; // bits 40-43 }; struct SME_TRQSPD_t { @@ -199,13 +199,13 @@ struct TPERIPH_TIRETEMP_t { }; struct VDM_GPS_LAT_LONG_t { - int32_t LATITUDE; // bits 7-38 - int32_t LONGITUDE; // bits 39-50 + float LATITUDE; // bits 7-38 + float LONGITUDE; // bits 39-50 }; struct VDM_GPS_DATA_t { uint16_t SPEED; // bits 7-22 - int16_t ALTITUDE; // bits 23-38 + int16_t ALTITUDE; // bits 23-38 uint16_t TRUE_COURSE; // bits 39-54 uint8_t SATELLITES_IN_USE; // bits 55-62 uint8_t VALID1; // bits 63-70 @@ -216,21 +216,22 @@ struct VDM_DATE_TIME_t { uint8_t UTC_DATE_YEAR; // bits 15-22 uint8_t UTC_DATE_MONTH; // bits 23-30 uint8_t UTC_DATE_DAY; // bits 31-38 + uint8_t padding; // bits 39-46 uint8_t UTC_TIME_HOURS; // bits 47-54 uint8_t UTC_TIME_MINUTES; // bits 55-62 uint8_t UTC_TIME_SECONDS; // bits 63-70 }; struct VDM_ACCELERATION_t { - int16_t X; // bits 7-22 - int16_t Y; // bits 23-38 - int16_t Z; // bits 39-54 + int16_t X; // bits 7-22 + int16_t Y; // bits 23-38 + int16_t Z; // bits 39-54 }; struct VDM_YAW_RATE_t { - int16_t X; // bits 7-22 - int16_t Y; // bits 23-38 - int16_t Z; // bits 39-54 + int16_t X; // bits 7-22 + int16_t Y; // bits 23-38 + int16_t Z; // bits 39-54 }; #endif // CANPROTOCOL_HPP diff --git a/Telemetry-Main/CMakeLists.txt b/Telemetry-Main/CMakeLists.txt index 41de1f67..1135dbf0 100644 --- a/Telemetry-Main/CMakeLists.txt +++ b/Telemetry-Main/CMakeLists.txt @@ -23,6 +23,6 @@ add_library(fsdaq STATIC ./fsdaq/data_logger.cpp) # ./fsdaq/can_processor_genera target_include_directories(fsdaq PUBLIC ./fsdaq) target_link_libraries(fsdaq mbed-core-flags mbed-storage-sd mbed-storage-fat libradio) -add_executable(${PROJECT_NAME} main.cpp VehicleStateManager.cpp) +add_executable(${PROJECT_NAME} main.cpp VehicleStateManager.cpp LapCounter.cpp) target_link_libraries(${PROJECT_NAME} mbed-os dash fsdaq libradio mbed-storage-sd mbed-storage-fat) mbed_set_post_build(${PROJECT_NAME}) diff --git a/Telemetry-Main/LapCounter.cpp b/Telemetry-Main/LapCounter.cpp new file mode 100644 index 00000000..c3387830 --- /dev/null +++ b/Telemetry-Main/LapCounter.cpp @@ -0,0 +1,94 @@ +#include + +#include "LapCounter.hpp" + +#define DEG_TO_RAD ((float) M_PI / 180.0f) + +#define EARTH_RADIUS 6378137 // earths radius in meters, used for conversion to local coordinate plane +#define X_TOLERANCE 8.0f // check lap completion if x is within +- X_TOLERANCE meters of home x coord +#define Y_TOLERANCE 8.0f // check lap completion if y is within +- Y_TOLERANCE meters of home y coord +#define HEADING_TOLERANCE 80.0f // check lap completion if heading is within +- HEADING_TOLERANCE degrees of home +#define MIN_LAP_TIME 10 // minimum lap time in seconds. used to ensure same lap isn't counted twice + +using namespace std; + +LapCounter::LapCounter(VehicleState state) { + resetLapCounter(state); +} + +void LapCounter::resetLapCounter(VehicleState state) { + data.lap_home_latitude_f = state.vdmGpsLatLong.LATITUDE; + data.lap_home_longitude_f = state.vdmGpsLatLong.LONGITUDE; + data.lap_home_x_f = 0.0f; + data.lap_home_y_f = 0.0f; + data.lap_home_heading_f = (float) (state.vdmGpsData.TRUE_COURSE % 36000) * 0.01f; //scale to 0-359.99 + + data.lap_prev_latitude_f = 0.0f; + data.lap_prev_longitude_f = 0.0f; + data.lap_prev_x_f = 0.0f; + data.lap_prev_y_f = 0.0f; + data.lap_prev_heading_f = 0.0f; + + data.lap_curr_latitude_f = data.lap_home_latitude_f; + data.lap_curr_longitude_f = data.lap_home_longitude_f; + data.lap_curr_x_f = data.lap_home_x_f; + data.lap_curr_y_f = data.lap_home_y_f; + data.lap_curr_heading_f = data.lap_home_heading_f; + + data.lap_counter = 0; + + timer.reset(); + timer.start(); +} + +void LapCounter::updateLapCounter(VehicleState state) { + /** + * UPDATE POSITION + */ + // Get prev data, weighted avg to average out noise + data.lap_prev_latitude_f = 0.1f * data.lap_prev_latitude_f + 0.9f * data.lap_curr_latitude_f; + data.lap_prev_longitude_f = 0.1f * data.lap_prev_longitude_f + 0.9f * data.lap_curr_longitude_f; + data.lap_prev_x_f = 0.1f * data.lap_prev_x_f + 0.9f * data.lap_curr_x_f; + data.lap_prev_y_f = 0.1f * data.lap_prev_y_f + 0.9f * data.lap_curr_y_f; + data.lap_prev_heading_f = 0.1f * data.lap_prev_heading_f + 0.9f * data.lap_curr_heading_f; + + // Get curr data, transform to local coordinate plane + data.lap_curr_latitude_f = state.vdmGpsLatLong.LATITUDE; + data.lap_curr_longitude_f = state.vdmGpsLatLong.LONGITUDE; + data.lap_curr_x_f = EARTH_RADIUS * DEG_TO_RAD * (data.lap_curr_longitude_f - data.lap_home_longitude_f) * cosf(DEG_TO_RAD * data.lap_home_latitude_f); // lat, long is degrees -> translate to rad + data.lap_curr_y_f = EARTH_RADIUS * DEG_TO_RAD * (data.lap_curr_latitude_f - data.lap_home_latitude_f); + data.lap_curr_heading_f = (float) (state.vdmGpsData.TRUE_COURSE % 36000) * 0.01f; //scale to 0-359.99 + + // TRANSFORM: Apply rotation matrix, home heading is x axis. + float home_heading_rad_f = DEG_TO_RAD * data.lap_home_heading_f; // convert to rad for trig funcs + float temp_x_f = data.lap_curr_x_f * cosf(home_heading_rad_f) + data.lap_curr_y_f * sinf(home_heading_rad_f); + float temp_y_f = data.lap_curr_x_f * -sinf(home_heading_rad_f) + data.lap_curr_y_f * cosf(home_heading_rad_f); + data.lap_curr_x_f = temp_x_f; + data.lap_curr_y_f = temp_y_f; + + /** + * CHECK IF LAP COMPLETED + */ + // If nowhere near home coords/heading, return immediately + if (abs(data.lap_curr_x_f - data.lap_home_x_f) > X_TOLERANCE) return; + if (abs(data.lap_curr_y_f - data.lap_home_y_f) > Y_TOLERANCE) return; + if (abs(data.lap_curr_heading_f - data.lap_home_heading_f) > HEADING_TOLERANCE) return; + if (timer.elapsed_time().count() < MIN_LAP_TIME) { + timer.reset(); + timer.start(); + + return; + } + + // Lap has been completed, all conditions pass + data.lap_counter++; + data.lap_time = std::chrono::duration{timer.elapsed_time()}.count(); + + timer.reset(); + timer.start(); + return; +} + +float LapCounter::getTime() { + return std::chrono::duration{timer.elapsed_time()}.count(); +} diff --git a/Telemetry-Main/LapCounter.hpp b/Telemetry-Main/LapCounter.hpp new file mode 100644 index 00000000..0421326a --- /dev/null +++ b/Telemetry-Main/LapCounter.hpp @@ -0,0 +1,64 @@ +/** + * Lap Counter + * Author: Nicholas Tang + * + * Made to separate lap counting from VSM. Uses VSM GPS and HEADING/TRUE_COURSE + * data. Make sure to call updateLapCounter a lot. + * + * Note: "local coordinate plane" is defined as: nose towards positive x, positive y is left i think + */ + +#ifndef LAP_COUNTER_HPP +#define LAP_COUNTER_HPP + +#include "CANProtocol.hpp" +#include "VehicleStateManager.hpp" +#include "mbed.h" + +struct LapCounterData { + float lap_home_latitude_f; + float lap_home_longitude_f; + float lap_home_x_f; // relative to local coordinate plane + float lap_home_y_f; // relative to local coordinate plane + float lap_home_heading_f; + + float lap_prev_latitude_f; + float lap_prev_longitude_f; + float lap_prev_x_f; // relative to local coordinate plane + float lap_prev_y_f; // relative to local coordinate plane + float lap_prev_heading_f; + + float lap_curr_latitude_f; + float lap_curr_longitude_f; + float lap_curr_x_f; // relative to local coordinate plane + float lap_curr_y_f; // relative to local coordinate plane + float lap_curr_heading_f; + + uint8_t lap_counter; // MARK: surely we don't do more than 255 laps(?) + float lap_time; +}; + +class LapCounter { + public: + LapCounterData data; + Timer timer; + + /** + * Constructor, initializes all fields to 0 but lat/long + */ + LapCounter(VehicleState state); + /** + * Resets object field. GPS data is set to wherever is in vehicle state + */ + void resetLapCounter(VehicleState state); + /** + * Checks if a lap has been completed. If so, increments lap counter + */ + void updateLapCounter(VehicleState state); + /** + * Gets the lap time in seconds. + */ + float getTime(); +}; + +#endif diff --git a/Telemetry-Main/VehicleStateManager.cpp b/Telemetry-Main/VehicleStateManager.cpp index a69442e7..6866af9c 100644 --- a/Telemetry-Main/VehicleStateManager.cpp +++ b/Telemetry-Main/VehicleStateManager.cpp @@ -1,5 +1,7 @@ #include "VehicleStateManager.hpp" #include +#include +#include #include #include #include @@ -16,14 +18,11 @@ VehicleStateManager::VehicleStateManager( ) : _mbedCAN(mbedCAN), _steering_sensor(steering_sensor), _brake_sensor_f(brake_sensor_r), _brake_sensor_r(brake_sensor_r) { _vehicleState = {}; - - strcpy(_lapTime, "0:00.000"); } void VehicleStateManager::update() { // printf("Updating CAN\n"); processCANMessage(); - updateLapTime(); readSensorValues(); } @@ -198,25 +197,6 @@ void VehicleStateManager::processCANMessage() { } } -void VehicleStateManager::updateLapTime() { - uint32_t milliseconds = std::chrono::duration_cast(_lapTimer.elapsed_time()).count(); - uint32_t minutes = milliseconds / 60000; - uint32_t seconds = (milliseconds % 60000) / 1000; - uint32_t ms = milliseconds % 1000; - - snprintf(_lapTime, sizeof(_lapTime), "%lu:%02lu.%03lu", - (unsigned long)minutes, (unsigned long)seconds, (unsigned long)ms); -} - -void VehicleStateManager::startLapTimer() { - _lapTimer.reset(); - _lapTimer.start(); -} - -const char* VehicleStateManager::getLapTime() const { - return _lapTime; -} - VehicleState VehicleStateManager::getState() const { return _vehicleState; } diff --git a/Telemetry-Main/VehicleStateManager.hpp b/Telemetry-Main/VehicleStateManager.hpp index bacd67c7..b95490d4 100644 --- a/Telemetry-Main/VehicleStateManager.hpp +++ b/Telemetry-Main/VehicleStateManager.hpp @@ -40,7 +40,6 @@ struct VehicleState { float steering_sensor; float brake_sensor_f; float brake_sensor_r; - }; class VehicleStateManager { @@ -55,8 +54,6 @@ class VehicleStateManager { VehicleState getState() const; void update(); - void startLapTimer(); - const char* getLapTime() const; private: MbedCAN* _mbedCAN; @@ -66,11 +63,7 @@ class VehicleStateManager { VehicleState _vehicleState; - char _lapTime[16]; - Timer _lapTimer; - void processCANMessage(); - void updateLapTime(); void readSensorValues(); };