diff --git a/spec/Body/Body.vspec b/spec/Body/Body.vspec index 51b1a900a..1f043c5f8 100644 --- a/spec/Body/Body.vspec +++ b/spec/Body/Body.vspec @@ -1,4 +1,5 @@ # +# (C) 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) # (C) 2018 Volvo Cars # (C) 2016 Jaguar Land Rover # @@ -58,6 +59,12 @@ Trunk.IsLocked: type: actuator description: Is trunk locked or unlocked. True = Locked. False = Unlocked. +Trunk.IsLightOn: + datatype: boolean + type: actuator + description: Is trunk light on + comment: V4.0 Moved from Vehicle.Cabin.Lights.IsTrunkOn because Trunk is not defined as part of the Cabin. + # # Horn description diff --git a/spec/Cabin/Cabin.vspec b/spec/Cabin/Cabin.vspec index 4a64f96b3..c6463790c 100644 --- a/spec/Cabin/Cabin.vspec +++ b/spec/Cabin/Cabin.vspec @@ -87,12 +87,12 @@ RearviewMirror.DimmingLevel: ## # Interior lights signals and sensors ## -Lights: +Light: type: branch - description: Interior lights signals and sensors. + description: Light that is part of the Cabin. + comment: V4.0 branch renamed from "Lights" to "Light" to comply with singular naming of entities. Use SingleConfigurableLight.vspec to describe interior lights that can be configured. +#include InteriorLights.vspec Light -# Include the lights specification and attach it under the Lights branch.x -#include InteriorLights.vspec Lights ## # Door signals and attributes diff --git a/spec/Cabin/InteriorLights.vspec b/spec/Cabin/InteriorLights.vspec index ede11c220..4afa470d9 100644 --- a/spec/Cabin/InteriorLights.vspec +++ b/spec/Cabin/InteriorLights.vspec @@ -11,59 +11,55 @@ # All interior lights and sensors # +# +# Non-configurable lights +# IsGloveBoxOn: datatype: boolean type: actuator description: Is glove box light on -IsTrunkOn: - datatype: boolean - type: actuator - description: Is trunk light light on - IsDomeOn: datatype: boolean type: actuator description: Is central dome light light on -AmbientLight: +PerceivedAmbientLight: datatype: uint8 type: sensor unit: percent min: 0 max: 100 - description: How much ambient light is detected in cabin. 0 = No ambient light. 100 = Full brightness - -LightIntensity: - datatype: uint8 - type: sensor - unit: percent - min: 0 - max: 100 - description: Intensity of the interior lights. 0 = Off. 100 = Full brightness. + description: The percentage of ambient light that is measured (e.g., by a sensor) inside the cabin. 0 = No ambient light. 100 = Full brightness. + comment: V4.0 named changed from "AmbientLight" to "PerceivedAmbientLight". This is a read-only property that refers to the pre-existing light (e.g., natural light). If you are looking for the in-cabin decorative lights that sometimes are also called "AmbientLights", please refer to the branch Vehicle.Cabin.Light.AmbientLight. # -# First / front row lights +# Configurable lights # Spotlight: type: branch - instances: + instances: - Row[1,4] - ["DriverSide","PassengerSide"] description: Spotlight for a specific area in the vehicle. +#include SingleConfigurableLight.vspec Spotlight -Spotlight.IsSharedOn: - datatype: boolean - type: sensor - description: Is a shared light across a specific row on -Spotlight.IsLeftOn: - datatype: boolean - type: actuator - description: Is light on the left side switched on +AmbientLight: + type: branch + instances: + - Row[1,2] + - ["DriverSide","PassengerSide"] + description: Decorative coloured light inside the cabin, usually mounted on the door, cealing, etc. +#include SingleConfigurableLight.vspec AmbientLight +InteractiveLightBar: + type: branch + description: Decorative coloured light bar that supports effects. It is usually mounted on the dashboard (e.g., BMW i7 Interactive bar). +#include SingleConfigurableLight.vspec InteractiveLightBar -Spotlight.IsRightOn: - datatype: boolean +InteractiveLightBar.Effect: type: actuator - description: Is light on the right side switched on + datatype: string + description: Light effect selection from a predefined set of allowed values. + comment: Default and allowed values are OEM-specific and should be defined accordingly (e.g., with the use of overlays). diff --git a/spec/Cabin/SingleConfigurableLight.vspec b/spec/Cabin/SingleConfigurableLight.vspec new file mode 100644 index 000000000..3342cb51e --- /dev/null +++ b/spec/Cabin/SingleConfigurableLight.vspec @@ -0,0 +1,30 @@ +# +# (C) 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) +# +# All files and artifacts in this repository are licensed under the +# provisions of the license provided by the LICENSE file in this repository. +# + +# +# Generic specification for a light whose color and brightness can be configured. +# + +IsLightOn: + type: actuator + datatype: boolean + description: Indicates whether the light is turned on. True = On, False = Off. + +Intensity: + type: actuator + datatype: uint8 + unit: percent + min: 1 + max: 100 + description: How much of the maximum possible brightness of the light is used. 1 = Maximum attenuation, 100 = no attenuation (i.e., full brightness). + comment: Minimum value cannot be zero as on/off is controlled by the actuator IsLightOn. V4.0 moved from Cabin.Lights.AmbientLight.Intensity to enable individual control of lights via the SingleConfigurableLight.vspec. + +Color: + type: actuator + datatype: string + description: Hexadecimal color code represented as a 3-byte RGB (i.e., Red, Green, and Blue) value preceded by a hash symbol "#". Allowed range "#000000" to "#FFFFFF". + comment: For example; "#C0C0C0" = Silver, "#FFD700" = Gold, "#000000" = Black, "#FFFFFF" = White, etc. diff --git a/spec/OBD/OBD.vspec b/spec/OBD/OBD.vspec index 02ae67558..2c12c8a09 100644 --- a/spec/OBD/OBD.vspec +++ b/spec/OBD/OBD.vspec @@ -1,4 +1,5 @@ # +# (C) 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) # (C) 2020 Robert Bosch GmbH # (C) 2018 Volvo Cars # (C) 2016 Jaguar Land Rover @@ -33,9 +34,22 @@ # PidsA: - datatype: uint32 - type: sensor - description: PID 00 - Bit array of the supported pids 01 to 20 + datatype: string[] + type: attribute + allowed: ["01","02","03","04","05","06","07","08","09","0A","0B","0C","0D","0E","0F","10","11","12","13","14","15","16","17","18","19","1A","1B","1C","1D","1E","1F","20"] + description: PID 00 - Array of the supported PIDs 01 to 20 in Hexadecimal. + +PidsB: + datatype: string[] + type: attribute + allowed: ["21","22","23","24","25","26","27","28","29","2A","2B","2C","2D","2E","2F","30","31","32","33","34","35","36","37","38","39","3A","3B","3C","3D","3E","3F","40"] + description: PID 20 - Array of the supported PIDs 21 to 40 in Hexadecimal. + +PidsC: + datatype: string[] + type: attribute + allowed: ["41","42","43","44","45","46","47","48","49","4A","4B","4C","4D","4E","4F","50","51","52","53","54","55","56","57","58","59","5A","5B","5C","5D","5E","5F","60"] + description: PID 40 - Array of the supported PIDs 41 to 60 in Hexadecimal. Status: type: branch @@ -49,11 +63,11 @@ Status.IsMILOn: Status.DTCCount: datatype: uint8 type: sensor - description: Number of sensor Trouble Codes (DTC) + description: Number of Diagnostic Trouble Codes (DTC) Status.IgnitionType: datatype: string - type: sensor + type: attribute allowed: ['SPARK', 'COMPRESSION'] description: Type of the ignition for ICE - spark = spark plug ignition, compression = self-igniting (Diesel engines) @@ -211,11 +225,6 @@ RunTime: unit: s description: PID 1F - Engine run time -PidsB: - datatype: uint32 - type: sensor - description: PID 20 - Bit array of the supported pids 21 to 40 - DistanceWithMIL: datatype: float type: sensor @@ -340,11 +349,6 @@ Catalyst.Bank2.Temperature2: unit: celsius description: PID 3F - Catalyst temperature from bank 2, sensor 2 -PidsC: - datatype: uint32 - type: sensor - description: PID 40 - Bit array of the supported pids 41 to 60 - DriveCycleStatus: type: branch description: PID 41 - OBD status for the current drive cycle @@ -450,8 +454,10 @@ MaxMAF: description: PID 50 - Maximum flow for mass air flow sensor FuelType: - datatype: string - type: sensor + datatype: uint8 + type: attribute + min: 0 + max: 23 description: PID 51 - Fuel type EthanolPercent: