From 34690bbd94ebf743f8f96dd9e1c1d969d9bd970e Mon Sep 17 00:00:00 2001 From: Erik Jaegervall Date: Mon, 28 Nov 2022 11:01:41 +0100 Subject: [PATCH 1/4] Android adaptions --- spec/Body/Body.vspec | 3 +- spec/Body/ExteriorMirrors.vspec | 5 ++++ spec/Cabin/HVAC.vspec | 24 ++++++++++++++++ spec/Cabin/SingleDoor.vspec | 10 +++++++ spec/Cabin/SingleHVACStation.vspec | 7 +++++ spec/Cabin/SingleSeat.vspec | 44 ++++++++++++++++++++++++++++++ spec/Chassis/Chassis.vspec | 26 ++++++++++++++++++ spec/Powertrain/Battery.vspec | 6 ++++ spec/Powertrain/FuelSystem.vspec | 12 ++++++++ spec/Vehicle/Vehicle.vspec | 14 ++++++++-- 10 files changed, 148 insertions(+), 3 deletions(-) diff --git a/spec/Body/Body.vspec b/spec/Body/Body.vspec index 07a82968d..e3836ed43 100644 --- a/spec/Body/Body.vspec +++ b/spec/Body/Body.vspec @@ -16,6 +16,7 @@ BodyType: description: Body type code as defined by ISO 3779. RefuelPosition: + deprecation: V3.1 replaced by Vehicle.Powertrain.TractionBattery.Charging.ChargePortPosition and Vehicle.Powertrain.FuelSystem.RefuelPosition datatype: string type: attribute allowed: ['FRONT_LEFT', 'FRONT_RIGHT', 'MIDDLE_LEFT', 'MIDDLE_RIGHT', 'REAR_LEFT', 'REAR_RIGHT'] @@ -198,7 +199,7 @@ Lights.Beam: Lights.Running: type: branch - description: Running lights. + description: Daytime running lights (DRL). #include StaticLights.vspec Lights.Running Lights.Backup: diff --git a/spec/Body/ExteriorMirrors.vspec b/spec/Body/ExteriorMirrors.vspec index a435a7783..c348bbbd0 100644 --- a/spec/Body/ExteriorMirrors.vspec +++ b/spec/Body/ExteriorMirrors.vspec @@ -26,6 +26,11 @@ Pan: max: 100 description: Mirror pan as a percent. 0 = Center Position. 100 = Fully Left Position. -100 = Fully Right Position. +IsFolded: + datatype: boolean + type: actuator + description: Indicates if mirrors are folded. + IsHeatingOn: datatype: boolean type: actuator diff --git a/spec/Cabin/HVAC.vspec b/spec/Cabin/HVAC.vspec index 56d885014..6d063c048 100644 --- a/spec/Cabin/HVAC.vspec +++ b/spec/Cabin/HVAC.vspec @@ -18,15 +18,27 @@ Station: description: HVAC for single station in the vehicle #include SingleHVACStation.vspec Station + +IsHVACActivated: + datatype: boolean + type: actuator + description: Is HVAC system on. When false fans and air conditioning is deactivated. + IsRecirculationActive: datatype: boolean type: actuator description: Is recirculation active. + +IsAutoRecirculationActive: + datatype: boolean + type: actuator + description: Indicates if system automatically shall change to recirculation mode if incoming air quality is low. IsFrontDefrosterActive: datatype: boolean type: actuator description: Is front defroster active. + comment: This signal refer to or control both electric defroster (if existing) and fan-based defroster. IsRearDefrosterActive: datatype: boolean @@ -38,8 +50,20 @@ IsAirConditioningActive: type: actuator description: Is Air conditioning active. +IsAirConditioningMaxOn: + datatype: boolean + type: actuator + description: Indicates if air condition system is in max mode. + In max mode the VAC system shall try to cool the vehicle as much and fast as possible. + AmbientAirTemperature: datatype: float type: sensor unit: celsius description: Ambient air temperature inside the vehicle. + +IsDualMode: + datatype: boolean + type: actuator + description: Indicates if single mode is on. + In dual mode changing fan speed and temperature for one HVAC station change it for every station. diff --git a/spec/Cabin/SingleDoor.vspec b/spec/Cabin/SingleDoor.vspec index e690c1d64..5b6bdad75 100644 --- a/spec/Cabin/SingleDoor.vspec +++ b/spec/Cabin/SingleDoor.vspec @@ -20,6 +20,16 @@ IsLocked: description: Is door locked or unlocked. True = Locked. False = Unlocked. +Position: + datatype: uint8 + type: sensor + min: 0 + max: 100 + unit: percent + description: Door position. 0 = Fully closed 100 = Fully opened. + +#include SingleSliderSwitch.vspec + # # Window description # diff --git a/spec/Cabin/SingleHVACStation.vspec b/spec/Cabin/SingleHVACStation.vspec index 6e41f03ce..78d5a82e2 100644 --- a/spec/Cabin/SingleHVACStation.vspec +++ b/spec/Cabin/SingleHVACStation.vspec @@ -29,3 +29,10 @@ AirDistribution: type: actuator allowed: ['UP', 'MIDDLE', 'DOWN'] description: Direction of airstream + + +IsAutoMode: + datatype: boolean + type: actuator + description: Indicates if auto mode is on. + In auto mode fan speed and air distribution may change without user action. diff --git a/spec/Cabin/SingleSeat.vspec b/spec/Cabin/SingleSeat.vspec index 24b9760e6..a193a524f 100644 --- a/spec/Cabin/SingleSeat.vspec +++ b/spec/Cabin/SingleSeat.vspec @@ -24,6 +24,7 @@ # z-axis is the axis going up/down on the vehicle # + IsOccupied: datatype: boolean type: sensor @@ -43,6 +44,14 @@ IsBelted: type: sensor description: Is the belt engaged. +SeatBeltHeight: + datatype: uint16 + type: actuator + min: 0 + unit: mm + description: Seat belt position on vehicle z-axis. Position is relative within available movable range of the seat belt. + 0 = Lowermost position supported. + Heating: datatype: int8 type: actuator @@ -51,6 +60,13 @@ Heating: unit: percent description: Seat cooling / heating. 0 = off. -100 = max cold. +100 = max heat. +Ventilation: + datatype: uint8 + type: actuator + max: 100 + unit: percent + description: Seat ventilation. 0 = off. 100 = max ventilation. + Massage: datatype: uint8 type: actuator @@ -192,6 +208,16 @@ Switch.IsCoolerEngaged: type: actuator description: Cooler switch for Seat heater (SingleSeat.Heating). +Switch.IsMoreVentilationEngaged: + datatype: boolean + type: actuator + description: Switch to increase seat ventilation (SingleSeat.Ventilation). + +Switch.IsLessVentilationEngaged: + datatype: boolean + type: actuator + description: Switch to decrease seat ventilation (SingleSeat.Ventilation). + Switch.IsForwardEngaged: datatype: boolean type: actuator @@ -326,3 +352,21 @@ Switch.Massage.IsDecreaseEngaged: type: actuator description: Decrease massage level switch engaged (SingleSeat.Massage). + + +SeatMemory: + type: branch + description: Data to control seat memory. + +SeatMemory.Select: + datatype: uint8 + type: actuator + description: Specifies that saved settings from seat memory shall be used. 0 indicates that saved settings are not used. + comment: Number of seat memories available is vehicle dependent + +SeatMemory.Set: + datatype: uint8 + type: actuator + description: Requests the vehicle to save current seat settings in the specified seat memory. + 0 is reserved and indicates that nothing shall be saved. + comment: Number of seat memories available is vehicle dependent. diff --git a/spec/Chassis/Chassis.vspec b/spec/Chassis/Chassis.vspec index 3ef4ef337..50a9385f8 100644 --- a/spec/Chassis/Chassis.vspec +++ b/spec/Chassis/Chassis.vspec @@ -18,6 +18,7 @@ Wheelbase: description: Overall wheel base, in mm. Track: + deprecation: V3.1 moved to Axle.Track datatype: uint16 type: attribute default: 0 @@ -60,7 +61,19 @@ Axle.WheelWidth: unit: inch description: Width of wheels (rims without tires), in inches, as per ETRTO / TRA standard. +Axle.Track: + datatype: uint16 + type: attribute + default: 0 + unit: mm + description: Overall track width at wheel center, as defined by SAE J1100-2009 W102. +Axle.SteeringAngle: + datatype: float + type: sensor + unit: degrees + description: Bicycle model steering angle. Positive = degrees to the right. Negative = degrees to the left. + comment: Bicycle model steering angle refers to the angle that a centrally mounted wheel would have. # # Tire attributes # @@ -110,6 +123,10 @@ ParkingBrake.IsEngaged: type: actuator description: Parking brake status. True = Parking Brake is Engaged. False = Parking Brake is not Engaged. +ParkingBrake.IsAutoApplyEnabled: + datatype: boolean + type: actuator + description: Indicates if parking brake will be automatically engaged when the vehicle engine is turned off. # # Steering Wheel @@ -146,6 +163,15 @@ SteeringWheel.Position: default: 'FRONT_LEFT' allowed: ['FRONT_LEFT', 'FRONT_RIGHT'] description: Position of the steering wheel on the left or right side of the vehicle. + + +SteeringWheel.Heating: + datatype: uint8 + type: actuator + min: 0 + max: 100 + unit: percent + description: Steering wheel heating. 0 = Heating off. 100 = Maximum heating. # # Accelerator diff --git a/spec/Powertrain/Battery.vspec b/spec/Powertrain/Battery.vspec index 47e8c7ae2..02af37a9c 100644 --- a/spec/Powertrain/Battery.vspec +++ b/spec/Powertrain/Battery.vspec @@ -219,6 +219,12 @@ Charging.ChargePortFlap: allowed: ['OPEN', 'CLOSED'] description: Status of the charge port cover, can potentially be controlled manually. +ChargePortPosition: + datatype: string + type: attribute + allowed: ['FRONT_LEFT', 'FRONT_RIGHT', 'MIDDLE_LEFT', 'MIDDLE_RIGHT', 'REAR_LEFT', 'REAR_RIGHT', 'FRONT', 'REAR'] + description: Location of the charge port + Charging.IsChargingCableConnected: datatype: boolean type: sensor diff --git a/spec/Powertrain/FuelSystem.vspec b/spec/Powertrain/FuelSystem.vspec index 8d6742f45..faf26b01f 100644 --- a/spec/Powertrain/FuelSystem.vspec +++ b/spec/Powertrain/FuelSystem.vspec @@ -27,6 +27,18 @@ SupportedFuel: with additional suffix for octane (RON) where relevant. comment: RON 95 is sometimes referred to as Super, RON 98 as Super Plus. + +RefuelPosition: + datatype: string + type: attribute + allowed: ['FRONT_LEFT', 'FRONT_RIGHT', 'MIDDLE_LEFT', 'MIDDLE_RIGHT', 'REAR_LEFT', 'REAR_RIGHT', 'FRONT', 'REAR'] + description: Location of the fuel cap. + +IsFuelDoorOpen: + datatype: boolean + type: actuator + description: Status of the fuel door. + HybridType: datatype: string type: attribute diff --git a/spec/Vehicle/Vehicle.vspec b/spec/Vehicle/Vehicle.vspec index 1276e6a6d..db92848bd 100644 --- a/spec/Vehicle/Vehicle.vspec +++ b/spec/Vehicle/Vehicle.vspec @@ -346,11 +346,21 @@ Height: Width: datatype: uint16 type: attribute - default: 0 unit: mm - description: Overall vehicle width. + description: Overall vehicle width excluding mirrors, as defined by SAE J1100-2009 W103. + +WidthIncludingMirrors: + datatype: uint16 + type: attribute + unit: mm + description: Overall vehicle width including mirrors, as defined by SAE J1100-2009 W144. +TurnDiameter: + datatype: uint16 + type: attribute + unit: mm + description: Minimum turn diameter, as defined by SAE J1100-2009 D102. # # Trailer # From 8043f5ef38fe17910edd5c75adc4415787a41faa Mon Sep 17 00:00:00 2001 From: Erik Jaegervall Date: Tue, 29 Nov 2022 13:13:55 +0100 Subject: [PATCH 2/4] More changes --- spec/Cabin/HVAC.vspec | 10 +++++++--- spec/Cabin/Infotainment.vspec | 14 ++++++++++++++ spec/Cabin/InteriorLights.vspec | 4 ++-- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/spec/Cabin/HVAC.vspec b/spec/Cabin/HVAC.vspec index 6d063c048..f14ff8235 100644 --- a/spec/Cabin/HVAC.vspec +++ b/spec/Cabin/HVAC.vspec @@ -62,8 +62,12 @@ AmbientAirTemperature: unit: celsius description: Ambient air temperature inside the vehicle. -IsDualMode: +IsIndividualMode: datatype: boolean type: actuator - description: Indicates if single mode is on. - In dual mode changing fan speed and temperature for one HVAC station change it for every station. + description: Indicates if individual mode is on. + True = changing fan speed and temperature for one HVAC station change it only for that station. + False = changing fan speed and temperature on master HVAC station shall change it for all HVAC stations. + comment: The master HVAC station is typically the HVAC station controlled by the driver. + A vehicle may automatically change to IsIndividualMode=True if someone change temperature or fan speed on other HVAC stations. + IsIndividualMode=True is sometimes referred to as dual mode. IsIndividualMode=False is sometimes referred to as synchronized mode. diff --git a/spec/Cabin/Infotainment.vspec b/spec/Cabin/Infotainment.vspec index 56156a42a..7ca9e9439 100644 --- a/spec/Cabin/Infotainment.vspec +++ b/spec/Cabin/Infotainment.vspec @@ -134,6 +134,12 @@ HMI.TimeFormat: allowed: ['HR_12', 'HR_24'] description: Time format used in the current HMI +HMI.SpeedUnit: + datatype: string + type: actuator + allowed: ['METER_PER_SECOND', 'MILES_PER_HOUR', 'KILOMETERS_PER_HOUR'] + description: Speed unit used in the current HMI + HMI.DistanceUnit: datatype: string type: actuator @@ -158,6 +164,14 @@ HMI.EVEconomyUnits: allowed: ['MILES_PER_KILOWATT_HOUR', 'KILOMETERS_PER_KILOWATT_HOUR', 'KILOWATT_HOURS_PER_100_MILES', 'KILOWATT_HOURS_PER_100_KILOMETERS', 'WATT_HOURS_PER_MILE', 'WATT_HOURS_PER_KILOMETER'] description: EV fuel economy unit used in the current HMI +HMI.EVEnergyUnits: + datatype: string + type: actuator + allowed: ['WATT_HOURS','AMPERE_HOURS', 'KILOWATT_HOURS'] + description: EV energy unit used in the current HMI + comment: Ampere hours is by definition not an energy unit, but can be used as a measurement of energy + if the voltage, like nominal voltage of the battery, is known. + HMI.TemperatureUnit: datatype: string type: actuator diff --git a/spec/Cabin/InteriorLights.vspec b/spec/Cabin/InteriorLights.vspec index f989c5954..8c74612fe 100644 --- a/spec/Cabin/InteriorLights.vspec +++ b/spec/Cabin/InteriorLights.vspec @@ -18,12 +18,12 @@ IsGloveBoxOn: IsTrunkOn: datatype: boolean type: actuator - description: Is trunk light light on + description: Is trunk light on IsDomeOn: datatype: boolean type: actuator - description: Is central dome light light on + description: Is central dome light on AmbientLight: datatype: uint8 From 8b5b69f74616689f570011311e17270ceb91678e Mon Sep 17 00:00:00 2001 From: Erik Jaegervall Date: Mon, 12 Dec 2022 13:56:09 +0100 Subject: [PATCH 3/4] Add wheel ticks --- spec/Chassis/Wheel.vspec | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/spec/Chassis/Wheel.vspec b/spec/Chassis/Wheel.vspec index e2d4ace35..b05e0b15a 100644 --- a/spec/Chassis/Wheel.vspec +++ b/spec/Chassis/Wheel.vspec @@ -70,4 +70,32 @@ Speed: datatype: float type: sensor unit: km/h - description: Rotational speed of a vehicle's wheel. + description: Rotational speed of a vehicle's wheel, + comment: The value refers to average speed during the interval specified by SpeedMeasurementInterval. + +# +# TODO: Discuss if this will vary on wheel basis, or if it always is the same for all wheels. +# +SpeedMeasurementInterval: + datatype: float + type: sensor + unit: s + description: Interval used for calculating wheel speed. + comment: The interval may vary depending on vehicle state. + +# Wheel Ticks for now considered less prioritized, unclear if actually needed for VSS use cases + +WheelTicks: + datatype: int32 + type: sensor + description: Counter for wheel ticks. Counter increase when wheel rotates forward and decrease when wheel rotates backward. + Counter is reset when vehicle is powered on. + comment: Wheel tick value can be negative, for example if the vehicle after being powered on starts driving backward. + Theoretically the value may wrap around but it will unlikely happen in reality as an int32 with typical + WheelTicksPerRotation (<100) and tire circumference ( about 2 cm per tick) can handle about 40000 km before wrap around. + +WheelTicksPerRotation: + datatype: uint16 + type: attribute + description: Number of ticks registered for one rotation of the wheel + From 7399793b51339c8ca8c7dfc032a98f293952adaf Mon Sep 17 00:00:00 2001 From: Erik Jaegervall Date: Wed, 11 Jan 2023 16:54:19 +0100 Subject: [PATCH 4/4] Refactor steering signals --- spec/Chassis/Chassis.vspec | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/spec/Chassis/Chassis.vspec b/spec/Chassis/Chassis.vspec index 50a9385f8..50cb1331b 100644 --- a/spec/Chassis/Chassis.vspec +++ b/spec/Chassis/Chassis.vspec @@ -72,8 +72,9 @@ Axle.SteeringAngle: datatype: float type: sensor unit: degrees - description: Bicycle model steering angle. Positive = degrees to the right. Negative = degrees to the left. - comment: Bicycle model steering angle refers to the angle that a centrally mounted wheel would have. + description: Single track two-axle model steering angle. + Angle according to ISO 8855. Positive = degrees to the left. Negative = degrees to the right. + comment: Single track two-axle model steering angle refers to the angle that a centrally mounted wheel would have. # # Tire attributes # @@ -136,13 +137,13 @@ SteeringWheel: description: Steering wheel signals SteeringWheel.Angle: - datatype: int16 + datatype: float type: sensor unit: degrees description: Steering wheel angle. Positive = degrees to the left. Negative = degrees to the right. SteeringWheel.Tilt: - datatype: uint8 + datatype: float type: actuator min: 0 max: 100 @@ -150,7 +151,7 @@ SteeringWheel.Tilt: description: Steering wheel column tilt. 0 = Lowest position. 100 = Highest position. SteeringWheel.Extension: - datatype: uint8 + datatype: float type: actuator min: 0 max: 100