# Mapping Speed PT_VehicleAvgSpeed: minupdatedelay: 100 targets: Vehicle.Speed: {} PT_EngineSpeed: minupdatedelay: 100 targets: Vehicle.Powertrain.CombustionEngine.Engine.Speed: transform: math: "floor(x+0.5)" SW_Next: minupdatedelay: 500 targets: Vehicle.Cabin.Infotainment.Media.Action: transform: fullmapping: 1: "SkipForward" SW_Previous: minupdatedelay: 500 targets: Vehicle.Cabin.Infotainment.Media.Action: transform: fullmapping: 1: "SkipBackward" # NOTE: Dependent on AGL-specific VSS overlay adding the extra action SW_Mode: minupdatedelay: 500 targets: Vehicle.Cabin.Infotainment.Media.Action: transform: fullmapping: 1: "NextSource" # NOTE: Dependent on AGL-specific VSS overlay adding the signal SW_Info: minupdatedelay: 500 targets: Vehicle.Cabin.Infotainment.Cluster.Mode: transform: fullmapping: 1: "true" # # The following is a little hackish, due to relying on the # application to treat IsActive and IsSet = "true" as toggles, and # being dependent on the AGL-specific VSS overlay to add IsSet. # A standalone LIN feeder with some state knowledge would maybe # be cleaner. Another possible option would be the addition of # another type of transform that has state to the DBC feeder. # SW_CruiseEnable: minupdatedelay: 500 targets: Vehicle.ADAS.CruiseControl.IsActive: transform: fullmapping: 1: "true" SW_CruiseSet: minupdatedelay: 500 targets: Vehicle.ADAS.CruiseControl.IsSet: transform: fullmapping: 1: "true" SW_CruiseResume: minupdatedelay: 500 targets: Vehicle.ADAS.CruiseControl.IsSet: transform: fullmapping: 1: "true" SW_CruiseCancel: minupdatedelay: 500 targets: Vehicle.ADAS.CruiseControl.IsSet: transform: fullmapping: 1: "false" SW_LaneDepartureWarning: minupdatedelay: 500 targets: Vehicle.ADAS.LaneDepartureDetection.IsActive: transform: fullmapping: 1: "true"