package handlers_test

import (
	"context"
	"net/http"
	"net/http/httptest"
	"otaupdate/handlers"
	"otaupdate/services"
	"testing"

	"github.com/fiskerinc/cloud-services/pkg/clickhouse"
	"github.com/fiskerinc/cloud-services/pkg/common"
	"github.com/julienschmidt/httprouter"
	"github.com/stretchr/testify/assert"
)

func TestHandleCANSignalGetList(t *testing.T) {
	validQuery := "?timestamp_start=1675111000&timestamp_end=1675733172&vin=1G1FP87S1GN000445&limit=1000&can_signals=BCM_FrntDrDoorLockSts,BCM_TotMilg_ODO"
	validQuerySelectAll := "?timestamp_start=1675111000&timestamp_end=1675733172&vin=1G1FP87S1GN000445&limit=1000&select_all=true"
	invalidQuery := "?timestamp_start=1675111000&timestamp_end=1675733172&vin=1G1FP87S1GN000445&limit=1000&select_all=false"
	validVin := "1G1FP87S1GN000445"
	tests := map[string]struct {
		q         string
		conn      clickhouse.ConnInterface
		expStatus int
		expBody   string
	}{
		"correct": {
			q:         validQuery,
			conn:      &clickhouse.MockConn{},
			expStatus: http.StatusOK,
			expBody: `VIN,Timestamp,BCM_FrntDrDoorLockSts,BCM_TotMilg_ODO
`,
		},
		"correct select all": {
			q:         validQuerySelectAll,
			conn:      &clickhouse.MockConn{ExpectedResult: canSignalList},
			expStatus: http.StatusOK,
			expBody: `VIN,Timestamp,ACU_AirBagSysAlrmLampSts,ACU_Crash_cfm,ACU_Drvr_Occpt_St,ACU_FrntCrashOutpSts,ACU_LeSideCrashOutpSts,ACU_Pass_OCS_St,ACU_RearCrashOutpSts,ACU_RiSideCrashOutpSts,ACU_RollovrCrashOutpSts,ADAS_AEB_ActvTyp,ADAS_AEB_DecelReq,ADAS_BSDSts,ADAS_BSD_CID_LeDispReq,ADAS_BSD_CID_RiDispReq,ADAS_ChimeReq,ADAS_DCAASts,ADAS_DOW_Sts,ADAS_DoorLockReq,ADAS_ELKASts,ADAS_ELKA_TelltaleReq,ADAS_ESA_TelltaleReq,ADAS_FACM_Sts,ADAS_FACM_TelltaleReq,ADAS_IDS_WarnTxtReq,ADAS_ISAOverSpeedWarning,ADAS_ISASts,ADAS_ISA_CutOffReq,ADAS_ISA_SpdLmt,ADAS_LKASts,ADAS_LatCtrl_Req,ADAS_LatCtrl_SteerAnReq,ADAS_LatCtrl_Sts,ADAS_LatCtrl_Typ,ADAS_LeMirrWarnReq,ADAS_LeMirrWarnSrc,ADAS_LgtCtrl_ESP_Sts,ADAS_ParkGearReq,ADAS_RiMirrWarnReq,ADAS_RiMirrWarnSrc,ADAS_Sts_TLR,ADAS_SysFltWarnReq,ADAS_TLR_WarnReq,ADAS_TSRSpeedLimit,ADAS_TSRSts,AEB_ReAEB_Sts,BCM_BrkLampOutpCmd,BCM_BrkLampSwtSts,BCM_BrkSwtSts,BCM_DoorUnlockSetFb,BCM_DrFrntDoorSts,BCM_DrvrDoorUnlckOutpCmd,BCM_FrntDrDoorLockSts,BCM_LeReDoorSts,BCM_LeSolaValr_RLS,BCM_LockAllDoorCmd,BCM_PasFrntDoorSts,BCM_PassDoorUnlckOutpCmd,BCM_PwrMod,BCM_PwrModVld,BCM_RiReDoorSts,BCM_RiSolaValr_RLS,BCM_SBRMatSt2ndRowLeft,BCM_SBRMatSt2ndRowMid,BCM_SBRMatSt2ndRowRight,BCM_TotMilg_ODO,BMS_ACChrgSoktOverTFlt,BMS_ACCrtFlt,BMS_ACRmngChrgTi,BMS_AccueChrgTotAh,BMS_AccueDchaTotAh,BMS_Bat_Actual_Pack_Capacity,BMS_Bat_Bus_measure_Temperature,BMS_Bat_C_MAXcurr_PLT,BMS_Bat_C_MAXcurr_PST,BMS_Bat_C_MAXcurr_PmLT,BMS_Bat_C_MaxPack_I,BMS_Bat_C_MaxPack_U,BMS_Bat_Coolant_in,BMS_Bat_Coolant_out,BMS_Bat_D_MAXcurr_PLT,BMS_Bat_D_MAXcurr_PST,BMS_Bat_D_MAXcurr_PmLT,BMS_Bat_D_MAXvolt_PST,BMS_Bat_D_MaxPack_I,BMS_Bat_D_MinCell_U,BMS_Bat_D_MinPack_U,BMS_Bat_HVMeasure_Current,BMS_Bat_HVMeasure_V_Pack,BMS_Bat_HVmeasure_Current,BMS_Bat_Hvmeasure_V_Pack,BMS_Bat_SOC_Real,BMS_Bat_SOH,BMS_Bat_SoC_usable,BMS_Bat_measure_Energy,BMS_BattAvrgT,BMS_BattBalActv,BMS_BattCellVoltUnbalAlrm,BMS_BattInlTDmd,BMS_BattInlT_Max,BMS_BattInlT_Min,BMS_BattInlT_Target,BMS_BattPack1OverVoltFlt,BMS_BattPack1UnderVoltFlt,BMS_BatteryGeneralStatus_OK,BMS_CL15_Sts,BMS_CL30C_Sts,BMS_CellDiffT,BMS_CellMaxT,BMS_CellMinT,BMS_CellMinTAlrm,BMS_CellVolt12,BMS_CellVolt120,BMS_Cell_Volt_max,BMS_Cell_Volt_min,BMS_Cell_Volt_nom,BMS_Cont_Act_St_HV_Neg,BMS_Cont_Act_St_HV_Pos,BMS_Cont_Act_St_HV_Prec,BMS_Cont_CurrentState_PV_Neg,BMS_Cont_CurrentState_PV_Pos,BMS_Cont_Error_Ch1_HV_Neg1,BMS_Cont_Error_Ch1_HV_PV_Neg1,BMS_Cont_Error_Ch1_HV_PV_Pos1,BMS_Cont_Error_Ch1_HV_Pos1,BMS_Cont_Error_Ch1_HV_Prec1,BMS_Cont_Error_DisCh1_HV_PV_Neg1,BMS_Cont_Error_DisCh1_HV_PV_Pos1,BMS_Cont_Error_DisCh1_HV_Pos1,BMS_Cont_Error_DisCh1_HV_Prec,BMS_DCChrgRmngTi,BMS_DCChrgSoktOverTFlt,BMS_DTC_status,BMS_ErrorActive_AbsChargeCurrent,BMS_ErrorActive_AbsChargePowerLi,BMS_ErrorActive_AbsDischargeCurr,BMS_ErrorActive_AbsDischargePowe,BMS_ErrorActive_CellOverVoltage,BMS_ErrorActive_CellTempHigh,BMS_ErrorActive_CellTempLow,BMS_ErrorActive_CellUnderVoltage,BMS_ErrorActive_CellVoltageDiffO,BMS_ErrorActive_ChargePowerLimit,BMS_ErrorActive_Diff_U1_UCellSum,BMS_ErrorActive_DischargePowerLi,BMS_ErrorActive_HV_OverVoltage,BMS_ErrorActive_HV_UnderVoltage,BMS_ErrorActive_Iso_Crit,BMS_ErrorActive_OverChargeCurren,BMS_ErrorActive_OverDischargeCur,BMS_ErrorActive_SOC_Low,BMS_ErrorActive_SOH_Low,BMS_ErrorWarning_ChargePowerLimi,BMS_ErrorWarning_DischargePowerL,BMS_ErrorWarning_OverChargeCurre,BMS_ErrorWarning_OverDischargeCu,BMS_ErrorWarning_SOH_Low,BMS_ErrorWarning_overcurrent_Pre,BMS_HVIL_OK,BMS_HV_ContactorsStatus_OK,BMS_HVlinkError_ContactorAuxFail,BMS_HVlinkError_ContactorGeneric,BMS_HVlinkError_ContactorOpen,BMS_HVlinkError_ContactorPwmEcon,BMS_HWerror_Cell_Temp_Sensor_Fai,BMS_HWerror_KL30_Voltage,BMS_LVPwrSplyFlt,BMS_OperationStates,BMS_PVIU_EnergyOverall,BMS_PVIU_F_12V_OVP,BMS_PVIU_F_12V_UVP,BMS_PVIU_F_CANRx_Timeout,BMS_PVIU_F_HVIL,BMS_PVIU_F_Input_OVP,BMS_PVIU_F_Input_UVP,BMS_PVIU_F_OTP,BMS_PVIU_F_Output_OCP,BMS_PVIU_F_Output_OVP,BMS_PVIU_F_Output_SCP,BMS_PVIU_F_Output_UVP,BMS_PVIU_FailSt,BMS_PVIU_ModeSt,BMS_PwrBattCellOverVolt,BMS_PwrBattCellOverVolt_FS,BMS_PwrBattCellVoltUnbal,BMS_PwrBattChrgDchaCrt1,BMS_PwrBattChrgDchaCrt2,BMS_PwrBattExtShoCirc,BMS_PwrBattHeatgMngDmd,BMS_PwrBattIntShoCirc,BMS_PwrBattMSDBreak,BMS_PwrBattNegGNDInsulR,BMS_PwrBattNegRlyAdh,BMS_PwrBattNegRlyBreak,BMS_PwrBattOverChrgAlrm,BMS_PwrBattOverT,BMS_PwrBattOverTAlrm,BMS_PwrBattPackNr,BMS_PwrBattPosGNDInsulR,BMS_PwrBattPosRlyAdh,BMS_PwrBattPosRlyBreak,BMS_PwrBattPrecRBreak,BMS_PwrBattPrecRlyAdh,BMS_PwrBattPrecRlyBreak,BMS_PwrBattPwrStsSOH,BMS_PwrBattRmngCpSOC,BMS_PwrBattTRiseFast,BMS_PwrBattTUnbal,BMS_PwrBattTyp,BMS_SDIL_Sts,BMS_Splr,BMS_StateMAchine_Status,BMS_SwVers,BMS_SwVersM,BMS_SwVersS,BMS_SystemError_HV_CCT_NoBatVolt,BMS_SystemError_HV_CCT_WrongPola,BMS_SystemError_HV_Fuse,BMS_SystemError_HV_Interlock,BMS_SystemError_KL30C,BMS_SystemError_OmmissionOfKL15,BMS_SystemError_Precharge,BMS_TotVoltOver,CIM_GearLvrCrtPosnInfo,CMRR_FL_WhlDrvDirSigInvld,CMRR_FL_WhlSpdSigInvld,CMRR_FR_WhlDrvDirSigInvld,CMRR_FR_WhlSpdSigInvld,CMRR_RL_WhlDrvDirSigInvld,CMRR_RL_WhlSpdSigInvld,CMRR_RR_WhlSpdSigInvld,DCDC_CrtSts,DCDC_InpCrt,DCDC_InpVolt,DCDC_LVOutpOverVoltFlt,DCDC_LVOutpUnderVoltFlt,DCDC_OutpCrt,DCDC_OutpVolt,DCDC_OverTTurnDwnLoadFlt,DCDC_T,DSMC_DrvrSeatT1,DSMC_DrvrSeatT2,EAS_CrtPwr,EAS_MotSpd,ECC_ACSts,ECC_AUTOSts,ECC_ActvGrilleAg,ECC_AirClnSts,ECC_BattFldLvlSnsrLamp,ECC_CircSts,ECC_CoolgFanSpdRatSts,ECC_CoolgFanSts,ECC_DchaT,ECC_DrvrAirOutlMod,ECC_DrvrTSetSts,ECC_EvaprT,ECC_FrntMotOutlT,ECC_HPTSnsrT,ECC_HeatPumpHeatgEXVSts,ECC_HeatSts,ECC_InsdT,ECC_LPTSnsrT,ECC_LeBlowFaceAirOutlT,ECC_LeBlowFootAirOutlT,ECC_MCUFCooltFlow,ECC_MCURCooltFlow,ECC_MCURInlT,ECC_MCURInlTSnsrFlt,ECC_OutdT,ECC_OutdTSnsrFlt,ECC_OutdTVld,ECC_PDUInlT,ECC_PDUInlTSnsrFlt,ECC_PassTSetSts,ECC_ReMotOutlT,ECC_RiBlowFaceAirOutlT,ECC_RiBlowFootAirOutlT,ECC_SYNCSts,ECC_SwVersM,ECC_SwVersS,ECC_TarGear_WTC_B,ECC_TarGear_WTC_H,ECC_TarPwrReq_WTC_B,ECC_TarPwrReq_WTC_H,ECC_TarSpdCmd_EAS,EPS_AbortFb,EPS_AdasLatCtrlSts,EPS_AdasLatCtrlStsVld,EPS_AsscMotCrtPwr,EPS_AsscMotCrtTq,EPS_ComLostFlt_ESP,EPS_DrvrIntvSteerWhlDetd,EPS_DrvrIntvSteerWhlVld,EPS_DrvrSteerTq,EPS_FltIndcn,EPS_MaxSftyTq,EPS_SpdDataErr,EPS_SteerAgSnsrCalSts,EPS_SteerWhlAgSig,EPS_TSnsrFlt,ESP_BrkFStsFlg,ESP_BrkLiReq,ESP_BrkOverTIndcn,ESP_BrkPadWearWarn,ESP_BrkPedlSts,ESP_BrkPedlStsVld,ESP_EmgyBrkLi,ESP_MstCylP,ESP_MstCylPOffs,ESP_NoBrkP,ESP_ParkBrkSt,ESP_SysSts_EPB,ESP_TotBrkTqReq,ESP_VLC_APCtrlSaturated,ESP_VehSpd,ESP_WhlMovgDir_LF,ESP_WhlMovgDir_RF,ESP_WhlMovgDir_RL,ESP_WhlMovgDir_RR,ESP_WhlOdoEdgesVld_FL,ESP_WhlOdoEdgesVld_FR,ESP_WhlOdoEdgesVld_RL,ESP_WhlOdoEdgesVld_RR,ESP_WhlOdoEdges_FL,ESP_WhlOdoEdges_FR,ESP_WhlOdoEdges_RL,ESP_WhlOdoEdges_RR,ESP_WhlSpdVld_LF,ESP_WhlSpdVld_RF,ESP_WhlSpdVld_RL,ESP_WhlSpdVld_RR,ESP_WhlSpd_LF,ESP_WhlSpd_RF,ESP_WhlSpd_RL,ESP_WhlSpd_RR,EWP_B_SpdRatSts,EWP_FD_SpdRatSts,EWP_H_SpdRatSts,EWP_RD_SpdRatSts,FCM_BattVoltBelowThd,FCM_BattVoltOverThd,IBS_AvailableCapacity,IBS_AvgRi,IBS_BatteryCurrent,IBS_BatteryDefect,IBS_BatteryTemperature,IBS_BatteryVoltage,IBS_CapacityLossBottom,IBS_CapacityLossTop,IBS_CurrentAutorange,IBS_DischargeableAh,IBS_EngineStart,IBS_Error,IBS_EstVoltaDrop,IBS_LowVoltage,IBS_NominalCapacity,IBS_OptChargeVolt,IBS_PowerOn,IBS_Recalibrated,IBS_SOCLowerTolerance,IBS_SOCUpperTolerance,IBS_StateOfCharge,IBS_StateOfHealth,IBS_Sulfation,IBS_WakeupStatus,ICC_AirVolSet,ICC_DispVehSpd,ICC_DoorCtrlSwtSts,ICC_DoorUnlockSet,ICC_DrvrTSet,ICC_ECCAUTOReq,ICC_ECCSysSwtCmd,ICC_FrntWiprCtrl,ICC_Ota_Inst,ICC_PassTSet,ICC_RiOutlDamprMotActvCmd,ICC_RiOutlLeRiMotActvCmd,ICC_RiOutlUpDwnMotActvCmd,ICC_SchedUpdate_Selection,ICC_SetChrgEndSOC,ICC_StartChrgBtn,ICC_StopChrgBtn,ICC_TotMilg_ODO,MCU_F_ActDampTq,MCU_F_ActSafeSt,MCU_F_AlrmLamp_FS,MCU_F_BoostEnStat,MCU_F_BoostModActCounter,MCU_F_CooltEstimnT,MCU_F_CooltOverTFlt,MCU_F_CrtMod,MCU_F_CrtSpd,MCU_F_CrtSts,MCU_F_CrtTq,MCU_F_DCBusCrt,MCU_F_DCBusOverVoltFlt,MCU_F_DCBusUnderVoltFlt,MCU_F_DCBusVolt,MCU_F_EmRotorT,MCU_F_EmStatorT,MCU_F_HVActvDchaSts,MCU_F_IGBTOverTFltU,MCU_F_IGBTT,MCU_F_LVPwrSplyOverVoltFlt,MCU_F_LVPwrSplyUnderVoltFlt,MCU_F_MOT_T,MCU_F_MaxElecTq,MCU_F_MaxPwrGennTq,MCU_F_MaxTqLim,MCU_F_MinTqLim,MCU_F_OverTFlt,MCU_F_ParkLockStatus_EV,MCU_F_PrkLckStatNrmlOp_EV,MCU_F_Sum,MCU_R_ActDampTq,MCU_R_ActSafeSt,MCU_R_AlrmLamp_FS,MCU_R_BoostEnStat,MCU_R_BoostModActCounter,MCU_R_CooltEstimnT,MCU_R_CooltOverTFlt,MCU_R_CrtMod,MCU_R_CrtSpd,MCU_R_CrtSts,MCU_R_CrtTq,MCU_R_DCBusCrt,MCU_R_DCBusVolt,MCU_R_Decoup_State,MCU_R_EmRotorT,MCU_R_EmStatorT,MCU_R_HVActvDchaSts,MCU_R_IGBTOverTFltU,MCU_R_IGBTT,MCU_R_LVPwrSplyOverVoltFlt,MCU_R_LVPwrSplyUnderVoltFlt,MCU_R_MOT_T,MCU_R_MaxElecTq,MCU_R_MaxPwrGennTq,MCU_R_MaxTqLim,MCU_R_MinTqLim,MCU_R_OverTFlt,MCU_R_Sum,MRR_VCUWhlTqActVldSigInvld,MRR_WhlSpdAmpInvld,MRR_WhlSpdDirInvld,OBC_12VPwrSplyVoltOver,OBC_12VPwrSplyVoltUnder,OBC_ACCrt,OBC_ACCrtPhase1,OBC_ACCrtPhase2,OBC_ACCrtPhase3,OBC_ACVolt,OBC_ComLostFlt_VCU,OBC_CrtSts,OBC_DCChrggEvseInlVolt,OBC_DCCrt,OBC_DCNegRlyAdhFlt,OBC_DCNegRlyCtrlSts,OBC_DCPosRlyAdhFlt,OBC_DCPosRlyCtrlSts,OBC_DCVolt,OBC_EASIntlkSigChkCircFlt,OBC_EVChrgElectcLockStsFbSig,OBC_InpVoltRng,OBC_MaxOutpVolt,OBC_MinOutpVolt,OBC_OperMod,OBC_OutpMaxPwr,OBC_Pwr,OBC_T,PKC_DoorOpenRmd,PSM_PassSeatT1,PSM_PassSeatT2,PVIU_DCDC_ActHVCurr,PVIU_DCDC_ActHVVolt,PVIU_DCDC_ActLVCurr,PVIU_DCDC_ActLVVolt,PWC_ChrgSts,PWC_R_ChrgSts,TBOX_California_mode,TBOX_Crash_cfm,TBOX_CtrlBitVector_Bit4_ActWake,TBOX_FlsFlg,TBOX_GPSHei,TBOX_GPSLati,TBOX_GPSLongi,TBOX_ICC_FlashPct,TBOX_ICC_UpdStrt,TBOX_OTAInhbReq,TBOX_OTAReq_ECUx,TBOX_OTAResFb,TBOX_OTA_TiRng,TBOX_OTA_ownCondchk,TBOX_RemClsTrCmd,TBOX_RemCtrlLockCmd,TBOX_RemKL15PwrOnReq,TBOX_RemSeekCarCtrlCmd,TBOX_Remflsh,TBOX_ScheduleCharg_Status,TBOX_Sw_upd,TBOX_VoltHigh,TBOX_VoltLow,TBOX_eCallSt,TRM_IndcrLeSts,TRM_IndcrRiSts,TRM_TrailerSts,VCU_ACChrgCrtUpprLmt,VCU_ACChrgDchaGunCnctnSts,VCU_ACChrgDchaIndcrLampSts,VCU_ACChrgDchaSoktT1,VCU_ACChrgShttrSts,VCU_ACChrgStrtFailReason,VCU_ACDCChrgIndcrLamp12VFlt,VCU_ACDchaStrtFailReason,VCU_APSPerc,VCU_AccelModFb,VCU_ActChrgTotAh,VCU_ActDchgTotAh,VCU_ActRgnTq_CRB,VCU_ActvDchaEnaFlg,VCU_BMSLVWakeUpSts,VCU_BattChrgSOC,VCU_BattChrgSOCEEPROM,VCU_BattFltIndcn,VCU_BattVolt,VCU_BoostCmd_F,VCU_BoostCmd_R,VCU_BoostEnStat,VCU_BoostEnStatCoded,VCU_BrkLampCtrlSts,VCU_BrkPedlPwrSplyFlt,VCU_BrkPedlSts_GB,VCU_BrkSig,VCU_BrkSigVld,VCU_BrkStrtReq,VCU_CcTrgSpdDisp,VCU_CellMaxVolt,VCU_CellMinVolt,VCU_CellVoltLoHVPwrOffFlg,VCU_ChrgDchaGunCnctnIndcrLamp,VCU_ChrgEndSOCCrtCtrlFlg,VCU_ChrgIndcrLamp,VCU_ChrgModBHMCnseEgyPerc,VCU_ChrgModBattHeatgMngCnseEgy,VCU_ChrgModChrgEffCnseEgy,VCU_ChrgModChrgEffCnseEgyPerc,VCU_ChrgModVehChrgEgy,VCU_ChrgPwrLim,VCU_ChrgSts,VCU_ChrgSts_GB,VCU_ChrgSysOperCmd,VCU_CoastTqReq,VCU_ComChkFlt_BMS,VCU_ComChkFlt_ESP,VCU_ComChkFlt_VCU,VCU_ComLostFlt_ABS,VCU_ComLostFlt_BCM,VCU_ComLostFlt_BMS,VCU_ComLostFlt_BOBC,VCU_ComLostFlt_DCDC,VCU_ComLostFlt_EHU,VCU_ComLostFlt_ESP,VCU_ComLostFlt_ICC,VCU_ComLostFlt_ICM,VCU_ComLostFlt_MCU_F,VCU_ComLostFlt_NBS,VCU_ComLostFlt_OBC,VCU_ComLostFlt_PEPS,VCU_ComLostFlt_TBOX,VCU_ComLostFlt_VCU,VCU_CrashDIRSigPWMPct,VCU_CrtSts,VCU_DCChrgCrtCmd,VCU_DCChrgDchaGunCnctnSts,VCU_DCChrgDchaIndcrLampSts,VCU_DCChrgOutpCrt,VCU_DCChrgOutpVolt,VCU_DCChrgRmngTi,VCU_DCChrgShttrSts,VCU_DCChrgSoktT1,VCU_DCChrgSoktT2,VCU_DCCrtCmd_OBC,VCU_DCDCEnaCmd,VCU_DCDCOutpVoltCmd,VCU_DCPosRlyCtrlCmd,VCU_DCRlyCtrlCmd,VCU_DCVoltCmd_OBC,VCU_DDmdTq,VCU_Decel_ReqType,VCU_Decoup_Rq_Mod,VCU_DrvModShiftMisoper,VCU_DrvModSigFb,VCU_DrvMotOutpPwrPerc,VCU_DrvTqLimSts,VCU_DrvgMilg,VCU_DrvrFrntMotTqReq,VCU_DrvrMotNr_GB,VCU_DrvrReMotTqReq,VCU_ECCEnaCmd,VCU_ECCSysAllwMaxPwrCnse,VCU_ECC_PwrMax,VCU_ECC_PwrMin,VCU_EPBReq,VCU_EPB_Req,VCU_EVCANBusFlt,VCU_EgyCnsHist01,VCU_EmgyShutOff,VCU_EvChrgElectcLockCtrlCmd,VCU_FCChrgCnt,VCU_FMCUHVSelfChkTiOut,VCU_F_MnTqLim,VCU_F_MxTqGrad,VCU_F_MxTqLim,VCU_F_cmdSlipCtrlComp,VCU_F_rspdEmMax,VCU_F_rspdEmMin,VCU_FrntCrtWhlTq,VCU_FrntMotModCmd,VCU_FrntMotTarTqCmd,VCU_FrntMotTarTqCmdVld,VCU_GearSig,VCU_GearSig_GB,VCU_HVBActivateDeactivateRq,VCU_HVBattActPwr,VCU_HVCustSOC,VCU_HVEMBoostModSt,VCU_HVPwrOffReq,VCU_IsolationMonitor_Rq,VCU_KL15Req,VCU_KickdwnFlg,VCU_LVWakeUpSts_CCU,VCU_LVWakeUpSts_MCU,VCU_LVWakeUpSts_PDU,VCU_LVbattCtrlSigOpenFlt,VCU_LVbattCtrlSigSTBFlt,VCU_LVbattCtrlSigSTGFlt,VCU_Lvl2ProtStrtFlg,VCU_MaxBoostCntr,VCU_NetWakeUpSig,VCU_NotChrgModAcsyCnseEgy,VCU_NotChrgModAcsyCnseEgyPerc,VCU_NotChrgModBHMCnseEgy,VCU_NotChrgModBHMCnseEgyPerc,VCU_NotChrgModECCCnseEgy,VCU_NotChrgModECCCnseEgyPerc,VCU_NotChrgModExtDchaCnseEgy,VCU_NotChrgModExtDchaCnseEgyPerc,VCU_NotChrgModVehDrvCnseEgy,VCU_NotChrgModVehDrvCnseEgyPerc,VCU_NotChrgModVehTotCnseEgy,VCU_OTAInhbRdy,VCU_OTARdy_Fb,VCU_OTAVehCdnChk_ASIL,VCU_OTAVehCdnChk_QM_sts,VCU_OTA_ECUInhb_Req,VCU_OutpACWakeupSigSts,VCU_OutpFCWakeupSigSts,VCU_PPrkgFltLvl,VCU_ParkRdy,VCU_PrefillReq,VCU_PwrBattECCEnaCmd,VCU_PwrSplyEquipSts,VCU_RMCUHVSelfChkTiOut,VCU_R_MnTqLim,VCU_R_MxTqGrad,VCU_R_MxTqLim,VCU_R_rspdEmMax,VCU_R_rspdEmMin,VCU_RdyLamp,VCU_ReCrtWhlTq,VCU_ReMotDampgFobdFlg,VCU_ReMotModCmd,VCU_ReMotTarTqCmd,VCU_RegenLvlFb,VCU_RemBattHeatgFailReason,VCU_RemChrgEndCmd,VCU_RemChrgEndReason,VCU_RemCtrlDrvgBrkReq,VCU_RemCtrlDrvgEmgyBrkReq,VCU_RemECCEndCmd,VCU_RemECCEndReason,VCU_RmnUsrECCFctLmtDispCmd,VCU_SCChrgCnt,VCU_SOCLoWakeUpEnaCmd,VCU_SOCLoWakeUpThd,VCU_SOCTooHiAlrm,VCU_SOCTooLoAlrm,VCU_SchedChrgnStsFb,VCU_Set_BMS_Mod,VCU_Set_Balc_Mod,VCU_Set_Chrg_Mod,VCU_ShiftMisoper,VCU_ShiftOperRmn,VCU_SlipRate,VCU_StgyGearSig,VCU_Sts_CC_ICC,VCU_SwVersFlash,VCU_SwVersMain,VCU_SwVersMinor,VCU_SwVersPatch,VCU_SysAllwMaxFbPwr,VCU_SysAllwMaxPwrCnse,VCU_TotOverVoltLvl2ProtFlg,VCU_TqLim,VCU_TripAvgEgyConsmd,VCU_TripMilg,VCU_VcuErrBitVect,VCU_VcuErrCtgy,VCU_VcuState,VCU_VehChrgDchgMod,VCU_VehCrtChrgEndSOC,VCU_VehCtrlrEEPROMFlt,VCU_VehCtrlrRAMFlt,VCU_VehCtrlrROMFlt,VCU_VehExtDchaSts,VCU_VehMCUFMaxElecTq,VCU_VehMCUFMaxPwrGennTq,VCU_VehMCURMaxElecTq,VCU_VehMCURMaxPwrGennTq,VCU_VehMaxWhlTq,VCU_VehMod,VCU_VehOperMod,VCU_VehRemOperModPwrOnReq,VCU_VehRemSCModPwrOnReq,VCU_VehSt,VCU_VehSts,VCU_VehTqDistbnRat,VCU_VehTqFltSts,VCU_WhlTqAct,WTC_B_ActGear,WTC_B_ComLost_ECC,WTC_B_Crt,WTC_B_CrtSts,WTC_B_CrtT,WTC_B_InlT,WTC_H_ActGear,WTC_H_Crt,WTC_H_CrtPwr,WTC_H_CrtSts,WTC_H_CrtT,WTC_H_InpT,XXX_OTAInhbRdy,XXX_OTARdy_Fb,YRS_LatAcce,YRS_LgtAcce,iBooster_BrkPedlAppldFlg,iBooster_BrkPedlAppldVld,iBooster_DrvrBrkPedlTrvl,iBooster_DrvrBrkPedlTrvlSts,iBooster_ExtBrkReqSts,iBooster_MstCylBrkPedlActTrvl,iBooster_MstCylBrkPedlActTrvlSts
`,
		},
		"failed_filter": {
			q:         "",
			expStatus: http.StatusBadRequest,
			expBody:   `{"message":"VIN required. TimestampStart required. TimestampEnd required","error":"Bad Request"}`,
		},
		"invalid query": {
			q:         invalidQuery,
			expStatus: http.StatusBadRequest,
			expBody:   `{"message":"either Select All of a list of CAN Signals required","error":"Bad Request"}`,
		},
	}

	for tname, tt := range tests {
		t.Run(tname, func(t *testing.T) {
			services.SetClickhouseConn(tt.conn)
			w := httptest.NewRecorder()

			p := httprouter.Params{
				{Key: "vin", Value: validVin},
			}
			ctx := context.WithValue(context.Background(), httprouter.ParamsKey, p)
			r := httptest.NewRequest(http.MethodGet, "http://example.com/ota_update/can_signals/export"+tt.q, nil).
				WithContext(ctx)

			handlers.HandleCanSignalVINGet(w, r)
			assert.Equal(t, tt.expStatus, w.Code)
			assert.Equal(t, tt.expBody, w.Body.String())
		})
	}
}

