Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Information TypeValues Illustration #VSS Alignment / MappingAndroid Alignment / mappingNotes

Seat Component 

Moveable Seating Component (Electrically Driven)



Complete seat All
  • Vehicle.Cabin.Seat is the complete seat definition.
    •  VehicleVehicle.Cabin.Seat.Row1.DriverSide would be an instance.
Vehicle.Cabin.Seat.Row1.DriverSide.Position:
datatype: uint16
description: Seat position on vehicle x-axis. Position is relative to the frontmost position supported by the seat. 0 = Frontmost position supported
    • .



  min: 0
  type: actuator
  unit: mmSEAT_FORE_AFT

SEAT_DEPTH

SEAT_HEIGHT

SEAT_TILT

Should there be a seat type (e.g. individual, partof bench, 2/3 split...)?

Lumbar

  • Top
  • Middle
  • Lower

5

  • top =5a
  • mid =5b
  • lower =5c

Current

  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Lumbar - Adjustable lumbar support mechanisms in seats allow the user to change the seat back shape.
  • Vehicle.Cabin.Seat.Backrest.LumbarSupport
    • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Lumbar.Height - mm - Height of lumbar support. Position is relative within available movable range of the lumbar support. 0 = Lowermost position supported.LumbarHeight

Differs:  Lumbar is only one piece in VSS not three components


Proposed

  • Vehicle.Cabin.Seat.Row1.DriverSideBackrest.LumbarSupport - Entire lumbar
  • Vehicle.Cabin.Seat.Backrest.Lumbar.Support - percent - lumbar support (in/out position). 0 = Innermost position. 100 = Outermost position.
Differs:  Lumbar is only one piece in VSS not three components
  • LumbarSupportTop - just top
  • Vehicle.Cabin.Seat.Backrest.LumbarSupportMid - just mid
  • Vehicle.Cabin.Seat.Backrest.LumbarSupportBottom - just bottom
  • Vehicle.Cabin.Seat.Backrest.LumbarHeight - Move entire lumber (all three pieces) up and down

SEAT_LUMBAR_VERTICAL

SEAT_LUMBAR_FORE_AFT

Differs:  Lumbar is only one piece in Android


Cushion Side Bolster

12

  • right = 12a
  • left = 12b

Differs:  Does not exist in VSS

Proposed

Seating.SideBolsterSupportRight

Seating.SideBolsterSupportLeft


SEAT_CUSHION_SIDE_SUPPORT


Backrest Side Bolster

11

  • right = 11a
  • left = 11b

Current

  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.SideBolster - Backrest side bolster (lumbar side support) settings.
    • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.SideBolsterSupport

Differs:  SideBolster

.Support percent - Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support.

is represented as one piece vs two


Proposed

  • Vehicle.Cabin.Seat.Backrest.SideBolsterSupport
  • Vehicle.Cabin.Seat.Backrest.SideBolsterSupportLeft
  • Vehicle.Cabin.Seat.Backrest.SideBolsterSupportRight
Differs:  SideBolster is represented as one piece vs two
SEAT_LUMBAR_SIDE_SUPPORT

Upper Shoulder (fwd/backward)

9

Differs:  Does not exist in VSS.  Is it needed?


Proposed

Backrest.UpperShoulderSupport

Differs:  Does not exist in Android

Backrest (was Cushion Front)

10

Current

  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest - Describes signals related to the backrest of the seat.
    • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Recline degrees - Backrest recline compared to seat z-axis (seat vertical axis). 0 degrees = Upright/Vertical backrest. Negative degrees for forward recline. Positive degrees for backward recline.



SEAT_BACKREST_ANGLE_1

SEAT_BACKREST_ANGLE_2


Cushion Extension

13

Blue thing

Current

  • Vehicle.Cabin.Seat.Row1.DriverSide.Seating - Describes signals related to the seat bottom of the seat.
    • Vehicle.Cabin.Seat.Row1.DriverSide.Seating.Length - Length adjustment of seating. 0 = Adjustable part of seating in rearmost position (Shortest length of seating).
Differs:  Does not exist in Android

Headrest

4

Current

  • Vehicle.Cabin.Seat.Row1.DriverSide.Headrest - Headrest settings
    • Vehicle.Cabin.Seat.Row1.DriverSide.Headrest.Height - mm Seat position on vehicle z-axis. Position is relative within available movable range of the seating. 0 = Lowermost position supported.
    • Vehicle.Cabin.Seat.Row1.Middle.Headrest.Angle - Headrest angle, relative to backrest, 0 degrees if parallel to backrest, Positive degrees = tilted forward.

SEAT_HEADREST_ANGLE

SEAT_HEADREST_FORE_AFT

SEAT_HEADREST_HEIGHT


Airbag


Current

  • Vehicle.Cabin.Seat.Row1.DriverSide.Airbag
    • Vehicle.Cabin.Seat.Row1.DriverSide.Airbag.IsDeployed - boolean - Airbag deployment status. True = Airbag deployed. False = Airbag not deployed.
  • Vehicle.Cabin.Seat.Row1.PassengerSide.Airbag


VSS has deployed but not enabled.  


Proposed

  • Airbag.IsEnabled

SEATSEAT_AIRBAG_ENABLED


Has enabled only not deployed

Should we consider extending VSS for other airbags.

Neck Scarf (fan)

6

Differs:  Does not exist


Propose

Vehicle.Cabin.Seat.NeckScarf

Differs: Does not existAdd to VSS?

Seat Belt (height)


Current

  • Vehicle Vehicle.Cabin.Seat.Row1.DriverSide.IsBelted
  • Boolean
  • Vehicle.Cabin.Seat.Row1.DriverSide.SeatBeltHeightSeat belt position on vehicle z-axis. Position is relative within available movable range of the seat belt. 0 = Lowermost position supported.

SEAT_BELT_BUCKLED

SEAT_BELT_HEIGHT_MOVE

SEAT_BELT_HEIGHT_POS


Seat Component Illustrations (maintained on  Miro)

Image Modified


Bolsters and Bladders:

Image Modified


Seat & Component Movements or Positions 

Words describing control parameters or changeable properties related to movement or position.

Information TypeDefinitionValues Illustration #
BMWFordGMVolvo Cars
VSS Alignment / MappingAndroid Alignment / MappingNotes
DirectionDirection of seat or component movement
  • Forward - toward the front of the vehicle
foredepends on the componentUp - toward the


Applied by seat or component like:

Is Fold a direction?
Team agreed it is a capability
  • Backward - toward the back of the vehicle
aftdepends on the component


  • Up - toward the roof of the vehicle
depends on the component

Applied by Seat or Component like:

  • Vehicle.Cabin.Seat.Row1.DriverSide.Height
  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Lumbar.Height
  • Vehicle.Cabin.Seat.Row1.DriverSide.Headrest.Height

Applied by seat or component like:


  • Down - toward the bottom of the vehicle
depends on the component


  • Inflate - fill with air
increasedepends on the component

Applied by inflatable Component like:

  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Lumbar.Support percent - lumbar support (in/out position). 0 = Innermost position. 100 = Outermost position.
  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.SideBolster.Support percent - Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support.


  • Deflate - remove air
decrease
depends on the component



  • Tilt / Recline (angles)
anglesdepends on the component

Applied by Component like:

  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Recline -

degrees - Seat z-axis depends on seat tilt. This means that movement of backrest due to seat tilting will not affect Backrest.Recline as long as the angle between Seating and Backrest are constant. Absolute recline relative to vehicle z-axis can be calculated as Tilt + Backrest.Recline.

  • Vehicle.Cabin.Seat.Row1.DriverSide.Headrest.Angle -

degrees - Headrest angle, relative to backrest, 0 degrees if parallel to backrest, Positive degrees = tilted forward.



  • Swivel




Position

position on horizontal plane (x-axis) or vertical plane (z-axis) of seat or component

Needs Clarification.
Percent of total? clicks? x, y, z axis values?

Should height be separate?

Is y-axis needed?




  • Vehicle.Cabin.Seat.Row1.DriverSide.Position -

Seat position on vehicle x-axis. mm

  • Vehicle.Cabin.Seat.Row1.DriverSide.Position -
Seat position on vehicle x-axis. mm

- Position is relative to the frontmost position supported by the seat. 0 = Frontmost position supported.

  • Vehicle.Cabin.Seat.Row1.DriverSide.Height -

mm - Seat position on vehicle z-axis. Position is relative within available movable range of the seating. 0 = Lowermost position supported.

AI:  align what position means


Tilt Angle


tilt angle of seat or component (also known as recline

)duplicate to Tilt / Recline (angles

)

duplicate to Tilt / Recline (angles) under "direction" above


  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Recline -

degrees - Seat z-axis depends on seat tilt. This means that movement of backrest due to seat tilting will not affect Backrest.Recline as long as the angle between Seating and Backrest are constant. Absolute recline relative to vehicle z-axis can be calculated as Tilt + Backrest.Recline.

  • Vehicle.Cabin.Seat.Row1.DriverSide.Headrest.Angle -

degrees - Headrest angle, relative to backrest, 0 degrees if parallel to backrest, Positive degrees = tilted forward.




Seat Heating and Cooling

Words describing control parameters or changeable properties related to seat heating and cooling.

Information TypeDefinitionValues Illustration #
BMW
FordGMVolvo Cars
VSS MappingAndroid Alignment / mappingNotes

Temperature

OFF
Cooling (level 1, 2, 3)

Heat (level 1, 2, 3)

-




  • -100 = max cooling
  • 100 = max heating
  • 0 = off


  • Vehicle.Cabin.Seat.Row1.DriverSide.HeatingCooling
    •  Heating or Cooling requsted for the Item. -100 = Maximum cooling, 0 = Heating/cooling deactivated, 100 = Maximum heating
HVAC_SEAT_TEMPERATUREShould this be heating cooling?

Temperature Controlled Element Mode



  • On
addedIs "On" covered by heat, cool, or vent?





  • Off





  • Cool
level 1, 2, 3





  • Vent
as predetermined percentages





  • Heat
level 1, 2, 3




Fan Speed
  • Off
delete covered by Seat temp modeConcur with comment from BMW

Not in VSS

HVAC_SEAT_VENTILATION

Not the same

What does this apply to?

  • Auto





  • Level 1 





  • Level 2





  • Level 3 





  • Level 4 
added





  • Level 5





Seat Massage


Information TypeDefinitionValues Illustration #
BMW
FordGMVolvo Cars
VSS Alignment / MappingAndroid Alignment / MappingNotes
Massage CapabilityIs the seat capable of providing massage.

yes/no or true/false

we need a general discover mechanismOverlaps with with Seat Massage Type

Not in VSS


Recommendation 

Not in Andriod
Massage Status
On/Off
Overlaps with Seat Massage Type

  • Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Massage - Switches for SingleSeat.Massage.
  • Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Massage.IsDecreaseEngaged - Decrease massage level switch engaged (SingleSeat.Massage).
  • Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Massage.IsIncreaseEngaged - Increase massage level switch engaged (SingleSeat.Massage).


Massage Types Available massage types for a specific seat, including none. Values will vary by OEM, therefore, need a capability to determine types per seat.
Massage Patterns

Not in VSSNot in Android
Seat Massage Type
  • Off
  • Roll
  • Knead
  • Anti Fatigue
  • Pulse
  • Stretch
  • Lumbar
  • Shoulder
  • Wave
  • Relief
  • Glide
Need discovery capability as will vary by seat.

Not in VSSNot in Android
Massage Intensity
Intensity of massage
??1-5?

Vehicle.Cabin.Seat.Row1.DriverSide.MassageLevel - Seat massage level. 0 = off. 100 = max massage.


Seat Haptics

Haptics are seat or component vibrations used to alert the driver or provide feedback. Typically used by ADAS such as lane departure warning.

Information TypeDefinitionValues Illustration #
BMWFordGMVolvo Cars
VSS Alignment / MappingAndroid Alignment / Mapping
Delay Between Pulses
internal calibration at the moment, based on the requestor



Not in VSSNot in Android
Haptic Pulses





Seat Occupancy and Safety


Information TypeDefinitionValues Illustration #
BMWFordGMVolvo Cars
VSS Alignment / MappingAndroid Alignment / MappingNotes
Seat Occupancy Status
  • Unknown

Vehicle.Cabin.Seat.Row1.DriverSide.IsOccupied - boolean - is or is not occupied.  No Unkown.

  • Occupied

  • Empty

Seat Occupant ID
??What is this?



  • Vehicle.Cabin.Seat.Row1.DriverSide.Occupant.Identifier -
    • v5.0  use data from Vehicle.Occupant.*.*.Identifier.
    • Identifier attributes based on OAuth 2.0.
  • Vehicle.Cabin.Seat.Row1.DriverSide.Occupant.Identifier.Subject
    • v5.0 - use data from Vehicle.Occupant.*.*.Identifier.
    • Subject for the authentication of the occupant e.g. UserID 7331677.


Child seat
  • Installed (true/false)
added




Seat Belt Status
  • Fastened

Vehicle.Cabin.Seat.Row1.DriverSide.IsBelted  - boolean - is or is not belted/fastened

Related:

  • Vehicle.Cabin.Seat.Row1.PassengerSide.SeatBeltHeight - Seat belt position on vehicle z-axis. Position is relative within available movable range of the seat belt. 0 = Lowermost position supported.




  • Unfastened

Other Seat Information


Information TypeDefinitionValues Illustration #BMWFordGMVolvo CarsVSS Alignment / MappingAndroid Alignment / MappingNotes
Seat Switch 






  • Seat Switch Signals - e.g. Vehicle.Cabin.Seat.Row1.DriverSide.Switch.Backrest.IsReclineBackwardEngaged
  • See spec and generated schema for details

Address in VSS - Is this needed for capabilities?  

...

Seat Movement and Position


Capability

Description

Inputs

Outputs

Dependencies

Assumptions /Constraints

VSS Examples / Mapping

Android Examples / Mapping

Notes

Movement & Position - Control
Move Seat Continuously

Move the identified seat in the specified direction.  When a user commands a seat in a certain direction, it will move in that direction until the value is changed.  The change (e.g. stop) could come from the user or a hardware limit.

  • seat
  • direction
  • status

Vehicle.Cabin.Seat.Row1.DriverSide.Switch.IsForwardEngaged:
  datatype: boolean
  description: Seat forward switch engaged (SingleSeat.Position).
  type: actuator

Question:  How does something other than a switch use this capability?

SEAT_FORE_AFT_MOVE includes speed.

Android includes speed. VSS does not.  Is it needed? 

Move Seat to Specified PositionSet the seat position for the identified seat.  This is entire seat position forward, back, up down.  
  • seat
  • position
  • status
  • Vehicle.Cabin.Seat.Row1.DriverSide.Position 

Seat position on vehicle x-axis. mm - Position is relative to the frontmost position supported by the seat. 0 = Frontmost position supported.

  • Vehicle.Cabin.Seat.Row1.DriverSide.Height 

mm - Seat position on vehicle z-axis. Position is relative within available movable range of the seating. 0 = Lowermost position supported.

SEAT_FORE_AFT_POS

What is the position definition?

ISO 8895

What is status?  Position Status.

Move Seat Component ContinuouslyMove the identified seat and component in the specified direction.  When a user commands a seat component in a certain direction, it will move in that direction until the value is changed.  The change (e.g. stop) could come from the user or a hardware limit.
  • seat
  • component
  • direction
  • status

Vehicle.Cabin.Seat.Row1.Middle.Switch.Headrest.IsForwardEngaged:
  datatype: boolean
  description: Head rest forward switch engaged (SingleSeat.Headrest.Angle).
  type: actuator

Question:  How does something other than a switch use this capability?

SEAT_HEADREST_ANGLE_MOVE

Different classes of comportment?  Certain directions apply to different components?


Need to enumerate the components?  Component type?

Set Seat Component Position Per SeatSet the seat component position for the identified seat.  This is position of the component only.
  • seat
  • seat component
  • position
  • angle
  • status

Applied by Component and Direction like:

  • Vehicle.Cabin.Seat.Row1.DriverSide.Headrest.Height 
  • Vehicle.Cabin.Seat.Row1.DriverSide.Headrest.Angle
  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Recline
  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Lumbar.Height
  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.Lumbar.Support percent - lumbar support (in/out position). 0 = Innermost position. 100 = Outermost position.
  • Vehicle.Cabin.Seat.Row1.DriverSide.Backrest.SideBolster.Support percent - Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support

Applied by Component and Direction like:

SEAT_HEADREST_ANGLE_POS


Store Seat PositionStores current seat and component positions
  • seat
  • Seat Occupant ID

N/AN/APersonalization not in VSS or Android
Recall Seat PositionRecall seat and component positions
  • seat
  • seat occupant ID

N/AN/APersonalization not in VSS or Android
Fold HeadrestFold or unfold headrest
  • Seat
  • Fold or unfold



Align with move seat compontent?
Fold SeatFold or unfold seat
  • Seat
  • Fold or unfold



Align with move seat component
Movement & Position - Status / Data
Get Seat Position Per SeatGet the seat position for the identified seat.  This is entire seat position.
  • seat
  • position
  • status



Get Seat Component Position Per SeatGet the seat component position for the identified seat.  This is position of the component only.
  • seat
  • seat component
  • position
  • angle
  • status



Get Seat Ids / LocationsProvides the list of seats available in "this" Vehicle
  • none

Array of:

  • seat location (like row1_left, row1_center, etc)
  • Is_Present (true/false)



Seat Movement Illustrations:

...

Capability

Description

Inputs

Outputs

Dependencies

Assumptions /Constraints

VSS Examples / Mapping

Android Examples / Mapping

Notes

Seat Occupant Safety - Status / Data Per Seat
Get Seat Occupant Safety Per SeatGet the occupant safety status for the identified seat 
  • seat
  • seat
  • seat occupancy status
  • seat belt status





Get Child Seat StatusAllows user to determine if a Child Seat is installed
  • seat
  • seat
  • Is child Seat Installed
























Interfaces

Android VHAL Interface

The vehicle hardware abstraction layer (VHAL) interface defines the properties OEMs can implement and contains property metadata. For example, whether a property is an integer and which change modes are allowed. The VHAL interface is based on accessing (reading, writing, and subscribing) a property, which is an abstraction for a specific function.


Set Seat Position (SEAT_FORE_AFT_POS)

Code Block
languagejava
titleSet Seat Position
CarPropertyManager manager = (CarPropertyManager) car.getCarManager(Car.PROPERTY_SERVICE);

// 1. Get seat position
int position = manager.getIntProperty(VehiclePropertyIds.SEAT_FORE_AFT_POS,
                                      Seat.SEAT_ROW_1_LEFT);
Log.d("CAR_APP", "Seat fore-aft: " + position);

// 2. Set new seat position
manager.setIntProperty(VehiclePropertyIds.SEAT_FORE_AFT_POS,
                       Seat.SEAT_ROW_1_LEFT,
                       50); // New position



Move Seat (SEAT_FORE_AFT_MOVE)

Code Block
languagejava
titleMove Seat
Car car = Car.createCar(context);
CarPropertyManager manager = (CarPropertyManager) car.getCarManager(Car.PROPERTY_SERVICE);

// Move seat forward
manager.setIntProperty(VehiclePropertyIds.SEAT_FORE_AFT_MOVE,
                       Seat.SEAT_ROW_1_LEFT,
                       1);

// Optional: stop movement after some time (e.g. button release)
new Handler().postDelayed(() -> {
    manager.setIntProperty(VehiclePropertyIds.SEAT_FORE_AFT_MOVE,
                           Seat.SEAT_ROW_1_LEFT,
                           0); // stop
}, 1000); // stop after 1 second





Zonal Architecture for Reference

...