Initial cloud-services repo - gateway service + pkg modules
This commit is contained in:
173
pkg/dbc/dbc_fm29_frsd390.go
Normal file
173
pkg/dbc/dbc_fm29_frsd390.go
Normal file
@@ -0,0 +1,173 @@
|
||||
package dbc
|
||||
|
||||
import (
|
||||
"fiskerinc.com/modules/dbc/diagnostics"
|
||||
fm29_frsd390 "fiskerinc.com/modules/dbc/fm29_frsd390"
|
||||
"fiskerinc.com/modules/dbc/models"
|
||||
"fiskerinc.com/modules/dbc/state"
|
||||
)
|
||||
|
||||
func NewFM29_FRSD390_DBC() models.DBCVersionInterface {
|
||||
fm29_frsd0md := &fm29_frsd390.MessagesDescriptor{}
|
||||
fm29_frsd0db := fm29_frsd0md.Database()
|
||||
|
||||
return models.NewDBCVersion(fm29_frsd0db, fm29_frsd390.Hash).
|
||||
// bbus.go
|
||||
AddMsg(models.NewCANMessage(336, 12).
|
||||
Signal(7, state.MCU_F_CrtMod, state.IntFloor)).
|
||||
AddMsg(models.NewCANMessage(337, 13).
|
||||
Signal(7, state.MCU_R_CrtMod, state.IntFloor).
|
||||
Signal(8, state.MCU_R_Decoup_State, state.IntFloor)).
|
||||
AddMsg(models.NewCANMessage(532, 23).
|
||||
Signal(2, state.VCU_RdyLamp, state.FloatToBool).
|
||||
Signal(8, state.VCU_GearSig, state.IntFloor).
|
||||
Signal(12, state.VCU_VehSt, state.IntFloor)).
|
||||
AddMsg(models.NewCANMessage(552, 9).
|
||||
Signal(7, state.MCU_F_ActSafeSt, state.IntFloor)).
|
||||
AddMsg(models.NewCANMessage(553, 9).
|
||||
Signal(7, state.MCU_R_ActSafeSt, state.IntFloor)).
|
||||
AddMsg(models.NewCANMessage(566, 10).
|
||||
Signal(8, state.VCU_VcuState, state.IntFloor)).
|
||||
AddMsg(models.NewCANMessage(792, 17).
|
||||
Signal(10, state.ESP_VehSpd, state.RoundMilli)).
|
||||
AddMsg(models.NewCANMessage(608, 12).
|
||||
Signal(4, state.VCU_VehChrgDchgMod, state.GetMappedStrValues(map[float64]string{
|
||||
0: "Initial_value",
|
||||
1: "DC_charging",
|
||||
2: "VTOL_discharging",
|
||||
3: "VTOV_discharging",
|
||||
4: "AC_charging",
|
||||
5: "V2L_trunk_active",
|
||||
}))).
|
||||
AddMsg(models.NewCANMessage(681, 5).
|
||||
Signal(1, state.IBS_BatteryVoltage, state.RoundMilli)).
|
||||
AddMsg(models.NewCANMessage(757, 4).
|
||||
Signal(0, state.BMS_Bat_SoC_usable, state.IntFloor).
|
||||
Signal(2, state.BMS_Bat_SOH, state.IntFloor)).
|
||||
AddMsg(models.NewCANMessage(801, 6).
|
||||
Signal(0, state.BCM_AP_FL_LeFrntWinPosnInfo, state.IntCeil).
|
||||
Signal(1, state.BCM_AP_FL_RiFrntWinPosnInfo, state.IntCeil).
|
||||
Signal(2, state.BCM_AP_FL_LeReWinPosnInfo, state.IntCeil).
|
||||
Signal(3, state.BCM_AP_FL_RiReWinPosnInfo, state.IntCeil)).
|
||||
AddMsg(models.NewCANMessage(816, 14).
|
||||
Signal(4, state.BMS_PwrBattRmngCpSOC, state.IntFloor)).
|
||||
AddMsg(models.NewCANMessage(821, 37).
|
||||
Signal(21, state.BCM_ReDefrstHeatgCmd, state.FloatToBool)).
|
||||
AddMsg(models.NewCANMessage(835, 34).
|
||||
Signal(4, state.BCM_FrntHoodLidSts, state.FloatToBool).
|
||||
Signal(6, state.BCM_FrntDrDoorLockSts, state.FloatToBool).
|
||||
Signal(9, state.BCM_DrFrntDoorSts, state.FloatToBool).
|
||||
Signal(10, state.BCM_PasFrntDoorSts, state.FloatToBool).
|
||||
Signal(12, state.BCM_CenLockSwtSts, state.IntFloor).
|
||||
Signal(14, state.BCM_RiReDoorSts, state.FloatToBool).
|
||||
Signal(15, state.BCM_LeReDoorSts, state.FloatToBool).
|
||||
Signal(29, state.BCM_SunroofPosnInfo, state.IntCeil)).
|
||||
AddMsg(models.NewCANMessage(873, 12).
|
||||
Signal(0, state.BCM_AP_TL_LeReWinPosnInfo, state.IntCeil).
|
||||
Signal(1, state.BCM_AP_TL_RiReWinPosnInfo, state.IntCeil).
|
||||
Signal(2, state.BCM_AP_RW_WinPosnInfo, state.IntCeil)).
|
||||
AddMsg(models.NewCANMessage(882, 14).
|
||||
Signal(6, state.BMS_BattAvrgT, state.IntFloor)).
|
||||
AddMsg(models.NewCANMessage(883, 24).
|
||||
Signal(15, state.ECC_OutdT, state.IntFloor)).
|
||||
AddMsg(models.NewCANMessage(902, 8).
|
||||
Signal(0, state.BCM_HeatedSteerWhlSt, state.FloatToBool)).
|
||||
AddMsg(models.NewCANMessage(1284, 16).
|
||||
Signal(12, state.VCU_DrvgMilg, state.IntFloor)).
|
||||
AddMsg(models.NewCANMessage(1298, 5).
|
||||
Signal(0, state.PSM_PassSeatHeatgSts, state.IntFloor)).
|
||||
AddMsg(models.NewCANMessage(1304, 6).
|
||||
Signal(0, state.DSMC_DrvrSeatHeatgSts, state.IntFloor)).
|
||||
AddMsg(models.NewCANMessage(1329, 7).
|
||||
Signal(1, state.ICC_TotMilg_ODO, state.IntFloor)).
|
||||
AddMsg(models.NewCANMessage(1429, 2).
|
||||
Signal(0, state.BMS_RmChrgTi_FullChrg, state.Int).
|
||||
Signal(1, state.BMS_RmChrgTi_TrgtSoC, state.Int)).
|
||||
/*
|
||||
AddMsg(models.NewCANMessage(1408, 4).
|
||||
Signal(2, state.VCU_DCChrgRmngTi, state.Int)).
|
||||
*/
|
||||
AddMsg(models.NewCANMessage(1410, 7).
|
||||
Signal(0, state.ECC_InsdT, state.IntFloor).
|
||||
Signal(2, state.ECC_RemTSetSts, state.IntFloor)).
|
||||
AddMsg(models.NewCANMessage(1137, 21).
|
||||
Signal(17, state.PLGM_TrSts, state.FloatToBool)).
|
||||
// ibus2.go
|
||||
AddMsg(models.NewCANMessage(1317, 3).
|
||||
Signal(2, state.TBOX_GPSHei, state.RoundMilli)).
|
||||
AddMsg(models.NewCANMessage(1318, 2).
|
||||
Signal(0, state.TBOX_GPSLongi, state.RoundGPS).
|
||||
Signal(1, state.TBOX_GPSLati, state.RoundGPS)).
|
||||
AddMsg(models.NewCANMessage(345, 10).
|
||||
Signal(5, state.ACU_Drvr_Occpt_St, state.Int)).
|
||||
AddMsg(models.NewCANMessage(819, 12).
|
||||
Signal(4, state.BCM_PwrMod, state.Int)).
|
||||
AddMsg(models.NewCANMessage(1316, 4).
|
||||
Signal(0, state.PWC_ChrgSts, state.Int)).
|
||||
// Alexander Andrews Immobilization status possible signals
|
||||
AddMsg(models.NewCANMessage(54, 99).
|
||||
Signal(15, state.TBOX_RemCtrlCmdFb, state.GetMappedStrValues(map[float64]string{
|
||||
0: "Void",
|
||||
1: "Successful",
|
||||
2: "Failed",
|
||||
3: "Processing",
|
||||
}))).
|
||||
AddMsg(models.NewCANMessage(537, 23). // Should investigate keeping as ints, or using the human readable value? Also make auto generator for this
|
||||
Signal(3, state.VCU_IMMO_Sts, state.GetMappedStrValues(map[float64]string{
|
||||
0: "Immo_Active",
|
||||
1: "Immo_Inactive",
|
||||
2: "Reserved",
|
||||
3: "Invalid",
|
||||
}))).
|
||||
AddMsg(models.NewCANMessage(817, 15).
|
||||
Signal(7, state.PKC_IMMO_AuthSts, state.GetMappedStrValues(map[float64]string{
|
||||
0: "Initial",
|
||||
1: "Auth_Valid",
|
||||
2: "Auth_Invalid",
|
||||
3: "Invalid",
|
||||
}))).
|
||||
AddMsg(models.NewCANMessage(896, 8).
|
||||
Signal(7, state.PKC_AuthFailPromt, state.GetMappedStrValues(map[float64]string{
|
||||
0: "Inactive",
|
||||
1: "VCU_Authentication_Failure",
|
||||
2: "Reserved",
|
||||
3: "Invalid",
|
||||
}))).
|
||||
AddMsg(models.NewCANMessage(83, 7).
|
||||
Signal(2, state.TBOX_RemCtrlLockCmd, state.GetMappedStrValues(map[float64]string{
|
||||
0: "without_remote_control",
|
||||
1: "Remote_unlocking",
|
||||
2: "Remote_locking",
|
||||
3: "Invalid",
|
||||
}))).
|
||||
AddMsg(models.NewCANMessage(891, 17).
|
||||
Signal(10, state.PKC_StrtFailTyp, state.GetMappedStrValues(map[float64]string{
|
||||
0: "No_error",
|
||||
1: "Reserved",
|
||||
2: "VCU_Authentication_Failure",
|
||||
3: "Time_Out_(Crank_Off_Time)",
|
||||
4: "Auth_Pass",
|
||||
5: "Remote Immo Enabled",
|
||||
6: "No Key detected inside the vehicle",
|
||||
7: "Alcointerlock Enabled",
|
||||
8: "Initial value",
|
||||
9: "Reserved 9",
|
||||
10: "Reserved 10",
|
||||
11: "Reserved 11",
|
||||
12: "Reserved 12",
|
||||
13: "Reserved 13",
|
||||
14: "Reserved 14",
|
||||
15: "Reserved 15",
|
||||
})).
|
||||
Signal(3, state.PKC_KeyStsMod, state.GetMappedStrValues(map[float64]string{
|
||||
0: state.PKC_KeyStsMod_disabled,
|
||||
1: state.PKC_KeyStsMod_enabled,
|
||||
}))).
|
||||
AddMsg(models.NewCANMessage(377, 4).
|
||||
Signal(2, state.TBOX_Heading, state.RoundMilli)).
|
||||
// So not sure what happened, but I added these to the state but didn't add them to the parse set up
|
||||
AddMsg(models.NewCANMessage(684, 5).
|
||||
Signal(0, state.IBS_StateOfCharge, state.RoundMilli).
|
||||
Signal(1, state.IBS_StateOfHealth, state.RoundMilli)).
|
||||
SetDiagnosticFlags(diagnostics.FM29FRSD0DiagnosticFlags)
|
||||
}
|
||||
Reference in New Issue
Block a user