var canSignalList = []common.CANSignalNameList{{Signal_Name: "ACU_AirBagSysAlrmLampSts"}, {Signal_Name: "ACU_Crash_cfm"}, {Signal_Name: "ACU_Drvr_Occpt_St"}, {Signal_Name: "ACU_FrntCrashOutpSts"}, {Signal_Name: "ACU_LeSideCrashOutpSts"}, {Signal_Name: "ACU_Pass_OCS_St"}, {Signal_Name: "ACU_RearCrashOutpSts"}, {Signal_Name: "ACU_RiSideCrashOutpSts"}, {Signal_Name: "ACU_RollovrCrashOutpSts"}, {Signal_Name: "ADAS_AEB_ActvTyp"}, {Signal_Name: "ADAS_AEB_DecelReq"}, {Signal_Name: "ADAS_BSDSts"}, {Signal_Name: "ADAS_BSD_CID_LeDispReq"}, {Signal_Name: "ADAS_BSD_CID_RiDispReq"}, {Signal_Name: "ADAS_ChimeReq"}, {Signal_Name: "ADAS_DCAASts"}, {Signal_Name: "ADAS_DOW_Sts"}, {Signal_Name: "ADAS_DoorLockReq"}, {Signal_Name: "ADAS_ELKASts"}, {Signal_Name: "ADAS_ELKA_TelltaleReq"}, {Signal_Name: "ADAS_ESA_TelltaleReq"}, {Signal_Name: "ADAS_FACM_Sts"}, {Signal_Name: "ADAS_FACM_TelltaleReq"}, {Signal_Name: "ADAS_IDS_WarnTxtReq"}, {Signal_Name: "ADAS_ISAOverSpeedWarning"}, {Signal_Name: "ADAS_ISASts"}, {Signal_Name: "ADAS_ISA_CutOffReq"}, {Signal_Name: "ADAS_ISA_SpdLmt"}, {Signal_Name: "ADAS_LKASts"}, {Signal_Name: "ADAS_LatCtrl_Req"}, {Signal_Name: "ADAS_LatCtrl_SteerAnReq"}, {Signal_Name: "ADAS_LatCtrl_Sts"}, {Signal_Name: "ADAS_LatCtrl_Typ"}, {Signal_Name: "ADAS_LeMirrWarnReq"}, {Signal_Name: "ADAS_LeMirrWarnSrc"}, {Signal_Name: "ADAS_LgtCtrl_ESP_Sts"}, {Signal_Name: "ADAS_ParkGearReq"}, {Signal_Name: "ADAS_RiMirrWarnReq"}, {Signal_Name: "ADAS_RiMirrWarnSrc"}, {Signal_Name: "ADAS_Sts_TLR"}, {Signal_Name: "ADAS_SysFltWarnReq"}, {Signal_Name: "ADAS_TLR_WarnReq"}, {Signal_Name: "ADAS_TSRSpeedLimit"}, {Signal_Name: "ADAS_TSRSts"}, {Signal_Name: "AEB_ReAEB_Sts"}, {Signal_Name: "BCM_BrkLampOutpCmd"}, {Signal_Name: "BCM_BrkLampSwtSts"}, {Signal_Name: "BCM_BrkSwtSts"}, {Signal_Name: "BCM_DoorUnlockSetFb"}, {Signal_Name: "BCM_DrFrntDoorSts"}, {Signal_Name: "BCM_DrvrDoorUnlckOutpCmd"}, {Signal_Name: "BCM_FrntDrDoorLockSts"}, {Signal_Name: "BCM_LeReDoorSts"}, {Signal_Name: "BCM_LeSolaValr_RLS"}, {Signal_Name: "BCM_LockAllDoorCmd"}, {Signal_Name: "BCM_PasFrntDoorSts"}, {Signal_Name: "BCM_PassDoorUnlckOutpCmd"}, {Signal_Name: "BCM_PwrMod"}, {Signal_Name: "BCM_PwrModVld"}, {Signal_Name: "BCM_RiReDoorSts"}, {Signal_Name: "BCM_RiSolaValr_RLS"}, {Signal_Name: "BCM_SBRMatSt2ndRowLeft"}, {Signal_Name: "BCM_SBRMatSt2ndRowMid"}, {Signal_Name: "BCM_SBRMatSt2ndRowRight"}, {Signal_Name: "BCM_TotMilg_ODO"}, {Signal_Name: "BMS_ACChrgSoktOverTFlt"}, {Signal_Name: "BMS_ACCrtFlt"}, {Signal_Name: "BMS_ACRmngChrgTi"}, {Signal_Name: "BMS_AccueChrgTotAh"}, {Signal_Name: "BMS_AccueDchaTotAh"}, {Signal_Name: "BMS_Bat_Actual_Pack_Capacity"}, {Signal_Name: "BMS_Bat_Bus_measure_Temperature"}, {Signal_Name: "BMS_Bat_C_MAXcurr_PLT"}, {Signal_Name: "BMS_Bat_C_MAXcurr_PST"}, {Signal_Name: "BMS_Bat_C_MAXcurr_PmLT"}, {Signal_Name: "BMS_Bat_C_MaxPack_I"}, {Signal_Name: "BMS_Bat_C_MaxPack_U"}, {Signal_Name: "BMS_Bat_Coolant_in"}, {Signal_Name: "BMS_Bat_Coolant_out"}, {Signal_Name: "BMS_Bat_D_MAXcurr_PLT"}, {Signal_Name: "BMS_Bat_D_MAXcurr_PST"}, {Signal_Name: "BMS_Bat_D_MAXcurr_PmLT"}, {Signal_Name: "BMS_Bat_D_MAXvolt_PST"}, {Signal_Name: "BMS_Bat_D_MaxPack_I"}, {Signal_Name: "BMS_Bat_D_MinCell_U"}, {Signal_Name: "BMS_Bat_D_MinPack_U"}, {Signal_Name: "BMS_Bat_HVMeasure_Current"}, {Signal_Name: "BMS_Bat_HVMeasure_V_Pack"}, {Signal_Name: "BMS_Bat_HVmeasure_Current"}, {Signal_Name: "BMS_Bat_Hvmeasure_V_Pack"}, {Signal_Name: "BMS_Bat_SOC_Real"}, {Signal_Name: "BMS_Bat_SOH"}, {Signal_Name: "BMS_Bat_SoC_usable"}, {Signal_Name: "BMS_Bat_measure_Energy"}, {Signal_Name: "BMS_BattAvrgT"}, {Signal_Name: "BMS_BattBalActv"}, {Signal_Name: "BMS_BattCellVoltUnbalAlrm"}, {Signal_Name: "BMS_BattInlTDmd"}, {Signal_Name: "BMS_BattInlT_Max"}, {Signal_Name: "BMS_BattInlT_Min"}, {Signal_Name: "BMS_BattInlT_Target"}, {Signal_Name: "BMS_BattPack1OverVoltFlt"}, {Signal_Name: "BMS_BattPack1UnderVoltFlt"}, {Signal_Name: "BMS_BatteryGeneralStatus_OK"}, {Signal_Name: "BMS_CL15_Sts"}, {Signal_Name: "BMS_CL30C_Sts"}, {Signal_Name: "BMS_CellDiffT"}, {Signal_Name: "BMS_CellMaxT"}, {Signal_Name: "BMS_CellMinT"}, {Signal_Name: "BMS_CellMinTAlrm"}, {Signal_Name: "BMS_CellVolt12"}, {Signal_Name: "BMS_CellVolt120"}, {Signal_Name: "BMS_Cell_Volt_max"}, {Signal_Name: "BMS_Cell_Volt_min"}, {Signal_Name: "BMS_Cell_Volt_nom"}, {Signal_Name: "BMS_Cont_Act_St_HV_Neg"}, {Signal_Name: "BMS_Cont_Act_St_HV_Pos"}, {Signal_Name: "BMS_Cont_Act_St_HV_Prec"}, {Signal_Name: "BMS_Cont_CurrentState_PV_Neg"}, {Signal_Name: "BMS_Cont_CurrentState_PV_Pos"}, {Signal_Name: "BMS_Cont_Error_Ch1_HV_Neg1"}, {Signal_Name: "BMS_Cont_Error_Ch1_HV_PV_Neg1"}, {Signal_Name: "BMS_Cont_Error_Ch1_HV_PV_Pos1"}, {Signal_Name: "BMS_Cont_Error_Ch1_HV_Pos1"}, {Signal_Name: "BMS_Cont_Error_Ch1_HV_Prec1"}, {Signal_Name: "BMS_Cont_Error_DisCh1_HV_PV_Neg1"}, {Signal_Name: "BMS_Cont_Error_DisCh1_HV_PV_Pos1"}, {Signal_Name: "BMS_Cont_Error_DisCh1_HV_Pos1"}, {Signal_Name: "BMS_Cont_Error_DisCh1_HV_Prec"}, {Signal_Name: "BMS_DCChrgRmngTi"}, {Signal_Name: "BMS_DCChrgSoktOverTFlt"}, {Signal_Name: "BMS_DTC_status"}, {Signal_Name: "BMS_ErrorActive_AbsChargeCurrent"}, {Signal_Name: "BMS_ErrorActive_AbsChargePowerLi"}, {Signal_Name: "BMS_ErrorActive_AbsDischargeCurr"}, {Signal_Name: "BMS_ErrorActive_AbsDischargePowe"}, {Signal_Name: "BMS_ErrorActive_CellOverVoltage"}, {Signal_Name: "BMS_ErrorActive_CellTempHigh"}, {Signal_Name: "BMS_ErrorActive_CellTempLow"}, {Signal_Name: "BMS_ErrorActive_CellUnderVoltage"}, {Signal_Name: "BMS_ErrorActive_CellVoltageDiffO"}, {Signal_Name: "BMS_ErrorActive_ChargePowerLimit"}, {Signal_Name: "BMS_ErrorActive_Diff_U1_UCellSum"}, {Signal_Name: "BMS_ErrorActive_DischargePowerLi"}, {Signal_Name: "BMS_ErrorActive_HV_OverVoltage"}, {Signal_Name: "BMS_ErrorActive_HV_UnderVoltage"}, {Signal_Name: "BMS_ErrorActive_Iso_Crit"}, {Signal_Name: "BMS_ErrorActive_OverChargeCurren"}, {Signal_Name: "BMS_ErrorActive_OverDischargeCur"}, {Signal_Name: "BMS_ErrorActive_SOC_Low"}, {Signal_Name: "BMS_ErrorActive_SOH_Low"}, {Signal_Name: "BMS_ErrorWarning_ChargePowerLimi"}, {Signal_Name: "BMS_ErrorWarning_DischargePowerL"}, {Signal_Name: "BMS_ErrorWarning_OverChargeCurre"}, {Signal_Name: "BMS_ErrorWarning_OverDischargeCu"}, {Signal_Name: "BMS_ErrorWarning_SOH_Low"}, {Signal_Name: "BMS_ErrorWarning_overcurrent_Pre"}, {Signal_Name: "BMS_HVIL_OK"}, {Signal_Name: "BMS_HV_ContactorsStatus_OK"}, {Signal_Name: "BMS_HVlinkError_ContactorAuxFail"}, {Signal_Name: "BMS_HVlinkError_ContactorGeneric"}, {Signal_Name: "BMS_HVlinkError_ContactorOpen"}, {Signal_Name: "BMS_HVlinkError_ContactorPwmEcon"}, {Signal_Name: "BMS_HWerror_Cell_Temp_Sensor_Fai"}, {Signal_Name: "BMS_HWerror_KL30_Voltage"}, {Signal_Name: "BMS_LVPwrSplyFlt"}, {Signal_Name: "BMS_OperationStates"}, {Signal_Name: "BMS_PVIU_EnergyOverall"}, {Signal_Name: "BMS_PVIU_F_12V_OVP"}, {Signal_Name: "BMS_PVIU_F_12V_UVP"}, {Signal_Name: "BMS_PVIU_F_CANRx_Timeout"}, {Signal_Name: "BMS_PVIU_F_HVIL"}, {Signal_Name: "BMS_PVIU_F_Input_OVP"}, {Signal_Name: "BMS_PVIU_F_Input_UVP"}, {Signal_Name: "BMS_PVIU_F_OTP"}, {Signal_Name: "BMS_PVIU_F_Output_OCP"}, {Signal_Name: "BMS_PVIU_F_Output_OVP"}, {Signal_Name: "BMS_PVIU_F_Output_SCP"}, {Signal_Name: "BMS_PVIU_F_Output_UVP"}, {Signal_Name: "BMS_PVIU_FailSt"}, {Signal_Name: "BMS_PVIU_ModeSt"}, {Signal_Name: "BMS_PwrBattCellOverVolt"}, {Signal_Name: "BMS_PwrBattCellOverVolt_FS"}, {Signal_Name: "BMS_PwrBattCellVoltUnbal"}, {Signal_Name: "BMS_PwrBattChrgDchaCrt1"}, {Signal_Name: "BMS_PwrBattChrgDchaCrt2"}, {Signal_Name: "BMS_PwrBattExtShoCirc"}, {Signal_Name: "BMS_PwrBattHeatgMngDmd"}, {Signal_Name: "BMS_PwrBattIntShoCirc"}, {Signal_Name: "BMS_PwrBattMSDBreak"}, {Signal_Name: "BMS_PwrBattNegGNDInsulR"}, {Signal_Name: "BMS_PwrBattNegRlyAdh"}, {Signal_Name: "BMS_PwrBattNegRlyBreak"}, {Signal_Name: "BMS_PwrBattOverChrgAlrm"}, {Signal_Name: "BMS_PwrBattOverT"}, {Signal_Name: "BMS_PwrBattOverTAlrm"}, {Signal_Name: "BMS_PwrBattPackNr"}, {Signal_Name: "BMS_PwrBattPosGNDInsulR"}, {Signal_Name: "BMS_PwrBattPosRlyAdh"}, {Signal_Name: "BMS_PwrBattPosRlyBreak"}, {Signal_Name: "BMS_PwrBattPrecRBreak"}, {Signal_Name: "BMS_PwrBattPrecRlyAdh"}, {Signal_Name: "BMS_PwrBattPrecRlyBreak"}, {Signal_Name: "BMS_PwrBattPwrStsSOH"}, {Signal_Name: "BMS_PwrBattRmngCpSOC"}, {Signal_Name: "BMS_PwrBattTRiseFast"}, {Signal_Name: "BMS_PwrBattTUnbal"}, {Signal_Name: "BMS_PwrBattTyp"}, {Signal_Name: "BMS_SDIL_Sts"}, {Signal_Name: "BMS_Splr"}, {Signal_Name: "BMS_StateMAchine_Status"}, {Signal_Name: "BMS_SwVers"}, {Signal_Name: "BMS_SwVersM"}, {Signal_Name: "BMS_SwVersS"}, {Signal_Name: "BMS_SystemError_HV_CCT_NoBatVolt"}, {Signal_Name: "BMS_SystemError_HV_CCT_WrongPola"}, {Signal_Name: "BMS_SystemError_HV_Fuse"}, {Signal_Name: "BMS_SystemError_HV_Interlock"}, {Signal_Name: "BMS_SystemError_KL30C"}, {Signal_Name: "BMS_SystemError_OmmissionOfKL15"}, {Signal_Name: "BMS_SystemError_Precharge"}, {Signal_Name: "BMS_TotVoltOver"}, {Signal_Name: "CIM_GearLvrCrtPosnInfo"}, {Signal_Name: "CMRR_FL_WhlDrvDirSigInvld"}, {Signal_Name: "CMRR_FL_WhlSpdSigInvld"}, {Signal_Name: "CMRR_FR_WhlDrvDirSigInvld"}, {Signal_Name: "CMRR_FR_WhlSpdSigInvld"}, {Signal_Name: "CMRR_RL_WhlDrvDirSigInvld"}, {Signal_Name: "CMRR_RL_WhlSpdSigInvld"}, {Signal_Name: "CMRR_RR_WhlSpdSigInvld"}, {Signal_Name: "DCDC_CrtSts"}, {Signal_Name: "DCDC_InpCrt"}, {Signal_Name: "DCDC_InpVolt"}, {Signal_Name: "DCDC_LVOutpOverVoltFlt"}, {Signal_Name: "DCDC_LVOutpUnderVoltFlt"}, {Signal_Name: "DCDC_OutpCrt"}, {Signal_Name: "DCDC_OutpVolt"}, {Signal_Name: "DCDC_OverTTurnDwnLoadFlt"}, {Signal_Name: "DCDC_T"}, {Signal_Name: "DSMC_DrvrSeatT1"}, {Signal_Name: "DSMC_DrvrSeatT2"}, {Signal_Name: "EAS_CrtPwr"}, {Signal_Name: "EAS_MotSpd"}, {Signal_Name: "ECC_ACSts"}, {Signal_Name: "ECC_AUTOSts"}, {Signal_Name: "ECC_ActvGrilleAg"}, {Signal_Name: "ECC_AirClnSts"}, {Signal_Name: "ECC_BattFldLvlSnsrLamp"}, {Signal_Name: "ECC_CircSts"}, {Signal_Name: "ECC_CoolgFanSpdRatSts"}, {Signal_Name: "ECC_CoolgFanSts"}, {Signal_Name: "ECC_DchaT"}, {Signal_Name: "ECC_DrvrAirOutlMod"}, {Signal_Name: "ECC_DrvrTSetSts"}, {Signal_Name: "ECC_EvaprT"}, {Signal_Name: "ECC_FrntMotOutlT"}, {Signal_Name: "ECC_HPTSnsrT"}, {Signal_Name: "ECC_HeatPumpHeatgEXVSts"}, {Signal_Name: "ECC_HeatSts"}, {Signal_Name: "ECC_InsdT"}, {Signal_Name: "ECC_LPTSnsrT"}, {Signal_Name: "ECC_LeBlowFaceAirOutlT"}, {Signal_Name: "ECC_LeBlowFootAirOutlT"}, {Signal_Name: "ECC_MCUFCooltFlow"}, {Signal_Name: "ECC_MCURCooltFlow"}, {Signal_Name: "ECC_MCURInlT"}, {Signal_Name: "ECC_MCURInlTSnsrFlt"}, {Signal_Name: "ECC_OutdT"}, {Signal_Name: "ECC_OutdTSnsrFlt"}, {Signal_Name: "ECC_OutdTVld"}, {Signal_Name: "ECC_PDUInlT"}, {Signal_Name: "ECC_PDUInlTSnsrFlt"}, {Signal_Name: "ECC_PassTSetSts"}, {Signal_Name: "ECC_ReMotOutlT"}, {Signal_Name: "ECC_RiBlowFaceAirOutlT"}, {Signal_Name: "ECC_RiBlowFootAirOutlT"}, {Signal_Name: "ECC_SYNCSts"}, {Signal_Name: "ECC_SwVersM"}, {Signal_Name: "ECC_SwVersS"}, {Signal_Name: "ECC_TarGear_WTC_B"}, {Signal_Name: "ECC_TarGear_WTC_H"}, {Signal_Name: "ECC_TarPwrReq_WTC_B"}, {Signal_Name: "ECC_TarPwrReq_WTC_H"}, {Signal_Name: "ECC_TarSpdCmd_EAS"}, {Signal_Name: "EPS_AbortFb"}, {Signal_Name: "EPS_AdasLatCtrlSts"}, {Signal_Name: "EPS_AdasLatCtrlStsVld"}, {Signal_Name: "EPS_AsscMotCrtPwr"}, {Signal_Name: "EPS_AsscMotCrtTq"}, {Signal_Name: "EPS_ComLostFlt_ESP"}, {Signal_Name: "EPS_DrvrIntvSteerWhlDetd"}, {Signal_Name: "EPS_DrvrIntvSteerWhlVld"}, {Signal_Name: "EPS_DrvrSteerTq"}, {Signal_Name: "EPS_FltIndcn"}, {Signal_Name: "EPS_MaxSftyTq"}, {Signal_Name: "EPS_SpdDataErr"}, {Signal_Name: "EPS_SteerAgSnsrCalSts"}, {Signal_Name: "EPS_SteerWhlAgSig"}, {Signal_Name: "EPS_TSnsrFlt"}, {Signal_Name: "ESP_BrkFStsFlg"}, {Signal_Name: "ESP_BrkLiReq"}, {Signal_Name: "ESP_BrkOverTIndcn"}, {Signal_Name: "ESP_BrkPadWearWarn"}, {Signal_Name: "ESP_BrkPedlSts"}, {Signal_Name: "ESP_BrkPedlStsVld"}, {Signal_Name: "ESP_EmgyBrkLi"}, {Signal_Name: "ESP_MstCylP"}, {Signal_Name: "ESP_MstCylPOffs"}, {Signal_Name: "ESP_NoBrkP"}, {Signal_Name: "ESP_ParkBrkSt"}, {Signal_Name: "ESP_SysSts_EPB"}, {Signal_Name: "ESP_TotBrkTqReq"}, {Signal_Name: "ESP_VLC_APCtrlSaturated"}, {Signal_Name: "ESP_VehSpd"}, {Signal_Name: "ESP_WhlMovgDir_LF"}, {Signal_Name: "ESP_WhlMovgDir_RF"}, {Signal_Name: "ESP_WhlMovgDir_RL"}, {Signal_Name: "ESP_WhlMovgDir_RR"}, {Signal_Name: "ESP_WhlOdoEdgesVld_FL"}, {Signal_Name: "ESP_WhlOdoEdgesVld_FR"}, {Signal_Name: "ESP_WhlOdoEdgesVld_RL"}, {Signal_Name: "ESP_WhlOdoEdgesVld_RR"}, {Signal_Name: "ESP_WhlOdoEdges_FL"}, {Signal_Name: "ESP_WhlOdoEdges_FR"}, {Signal_Name: "ESP_WhlOdoEdges_RL"}, {Signal_Name: "ESP_WhlOdoEdges_RR"}, {Signal_Name: "ESP_WhlSpdVld_LF"}, {Signal_Name: "ESP_WhlSpdVld_RF"}, {Signal_Name: "ESP_WhlSpdVld_RL"}, {Signal_Name: "ESP_WhlSpdVld_RR"}, {Signal_Name: "ESP_WhlSpd_LF"}, {Signal_Name: "ESP_WhlSpd_RF"}, {Signal_Name: "ESP_WhlSpd_RL"}, {Signal_Name: "ESP_WhlSpd_RR"}, {Signal_Name: "EWP_B_SpdRatSts"}, {Signal_Name: "EWP_FD_SpdRatSts"}, {Signal_Name: "EWP_H_SpdRatSts"}, {Signal_Name: "EWP_RD_SpdRatSts"}, {Signal_Name: "FCM_BattVoltBelowThd"}, {Signal_Name: "FCM_BattVoltOverThd"}, {Signal_Name: "IBS_AvailableCapacity"}, {Signal_Name: "IBS_AvgRi"}, {Signal_Name: "IBS_BatteryCurrent"}, {Signal_Name: "IBS_BatteryDefect"}, {Signal_Name: "IBS_BatteryTemperature"}, {Signal_Name: "IBS_BatteryVoltage"}, {Signal_Name: "IBS_CapacityLossBottom"}, {Signal_Name: "IBS_CapacityLossTop"}, {Signal_Name: "IBS_CurrentAutorange"}, {Signal_Name: "IBS_DischargeableAh"}, {Signal_Name: "IBS_EngineStart"}, {Signal_Name: "IBS_Error"}, {Signal_Name: "IBS_EstVoltaDrop"}, {Signal_Name: "IBS_LowVoltage"}, {Signal_Name: "IBS_NominalCapacity"}, {Signal_Name: "IBS_OptChargeVolt"}, {Signal_Name: "IBS_PowerOn"}, {Signal_Name: "IBS_Recalibrated"}, {Signal_Name: "IBS_SOCLowerTolerance"}, {Signal_Name: "IBS_SOCUpperTolerance"}, {Signal_Name: "IBS_StateOfCharge"}, {Signal_Name: "IBS_StateOfHealth"}, {Signal_Name: "IBS_Sulfation"}, {Signal_Name: "IBS_WakeupStatus"}, {Signal_Name: "ICC_AirVolSet"}, {Signal_Name: "ICC_DispVehSpd"}, {Signal_Name: "ICC_DoorCtrlSwtSts"}, {Signal_Name: "ICC_DoorUnlockSet"}, {Signal_Name: "ICC_DrvrTSet"}, {Signal_Name: "ICC_ECCAUTOReq"}, {Signal_Name: "ICC_ECCSysSwtCmd"}, {Signal_Name: "ICC_FrntWiprCtrl"}, {Signal_Name: "ICC_Ota_Inst"}, {Signal_Name: "ICC_PassTSet"}, {Signal_Name: "ICC_RiOutlDamprMotActvCmd"}, {Signal_Name: "ICC_RiOutlLeRiMotActvCmd"}, {Signal_Name: "ICC_RiOutlUpDwnMotActvCmd"}, {Signal_Name: "ICC_SchedUpdate_Selection"}, {Signal_Name: "ICC_SetChrgEndSOC"}, {Signal_Name: "ICC_StartChrgBtn"}, {Signal_Name: "ICC_StopChrgBtn"}, {Signal_Name: "ICC_TotMilg_ODO"}, {Signal_Name: "MCU_F_ActDampTq"}, {Signal_Name: "MCU_F_ActSafeSt"}, {Signal_Name: "MCU_F_AlrmLamp_FS"}, {Signal_Name: "MCU_F_BoostEnStat"}, {Signal_Name: "MCU_F_BoostModActCounter"}, {Signal_Name: "MCU_F_CooltEstimnT"}, {Signal_Name: "MCU_F_CooltOverTFlt"}, {Signal_Name: "MCU_F_CrtMod"}, {Signal_Name: "MCU_F_CrtSpd"}, {Signal_Name: "MCU_F_CrtSts"}, {Signal_Name: "MCU_F_CrtTq"}, {Signal_Name: "MCU_F_DCBusCrt"}, {Signal_Name: "MCU_F_DCBusOverVoltFlt"}, {Signal_Name: "MCU_F_DCBusUnderVoltFlt"}, {Signal_Name: "MCU_F_DCBusVolt"}, {Signal_Name: "MCU_F_EmRotorT"}, {Signal_Name: "MCU_F_EmStatorT"}, {Signal_Name: "MCU_F_HVActvDchaSts"}, {Signal_Name: "MCU_F_IGBTOverTFltU"}, {Signal_Name: "MCU_F_IGBTT"}, {Signal_Name: "MCU_F_LVPwrSplyOverVoltFlt"}, {Signal_Name: "MCU_F_LVPwrSplyUnderVoltFlt"}, {Signal_Name: "MCU_F_MOT_T"}, {Signal_Name: "MCU_F_MaxElecTq"}, {Signal_Name: "MCU_F_MaxPwrGennTq"}, {Signal_Name: "MCU_F_MaxTqLim"}, {Signal_Name: "MCU_F_MinTqLim"}, {Signal_Name: "MCU_F_OverTFlt"}, {Signal_Name: "MCU_F_ParkLockStatus_EV"}, {Signal_Name: "MCU_F_PrkLckStatNrmlOp_EV"}, {Signal_Name: "MCU_F_Sum"}, {Signal_Name: "MCU_R_ActDampTq"}, {Signal_Name: "MCU_R_ActSafeSt"}, {Signal_Name: "MCU_R_AlrmLamp_FS"}, {Signal_Name: "MCU_R_BoostEnStat"}, {Signal_Name: "MCU_R_BoostModActCounter"}, {Signal_Name: "MCU_R_CooltEstimnT"}, {Signal_Name: "MCU_R_CooltOverTFlt"}, {Signal_Name: "MCU_R_CrtMod"}, {Signal_Name: "MCU_R_CrtSpd"}, {Signal_Name: "MCU_R_CrtSts"}, {Signal_Name: "MCU_R_CrtTq"}, {Signal_Name: "MCU_R_DCBusCrt"}, {Signal_Name: "MCU_R_DCBusVolt"}, {Signal_Name: "MCU_R_Decoup_State"}, {Signal_Name: "MCU_R_EmRotorT"}, {Signal_Name: "MCU_R_EmStatorT"}, {Signal_Name: "MCU_R_HVActvDchaSts"}, {Signal_Name: "MCU_R_IGBTOverTFltU"}, {Signal_Name: "MCU_R_IGBTT"}, {Signal_Name: "MCU_R_LVPwrSplyOverVoltFlt"}, {Signal_Name: "MCU_R_LVPwrSplyUnderVoltFlt"}, {Signal_Name: "MCU_R_MOT_T"}, {Signal_Name: "MCU_R_MaxElecTq"}, {Signal_Name: "MCU_R_MaxPwrGennTq"}, {Signal_Name: "MCU_R_MaxTqLim"}, {Signal_Name: "MCU_R_MinTqLim"}, {Signal_Name: "MCU_R_OverTFlt"}, {Signal_Name: "MCU_R_Sum"}, {Signal_Name: "MRR_VCUWhlTqActVldSigInvld"}, {Signal_Name: "MRR_WhlSpdAmpInvld"}, {Signal_Name: "MRR_WhlSpdDirInvld"}, {Signal_Name: "OBC_12VPwrSplyVoltOver"}, {Signal_Name: "OBC_12VPwrSplyVoltUnder"}, {Signal_Name: "OBC_ACCrt"}, {Signal_Name: "OBC_ACCrtPhase1"}, {Signal_Name: "OBC_ACCrtPhase2"}, {Signal_Name: "OBC_ACCrtPhase3"}, {Signal_Name: "OBC_ACVolt"}, {Signal_Name: "OBC_ComLostFlt_VCU"}, {Signal_Name: "OBC_CrtSts"}, {Signal_Name: "OBC_DCChrggEvseInlVolt"}, {Signal_Name: "OBC_DCCrt"}, {Signal_Name: "OBC_DCNegRlyAdhFlt"}, {Signal_Name: "OBC_DCNegRlyCtrlSts"}, {Signal_Name: "OBC_DCPosRlyAdhFlt"}, {Signal_Name: "OBC_DCPosRlyCtrlSts"}, {Signal_Name: "OBC_DCVolt"}, {Signal_Name: "OBC_EASIntlkSigChkCircFlt"}, {Signal_Name: "OBC_EVChrgElectcLockStsFbSig"}, {Signal_Name: "OBC_InpVoltRng"}, {Signal_Name: "OBC_MaxOutpVolt"}, {Signal_Name: "OBC_MinOutpVolt"}, {Signal_Name: "OBC_OperMod"}, {Signal_Name: "OBC_OutpMaxPwr"}, {Signal_Name: "OBC_Pwr"}, {Signal_Name: "OBC_T"}, {Signal_Name: "PKC_DoorOpenRmd"}, {Signal_Name: "PSM_PassSeatT1"}, {Signal_Name: "PSM_PassSeatT2"}, {Signal_Name: "PVIU_DCDC_ActHVCurr"}, {Signal_Name: "PVIU_DCDC_ActHVVolt"}, {Signal_Name: "PVIU_DCDC_ActLVCurr"}, {Signal_Name: "PVIU_DCDC_ActLVVolt"}, {Signal_Name: "PWC_ChrgSts"}, {Signal_Name: "PWC_R_ChrgSts"}, {Signal_Name: "TBOX_California_mode"}, {Signal_Name: "TBOX_Crash_cfm"}, {Signal_Name: "TBOX_CtrlBitVector_Bit4_ActWake"}, {Signal_Name: "TBOX_FlsFlg"}, {Signal_Name: "TBOX_GPSHei"}, {Signal_Name: "TBOX_GPSLati"}, {Signal_Name: "TBOX_GPSLongi"}, {Signal_Name: "TBOX_ICC_FlashPct"}, {Signal_Name: "TBOX_ICC_UpdStrt"}, {Signal_Name: "TBOX_OTAInhbReq"}, {Signal_Name: "TBOX_OTAReq_ECUx"}, {Signal_Name: "TBOX_OTAResFb"}, {Signal_Name: "TBOX_OTA_TiRng"}, {Signal_Name: "TBOX_OTA_ownCondchk"}, {Signal_Name: "TBOX_RemClsTrCmd"}, {Signal_Name: "TBOX_RemCtrlLockCmd"}, {Signal_Name: "TBOX_RemKL15PwrOnReq"}, {Signal_Name: "TBOX_RemSeekCarCtrlCmd"}, {Signal_Name: "TBOX_Remflsh"}, {Signal_Name: "TBOX_ScheduleCharg_Status"}, {Signal_Name: "TBOX_Sw_upd"}, {Signal_Name: "TBOX_VoltHigh"}, {Signal_Name: "TBOX_VoltLow"}, {Signal_Name: "TBOX_eCallSt"}, {Signal_Name: "TRM_IndcrLeSts"}, {Signal_Name: "TRM_IndcrRiSts"}, {Signal_Name: "TRM_TrailerSts"}, {Signal_Name: "VCU_ACChrgCrtUpprLmt"}, {Signal_Name: "VCU_ACChrgDchaGunCnctnSts"}, {Signal_Name: "VCU_ACChrgDchaIndcrLampSts"}, {Signal_Name: "VCU_ACChrgDchaSoktT1"}, {Signal_Name: "VCU_ACChrgShttrSts"}, {Signal_Name: "VCU_ACChrgStrtFailReason"}, {Signal_Name: "VCU_ACDCChrgIndcrLamp12VFlt"}, {Signal_Name: "VCU_ACDchaStrtFailReason"}, {Signal_Name: "VCU_APSPerc"}, {Signal_Name: "VCU_AccelModFb"}, {Signal_Name: "VCU_ActChrgTotAh"}, {Signal_Name: "VCU_ActDchgTotAh"}, {Signal_Name: "VCU_ActRgnTq_CRB"}, {Signal_Name: "VCU_ActvDchaEnaFlg"}, {Signal_Name: "VCU_BMSLVWakeUpSts"}, {Signal_Name: "VCU_BattChrgSOC"}, {Signal_Name: "VCU_BattChrgSOCEEPROM"}, {Signal_Name: "VCU_BattFltIndcn"}, {Signal_Name: "VCU_BattVolt"}, {Signal_Name: "VCU_BoostCmd_F"}, {Signal_Name: "VCU_BoostCmd_R"}, {Signal_Name: "VCU_BoostEnStat"}, {Signal_Name: "VCU_BoostEnStatCoded"}, {Signal_Name: "VCU_BrkLampCtrlSts"}, {Signal_Name: "VCU_BrkPedlPwrSplyFlt"}, {Signal_Name: "VCU_BrkPedlSts_GB"}, {Signal_Name: "VCU_BrkSig"}, {Signal_Name: "VCU_BrkSigVld"}, {Signal_Name: "VCU_BrkStrtReq"}, {Signal_Name: "VCU_CcTrgSpdDisp"}, {Signal_Name: "VCU_CellMaxVolt"}, {Signal_Name: "VCU_CellMinVolt"}, {Signal_Name: "VCU_CellVoltLoHVPwrOffFlg"}, {Signal_Name: "VCU_ChrgDchaGunCnctnIndcrLamp"}, {Signal_Name: "VCU_ChrgEndSOCCrtCtrlFlg"}, {Signal_Name: "VCU_ChrgIndcrLamp"}, {Signal_Name: "VCU_ChrgModBHMCnseEgyPerc"}, {Signal_Name: "VCU_ChrgModBattHeatgMngCnseEgy"}, {Signal_Name: "VCU_ChrgModChrgEffCnseEgy"}, {Signal_Name: "VCU_ChrgModChrgEffCnseEgyPerc"}, {Signal_Name: "VCU_ChrgModVehChrgEgy"}, {Signal_Name: "VCU_ChrgPwrLim"}, {Signal_Name: "VCU_ChrgSts"}, {Signal_Name: "VCU_ChrgSts_GB"}, {Signal_Name: "VCU_ChrgSysOperCmd"}, {Signal_Name: "VCU_CoastTqReq"}, {Signal_Name: "VCU_ComChkFlt_BMS"}, {Signal_Name: "VCU_ComChkFlt_ESP"}, {Signal_Name: "VCU_ComChkFlt_VCU"}, {Signal_Name: "VCU_ComLostFlt_ABS"}, {Signal_Name: "VCU_ComLostFlt_BCM"}, {Signal_Name: "VCU_ComLostFlt_BMS"}, {Signal_Name: "VCU_ComLostFlt_BOBC"}, {Signal_Name: "VCU_ComLostFlt_DCDC"}, {Signal_Name: "VCU_ComLostFlt_EHU"}, {Signal_Name: "VCU_ComLostFlt_ESP"}, {Signal_Name: "VCU_ComLostFlt_ICC"}, {Signal_Name: "VCU_ComLostFlt_ICM"}, {Signal_Name: "VCU_ComLostFlt_MCU_F"}, {Signal_Name: "VCU_ComLostFlt_NBS"}, {Signal_Name: "VCU_ComLostFlt_OBC"}, {Signal_Name: "VCU_ComLostFlt_PEPS"}, {Signal_Name: "VCU_ComLostFlt_TBOX"}, {Signal_Name: "VCU_ComLostFlt_VCU"}, {Signal_Name: "VCU_CrashDIRSigPWMPct"}, {Signal_Name: "VCU_CrtSts"}, {Signal_Name: "VCU_DCChrgCrtCmd"}, {Signal_Name: "VCU_DCChrgDchaGunCnctnSts"}, {Signal_Name: "VCU_DCChrgDchaIndcrLampSts"}, {Signal_Name: "VCU_DCChrgOutpCrt"}, {Signal_Name: "VCU_DCChrgOutpVolt"}, {Signal_Name: "VCU_DCChrgRmngTi"}, {Signal_Name: "VCU_DCChrgShttrSts"}, {Signal_Name: "VCU_DCChrgSoktT1"}, {Signal_Name: "VCU_DCChrgSoktT2"}, {Signal_Name: "VCU_DCCrtCmd_OBC"}, {Signal_Name: "VCU_DCDCEnaCmd"}, {Signal_Name: "VCU_DCDCOutpVoltCmd"}, {Signal_Name: "VCU_DCPosRlyCtrlCmd"}, {Signal_Name: "VCU_DCRlyCtrlCmd"}, {Signal_Name: "VCU_DCVoltCmd_OBC"}, {Signal_Name: "VCU_DDmdTq"}, {Signal_Name: "VCU_Decel_ReqType"}, {Signal_Name: "VCU_Decoup_Rq_Mod"}, {Signal_Name: "VCU_DrvModShiftMisoper"}, {Signal_Name: "VCU_DrvModSigFb"}, {Signal_Name: "VCU_DrvMotOutpPwrPerc"}, {Signal_Name: "VCU_DrvTqLimSts"}, {Signal_Name: "VCU_DrvgMilg"}, {Signal_Name: "VCU_DrvrFrntMotTqReq"}, {Signal_Name: "VCU_DrvrMotNr_GB"}, {Signal_Name: "VCU_DrvrReMotTqReq"}, {Signal_Name: "VCU_ECCEnaCmd"}, {Signal_Name: "VCU_ECCSysAllwMaxPwrCnse"}, {Signal_Name: "VCU_ECC_PwrMax"}, {Signal_Name: "VCU_ECC_PwrMin"}, {Signal_Name: "VCU_EPBReq"}, {Signal_Name: "VCU_EPB_Req"}, {Signal_Name: "VCU_EVCANBusFlt"}, {Signal_Name: "VCU_EgyCnsHist01"}, {Signal_Name: "VCU_EmgyShutOff"}, {Signal_Name: "VCU_EvChrgElectcLockCtrlCmd"}, {Signal_Name: "VCU_FCChrgCnt"}, {Signal_Name: "VCU_FMCUHVSelfChkTiOut"}, {Signal_Name: "VCU_F_MnTqLim"}, {Signal_Name: "VCU_F_MxTqGrad"}, {Signal_Name: "VCU_F_MxTqLim"}, {Signal_Name: "VCU_F_cmdSlipCtrlComp"}, {Signal_Name: "VCU_F_rspdEmMax"}, {Signal_Name: "VCU_F_rspdEmMin"}, {Signal_Name: "VCU_FrntCrtWhlTq"}, {Signal_Name: "VCU_FrntMotModCmd"}, {Signal_Name: "VCU_FrntMotTarTqCmd"}, {Signal_Name: "VCU_FrntMotTarTqCmdVld"}, {Signal_Name: "VCU_GearSig"}, {Signal_Name: "VCU_GearSig_GB"}, {Signal_Name: "VCU_HVBActivateDeactivateRq"}, {Signal_Name: "VCU_HVBattActPwr"}, {Signal_Name: "VCU_HVCustSOC"}, {Signal_Name: "VCU_HVEMBoostModSt"}, {Signal_Name: "VCU_HVPwrOffReq"}, {Signal_Name: "VCU_IsolationMonitor_Rq"}, {Signal_Name: "VCU_KL15Req"}, {Signal_Name: "VCU_KickdwnFlg"}, {Signal_Name: "VCU_LVWakeUpSts_CCU"}, {Signal_Name: "VCU_LVWakeUpSts_MCU"}, {Signal_Name: "VCU_LVWakeUpSts_PDU"}, {Signal_Name: "VCU_LVbattCtrlSigOpenFlt"}, {Signal_Name: "VCU_LVbattCtrlSigSTBFlt"}, {Signal_Name: "VCU_LVbattCtrlSigSTGFlt"}, {Signal_Name: "VCU_Lvl2ProtStrtFlg"}, {Signal_Name: "VCU_MaxBoostCntr"}, {Signal_Name: "VCU_NetWakeUpSig"}, {Signal_Name: "VCU_NotChrgModAcsyCnseEgy"}, {Signal_Name: "VCU_NotChrgModAcsyCnseEgyPerc"}, {Signal_Name: "VCU_NotChrgModBHMCnseEgy"}, {Signal_Name: "VCU_NotChrgModBHMCnseEgyPerc"}, {Signal_Name: "VCU_NotChrgModECCCnseEgy"}, {Signal_Name: "VCU_NotChrgModECCCnseEgyPerc"}, {Signal_Name: "VCU_NotChrgModExtDchaCnseEgy"}, {Signal_Name: "VCU_NotChrgModExtDchaCnseEgyPerc"}, {Signal_Name: "VCU_NotChrgModVehDrvCnseEgy"}, {Signal_Name: "VCU_NotChrgModVehDrvCnseEgyPerc"}, {Signal_Name: "VCU_NotChrgModVehTotCnseEgy"}, {Signal_Name: "VCU_OTAInhbRdy"}, {Signal_Name: "VCU_OTARdy_Fb"}, {Signal_Name: "VCU_OTAVehCdnChk_ASIL"}, {Signal_Name: "VCU_OTAVehCdnChk_QM_sts"}, {Signal_Name: "VCU_OTA_ECUInhb_Req"}, {Signal_Name: "VCU_OutpACWakeupSigSts"}, {Signal_Name: "VCU_OutpFCWakeupSigSts"}, {Signal_Name: "VCU_PPrkgFltLvl"}, {Signal_Name: "VCU_ParkRdy"}, {Signal_Name: "VCU_PrefillReq"}, {Signal_Name: "VCU_PwrBattECCEnaCmd"}, {Signal_Name: "VCU_PwrSplyEquipSts"}, {Signal_Name: "VCU_RMCUHVSelfChkTiOut"}, {Signal_Name: "VCU_R_MnTqLim"}, {Signal_Name: "VCU_R_MxTqGrad"}, {Signal_Name: "VCU_R_MxTqLim"}, {Signal_Name: "VCU_R_rspdEmMax"}, {Signal_Name: "VCU_R_rspdEmMin"}, {Signal_Name: "VCU_RdyLamp"}, {Signal_Name: "VCU_ReCrtWhlTq"}, {Signal_Name: "VCU_ReMotDampgFobdFlg"}, {Signal_Name: "VCU_ReMotModCmd"}, {Signal_Name: "VCU_ReMotTarTqCmd"}, {Signal_Name: "VCU_RegenLvlFb"}, {Signal_Name: "VCU_RemBattHeatgFailReason"}, {Signal_Name: "VCU_RemChrgEndCmd"}, {Signal_Name: "VCU_RemChrgEndReason"}, {Signal_Name: "VCU_RemCtrlDrvgBrkReq"}, {Signal_Name: "VCU_RemCtrlDrvgEmgyBrkReq"}, {Signal_Name: "VCU_RemECCEndCmd"}, {Signal_Name: "VCU_RemECCEndReason"}, {Signal_Name: "VCU_RmnUsrECCFctLmtDispCmd"}, {Signal_Name: "VCU_SCChrgCnt"}, {Signal_Name: "VCU_SOCLoWakeUpEnaCmd"}, {Signal_Name: "VCU_SOCLoWakeUpThd"}, {Signal_Name: "VCU_SOCTooHiAlrm"}, {Signal_Name: "VCU_SOCTooLoAlrm"}, {Signal_Name: "VCU_SchedChrgnStsFb"}, {Signal_Name: "VCU_Set_BMS_Mod"}, {Signal_Name: "VCU_Set_Balc_Mod"}, {Signal_Name: "VCU_Set_Chrg_Mod"}, {Signal_Name: "VCU_ShiftMisoper"}, {Signal_Name: "VCU_ShiftOperRmn"}, {Signal_Name: "VCU_SlipRate"}, {Signal_Name: "VCU_StgyGearSig"}, {Signal_Name: "VCU_Sts_CC_ICC"}, {Signal_Name: "VCU_SwVersFlash"}, {Signal_Name: "VCU_SwVersMain"}, {Signal_Name: "VCU_SwVersMinor"}, {Signal_Name: "VCU_SwVersPatch"}, {Signal_Name: "VCU_SysAllwMaxFbPwr"}, {Signal_Name: "VCU_SysAllwMaxPwrCnse"}, {Signal_Name: "VCU_TotOverVoltLvl2ProtFlg"}, {Signal_Name: "VCU_TqLim"}, {Signal_Name: "VCU_TripAvgEgyConsmd"}, {Signal_Name: "VCU_TripMilg"}, {Signal_Name: "VCU_VcuErrBitVect"}, {Signal_Name: "VCU_VcuErrCtgy"}, {Signal_Name: "VCU_VcuState"}, {Signal_Name: "VCU_VehChrgDchgMod"}, {Signal_Name: "VCU_VehCrtChrgEndSOC"}, {Signal_Name: "VCU_VehCtrlrEEPROMFlt"}, {Signal_Name: "VCU_VehCtrlrRAMFlt"}, {Signal_Name: "VCU_VehCtrlrROMFlt"}, {Signal_Name: "VCU_VehExtDchaSts"}, {Signal_Name: "VCU_VehMCUFMaxElecTq"}, {Signal_Name: "VCU_VehMCUFMaxPwrGennTq"}, {Signal_Name: "VCU_VehMCURMaxElecTq"}, {Signal_Name: "VCU_VehMCURMaxPwrGennTq"}, {Signal_Name: "VCU_VehMaxWhlTq"}, {Signal_Name: "VCU_VehMod"}, {Signal_Name: "VCU_VehOperMod"}, {Signal_Name: "VCU_VehRemOperModPwrOnReq"}, {Signal_Name: "VCU_VehRemSCModPwrOnReq"}, {Signal_Name: "VCU_VehSt"}, {Signal_Name: "VCU_VehSts"}, {Signal_Name: "VCU_VehTqDistbnRat"}, {Signal_Name: "VCU_VehTqFltSts"}, {Signal_Name: "VCU_WhlTqAct"}, {Signal_Name: "WTC_B_ActGear"}, {Signal_Name: "WTC_B_ComLost_ECC"}, {Signal_Name: "WTC_B_Crt"}, {Signal_Name: "WTC_B_CrtSts"}, {Signal_Name: "WTC_B_CrtT"}, {Signal_Name: "WTC_B_InlT"}, {Signal_Name: "WTC_H_ActGear"}, {Signal_Name: "WTC_H_Crt"}, {Signal_Name: "WTC_H_CrtPwr"}, {Signal_Name: "WTC_H_CrtSts"}, {Signal_Name: "WTC_H_CrtT"}, {Signal_Name: "WTC_H_InpT"}, {Signal_Name: "XXX_OTAInhbRdy"}, {Signal_Name: "XXX_OTARdy_Fb"}, {Signal_Name: "YRS_LatAcce"}, {Signal_Name: "YRS_LgtAcce"}, {Signal_Name: "iBooster_BrkPedlAppldFlg"}, {Signal_Name: "iBooster_BrkPedlAppldVld"}, {Signal_Name: "iBooster_DrvrBrkPedlTrvl"}, {Signal_Name: "iBooster_DrvrBrkPedlTrvlSts"}, {Signal_Name: "iBooster_ExtBrkReqSts"}, {Signal_Name: "iBooster_MstCylBrkPedlActTrvl"}, {Signal_Name: "iBooster_MstCylBrkPedlActTrvlSts"}}
