Versions Compared

Key

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

...

Information Type

Values (per GM uServices)

VSS Alignment / MappingAndroid Alignment / MappingNotes

Seat (Instances)

Seat identity for 3 rows with 3 seats  per row, front to back

(looking towards front of vehicle from within the vehicle)

  • row1_left

Vehicle.Cabin.Seat.Row1.DriverSide


Related and should be kept in synch:

Row1.DriverSide
  • SeatPosCount





 VehicleAreaSeatECUs are Drive Seat Module and Passenger Seat, the whole module moves from left to right by region
  • row1_center

Vehicle.Cabin.Seat.Row1.Middle



  • row1_right

Vehicle.Cabin.Seat.Row1.PassengerSide



  • row2_left
  • Vehicle.Cabin.Seat.Row2.DriverSide


  • row2_center
  • Vehicle.Cabin.Seat.Row2.Middle


  • row2_right
  • Vehicle.Cabin.Seat.Row2.PassengerSide


  • row3_left
  • Vehicle.Cabin.Seat.Row3.DriverSide


  • row3_center
  • Vehicle.Cabin.Seat.Row3.Middle


  • row3_right
  • Vehicle.Cabin.Seat.Row3.PassengerSide


...

Seat components that are movable or controllable, electrically driven.

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

Seat Component 

Moveable Seating Component (Electrically Driven)



Complete seat All
Added
  • Vehicle.Cabin.Seat is the complete seat definition.
     Vehicle
      • Vehicle.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: mm

    SEAT_FORE_AFT

    SEAT_DEPTH

    SEAT_HEIGHT

    SEAT_TILT

    Lumbar

    • Top
    • Middle
    • Lower

    5



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

    SEAT_LUMBAR_VERTICAL

    SEAT_LUMBAR_FORE_AFT

    Differs:  Lumbar is only one piece in Android


    Cushion Side Bolster

    12

    • right = 12a
    • left = 12b
    "lower bolsters"
    Inflation level 0-100%

    Differs:  Does not exist in VSS

    Proposed

    Seating.SideBolsterSupportRight

    Seating.SideBolsterSupportLeft


    SEAT_CUSHION_SIDE_SUPPORT


    Backrest Side Bolster

    11

    • right = 11a
    • left = 11b
    "upper bolsters"Inflation level 0-100%

    Current

    • Vehicle
    Vehicle
    • .Cabin.Seat
    .Row1.DriverSide
    • .Backrest.SideBolster
    - Backrest side bolster (lumbar side support) settings.
      • Vehicle.Cabin.Seat.
    Row1.DriverSide.Backrest.SideBolster.Support percent - Side bolster support. 0 = Minimum support (widest side bolster setting). 100 = Maximum support.
      • Backrest.SideBolsterSupport

    Differs:  SideBolster is represented as one piece vs two

    SEAT_LUMBAR_SIDE_SUPPORT


    Proposed

    • Vehicle.Cabin.Seat.Backrest.SideBolsterSupport
    • Vehicle.Cabin.Seat.Backrest.SideBolsterSupportLeft
    • Vehicle.Cabin.Seat.Backrest.SideBolsterSupportRight
    SEAT_LUMBAR_SIDE_SUPPORT

    Upper Shoulder (fwd/

    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

    Thigh Extension?

    see video

    Either works

    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

    SEAT_AIRBAG_ENABLED


    Has enabled only not deployed

    Should we consider extending VSS for other airbags.

    Neck Scarf (fan)

    6

    Differs:  Does not exist

    Differs:


    Propose

    Vehicle.Cabin.Seat.NeckScarf

    Differs: Does not existAdd to VSS?

    Seat Belt (height)

    Vehicle


    Current

    •  Vehicle.Cabin.Seat.Row1.DriverSide.IsBelted
  • Boolean
    • Vehicle.Cabin.Seat.Row1.DriverSide.SeatBeltHeight
    Seat 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 #
    BMW
    FordGMVolvo Cars
    VSS Alignment / MappingAndroid Alignment / MappingNotes
    DirectionDirection of seat or component movement
    • Forward - toward the front of the vehicle
    foredepends on the component


    Applied by seat or component like:

    Is Fold a direction?
    Team agreed it is a capability
    • Backward - toward the back of the vehicle
    aft
    depends on the componentApplied by


    • 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
    decreasedepends on the component



    • Tilt / Recline (angles)
    angles
    depends 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.




    • 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 #
    BMWFordGMVolvo 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 #
    BMWFordGM
    Volvo 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 TypeVehicle.Cabin.

    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


    VSS Examples /

    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

    ...