# DBC mappings for vehicle and engine speeds

Vehicle.Speed:
  datatype: float
  type: sensor
  dbc2vss:
    signal: PT_VehicleAvgSpeed
    interval_ms: 100

Vehicle.Powertrain.CombustionEngine.Speed:
  datatype: float
  type: sensor
  dbc2vss:
    signal: PT_EngineSpeed
    interval_ms: 100
    transform:
      math: "floor(x+0.5)"

# DBC mappings for other signals for V2C demo

Vehicle.Body.Lights.Hazard.IsSignaling:
  datatype: boolean
  type: actuator
  dbc2vss:
    signal: PT_HazardOn
    on_change: true
    transform:
      mapping:
        - from: 0
          to: false
        - from: 1
          to: true

Vehicle.Body.Lights.DirectionIndicator.Left.IsSignaling:
  datatype: boolean
  type: actuator
  dbc2vss:
    signal: PT_LeftTurnOn
    on_change: true
    transform:
      mapping:
        - from: 0
          to: false
        - from: 1
          to: true

Vehicle.Body.Lights.DirectionIndicator.Right.IsSignaling:
  datatype: boolean
  type: actuator
  dbc2vss:
    signal: PT_RightTurnOn
    on_change: true
    transform:
      mapping:
        - from: 0
          to: false
        - from: 1
          to: true

Vehicle.OBD.ThrottlePosition:
  datatype: float
  type: sensor
  dbc2vss:
    signal: ThrottlePosition
    interval_ms: 100

Vehicle.Chassis.SteeringWheel.Angle:
  datatype: int16
  type: sensor
  dbc2vss:
    signal: SteeringPosition
    interval_ms: 100

Vehicle.Chassis.Brake.PedalPosition:
  datatype: uint8
  type: sensor
  dbc2vss:
    signal: BrakePressure
    interval_ms: 100
    transform:
      math: "floor(x / 19125 * 100 + 0.5)"

Vehicle.Powertrain.Transmission.SelectedGear:
  datatype: int8
  type: sensor
  dbc2vss:
    signal: Gear
    interval_ms: 100

Vehicle.Acceleration.Lateral:
  datatype: float
  type: sensor
  dbc2vss:
    signal: AccelerationX
    interval_ms: 100

Vehicle.Acceleration.Longitudinal:
  datatype: float
  type: sensor
  dbc2vss:
    signal: AccelerationY
    interval_ms: 100

Vehicle.Acceleration.Vertical:
  datatype: float
  type: sensor
  dbc2vss:
    signal: AccelerationZ
    interval_ms: 100

Vehicle.AngularVelocity.Pitch:
  datatype: float
  type: sensor
  dbc2vss:
    signal: GyroscopeX
    interval_ms: 100

Vehicle.AngularVelocity.Roll:
  datatype: float
  type: sensor
  dbc2vss:
    signal: GyroscopeY
    interval_ms: 100

Vehicle.AngularVelocity.Yaw:
  datatype: float
  type: sensor
  dbc2vss:
    signal: GyroscopeZ
    interval_ms: 100

Vehicle.CurrentLocation.Latitude:
  datatype: double
  type: sensor
  dbc2vss:
    signal: Latitude
    interval_ms: 100

Vehicle.CurrentLocation.Longitude:
  datatype: double
  type: sensor
  dbc2vss:
    signal: Longitude
    interval_ms: 100


#
# AGL VSS additions
#

# Extra navigation state signals

Vehicle.Cabin.Infotainment.Navigation.State:
  datatype: string
  type: sensor
  allowed: [ 'UNKNOWN', 'ACTIVE', 'ARRIVED', 'STOPPED' ]
  description: Navigation state.

Vehicle.Cabin.Infotainment.Navigation.ElapsedDistance:
  datatype: float
  type: sensor
  unit: km
  description: Navigation elapsed distance.


# Extra audio control signals

Vehicle.Cabin.Infotainment.Media.Audio:
  type: branch
  description: Media audio controls.

Vehicle.Cabin.Infotainment.Media.Audio.Balance:
  datatype: int8
  type: actuator
  min: -100
  max: 100
  unit: percent
  description: Audio left/right balance.

Vehicle.Cabin.Infotainment.Media.Audio.Fade:
  datatype: int8
  type: actuator
  min: -100
  max: 100
  unit: percent
  description: Audio front/rear balance.

Vehicle.Cabin.Infotainment.Media.Audio.Bass:
  datatype: int8
  type: actuator
  min: -100
  max: 100
  unit: percent
  description: Audio low-frequency filter control.

Vehicle.Cabin.Infotainment.Media.Audio.Treble:
  datatype: int8
  type: actuator
  min: -100
  max: 100
  unit: percent
  description: Audio high-frequency filter control.


# Extra steering wheel switch signals, including DBC mappings

Vehicle.Cabin.SteeringWheel:
  type: branch
  description: AGL steering wheel demo data.

Vehicle.Cabin.SteeringWheel.Switches:
  type: branch
  description: AGL steering wheel demo switch data.

Vehicle.Cabin.SteeringWheel.Switches.VolumeUp:
  datatype: boolean
  type: sensor
  description: Steering wheel volume up switch engaged.
  vss2dbc:
    signal: SW_VolumeUp
    transform:
      mapping:
        - from: false
          to: 0
        - from: true
          to: 1

Vehicle.Cabin.SteeringWheel.Switches.VolumeDown:
  datatype: boolean
  type: sensor
  description: Steering wheel volume down switch engaged.
  vss2dbc:
    signal: SW_VolumeDown
    transform:
      mapping:
        - from: false
          to: 0
        - from: true
          to: 1

Vehicle.Cabin.SteeringWheel.Switches.VolumeMute:
  datatype: boolean
  type: sensor
  description: Steering wheel volume mute switch engaged.
  vss2dbc:
    signal: SW_VolumeMute
    transform:
      mapping:
        - from: false
          to: 0
        - from: true
          to: 1

Vehicle.Cabin.SteeringWheel.Switches.Next:
  datatype: boolean
  type: sensor
  description: Steering wheel next switch engaged.
  vss2dbc:
    signal: SW_Next
    transform:
      mapping:
        - from: false
          to: 0
        - from: true
          to: 1

Vehicle.Cabin.SteeringWheel.Switches.Previous:
  datatype: boolean
  type: sensor
  description: Steering wheel previous switch engaged.
  vss2dbc:
    signal: SW_Previous
    transform:
      mapping:
        - from: false
          to: 0
        - from: true
          to: 1

Vehicle.Cabin.SteeringWheel.Switches.Mode:
  datatype: boolean
  type: sensor
  description: Steering wheel mode switch engaged.
  vss2dbc:
    signal: SW_Mode
    transform:
      mapping:
        - from: false
          to: 0
        - from: true
          to: 1

Vehicle.Cabin.SteeringWheel.Switches.Info:
  datatype: boolean
  type: sensor
  description: Steering wheel info switch engaged.
  vss2dbc:
    signal: SW_Info
    transform:
      mapping:
        - from: false
          to: 0
        - from: true
          to: 1

Vehicle.Cabin.SteeringWheel.Switches.CruiseEnable:
  datatype: boolean
  type: sensor
  description: Steering wheel cruise enable switch engaged.
  vss2dbc:
    signal: SW_CruiseEnable
    transform:
      mapping:
        - from: false
          to: 0
        - from: true
          to: 1

Vehicle.Cabin.SteeringWheel.Switches.CruiseSet:
  datatype: boolean
  type: sensor
  description: Steering wheel cruise set switch engaged.
  vss2dbc:
    signal: SW_CruiseSet
    transform:
      mapping:
        - from: false
          to: 0
        - from: true
          to: 1

Vehicle.Cabin.SteeringWheel.Switches.CruiseResume:
  datatype: boolean
  type: sensor
  description: Steering wheel cruise resume switch engaged.
  vss2dbc:
    signal: SW_CruiseResume
    transform:
      mapping:
        - from: false
          to: 0
        - from: true
          to: 1

Vehicle.Cabin.SteeringWheel.Switches.CruiseCancel:
  datatype: boolean
  type: sensor
  description: Steering wheel cruise cancel switch engaged.
  vss2dbc:
    signal: SW_CruiseCancel
    transform:
      mapping:
        - from: false
          to: 0
        - from: true
          to: 1

Vehicle.Cabin.SteeringWheel.Switches.CruiseLimit:
  datatype: boolean
  type: sensor
  description: Steering wheel cruise limit switch engaged.
  vss2dbc:
    signal: SW_CruiseLimit
    transform:
      mapping:
        - from: false
          to: 0
        - from: true
          to: 1

Vehicle.Cabin.SteeringWheel.Switches.CruiseDistance:
  datatype: boolean
  type: sensor
  description: Steering wheel cruise distance switch engaged.
  vss2dbc:
    signal: SW_CruiseDistance
    transform:
      mapping:
        - from: false
          to: 0
        - from: true
          to: 1

Vehicle.Cabin.SteeringWheel.Switches.Voice:
  datatype: boolean
  type: sensor
  description: Steering wheel voice switch engaged.
  vss2dbc:
    signal: SW_Voice
    transform:
      mapping:
        - from: false
          to: 0
        - from: true
          to: 1

Vehicle.Cabin.SteeringWheel.Switches.PhoneCall:
  datatype: boolean
  type: sensor
  description: Steering wheel phone call switch engaged.
  vss2dbc:
    signal: SW_PhoneCall
    transform:
      mapping:
        - from: false
          to: 0
        - from: true
          to: 1

Vehicle.Cabin.SteeringWheel.Switches.PhoneHangup:
  datatype: boolean
  type: sensor
  description: Steering wheel phone hangup switch engaged.
  vss2dbc:
    signal: SW_PhoneHangup
    transform:
      mapping:
        - from: false
          to: 0
        - from: true
          to: 1

Vehicle.Cabin.SteeringWheel.Switches.Horn:
  datatype: boolean
  type: sensor
  description: Steering wheel horn switch engaged.
  vss2dbc:
    signal: SW_Horn
    transform:
      mapping:
        - from: false
          to: 0
        - from: true
          to: 1

Vehicle.Cabin.SteeringWheel.Switches.LaneDepartureWarning:
  datatype: boolean
  type: sensor
  description: Steering wheel lane departure warning switch engaged.
  vss2dbc:
    signal: SW_LaneDepartureWarning
    transform:
      mapping:
        - from: false
          to: 0
        - from: true
          to: 1