WheelSpeedPlausibilityCheck Error and Supervision Example#

This example demonstrates standard VSS wheel-speed inputs, runtime-quality handling, deadline/logical supervision and the candidate/provisional errorInterfaces concept.

Runtime quality is explicitly indicated for each Data interface through runtimeCompanion.qualityCode as an enum-based qualifier interface, without duplicating normal Data metadata. FunctionResult is shown as a runtime result contract rather than a hard-coded success value.

The preprocessing dependency is modeled as a separate runnable WheelSpeedPreProcessor.Step. This keeps the current metamodel naming convention <FunctionName>.Init / .Step / .Terminate intact. The complete specification of WheelSpeedPreProcessor belongs to its own Function Specification File.

The diagnostic values in this example are illustrative and must be replaced by requirement-based values before standardization.

  1# *******************************************************************************
  2# Copyright (c) 2026 ZF Friedrichshafen AG
  3#
  4# See the NOTICE file(s) distributed with this work for additional
  5# information regarding copyright ownership.
  6#
  7# This program and the accompanying materials are made available under the
  8# terms of the Apache License Version 2.0 which is available at
  9# https://www.apache.org/licenses/LICENSE-2.0
 10#
 11# SPDX-License-Identifier: Apache-2.0
 12#
 13# Contributors:
 14#   Thomas Pfleiderer - Function specification added
 15#   Saran Gundlapalli - wheel_speed_plausibility_check.afs.yaml updated according to metamodel v0.4.0
 16# *******************************************************************************
 17
 18functionSpecification:
 19  name: WheelSpeedPlausibilityCheck
 20  version: 1.0.0
 21  metaModelRef:
 22    name: Eclipse-autoapiframework-Metamodel
 23    version: 0.4.0
 24
 25  description: >-
 26    Checks standard VSS wheel-speed inputs for plausibility and signal loss,
 27    publishes a vehicle-speed result, and exposes candidate function-specific
 28    error interfaces.
 29
 30  # Reuse standard VSS wheel-speed semantics rather than introducing a generic
 31  # Vehicle.WheelBasedSpeed node.
 32  dataInterfaces:
 33    - name: Vehicle.Chassis.Axle.Row1.Wheel.Left.Speed
 34      direction: input
 35      dataType: float
 36      description: Linear speed of the left wheel on axle row 1.
 37      unit: km/h
 38      min: null
 39      max: null
 40      defaultValue: null
 41      resolution: null
 42      precision: null
 43      FuSa: true
 44      ASIL: B
 45      minUpdatePeriodMs: 10
 46      accuracy: null
 47      protection: complement
 48      runtimeCompanion:
 49        qualityCode:
 50          name: Vehicle.Chassis.Axle.Row1.Wheel.Left.Speed.Qualifier
 51          datatype: enum
 52          enumRef: DataQuality
 53
 54    - name: Vehicle.Chassis.Axle.Row1.Wheel.Right.Speed
 55      direction: input
 56      dataType: float
 57      description: Linear speed of the right wheel on axle row 1.
 58      unit: km/h
 59      min: null
 60      max: null
 61      defaultValue: null
 62      resolution: null
 63      precision: null
 64      FuSa: true
 65      ASIL: B
 66      minUpdatePeriodMs: 10
 67      accuracy: null
 68      protection: complement
 69      runtimeCompanion:
 70        qualityCode:
 71          name: Vehicle.Chassis.Axle.Row1.Wheel.Right.Speed.Qualifier
 72          datatype: enum
 73          enumRef: DataQuality
 74
 75    - name: Vehicle.Chassis.Axle.Row2.Wheel.Left.Speed
 76      direction: input
 77      dataType: float
 78      description: Linear speed of the left wheel on axle row 2.
 79      unit: km/h
 80      min: null
 81      max: null
 82      defaultValue: null
 83      resolution: null
 84      precision: null
 85      FuSa: true
 86      ASIL: B
 87      minUpdatePeriodMs: 10
 88      accuracy: null
 89      protection: complement
 90      runtimeCompanion:
 91        qualityCode:
 92          name: Vehicle.Chassis.Axle.Row2.Wheel.Left.Speed.Qualifier
 93          datatype: enum
 94          enumRef: DataQuality
 95
 96    - name: Vehicle.Chassis.Axle.Row2.Wheel.Right.Speed
 97      direction: input
 98      dataType: float
 99      description: Linear speed of the right wheel on axle row 2.
100      unit: km/h
101      min: null
102      max: null
103      defaultValue: null
104      resolution: null
105      precision: null
106      FuSa: true
107      ASIL: B
108      minUpdatePeriodMs: 10
109      accuracy: null
110      protection: complement
111      runtimeCompanion:
112        qualityCode:
113          name: Vehicle.Chassis.Axle.Row2.Wheel.Right.Speed.Qualifier
114          datatype: enum
115          enumRef: DataQuality
116
117    - name: Vehicle.Speed
118      direction: output
119      dataType: float
120      description: Vehicle speed result derived from plausible wheel-speed inputs.
121      unit: km/h
122      min: null
123      max: null
124      defaultValue: null
125      resolution: null
126      precision: null
127      FuSa: true
128      ASIL: B
129      minUpdatePeriodMs: 20
130      accuracy: null
131      protection: complement
132      runtimeCompanion:
133        qualityCode:
134          name: Vehicle.Speed.Qualifier
135          datatype: enum
136          enumRef: DataQuality
137
138  # Runtime quality companions are shown explicitly for the Data interfaces.
139  # Each qualifier is an enum-based runtime interface with DataQuality semantics.
140
141  parameters:
142    - name: Vehicle.Chassis.WheelSpeedPlausibility.MaxDeltaPerStep
143      dataType: float
144      defaultValue: 8.0
145      description: Maximum plausible wheel-speed change per 20 ms cycle.
146      unit: km/h
147      tunable: false
148      min: 0.0
149      max: 50.0
150
151  # -----------------------------------------------------------------------
152  # ERROR INTERFACES - CANDIDATE / PROVISIONAL
153  # Values below are illustrative for demonstrating the candidate syntax and
154  # shall be replaced by requirement-based values before standardization.
155  # -----------------------------------------------------------------------
156  errorInterfaces:
157    - name: WheelSpeedPlausibilityCheck.RangeError.ErrorStatus
158      dataType: boolean
159      description: >-
160        Set when one or more wheel-speed values or their rate of change exceed
161        the plausibility limits defined for this example.
162      severity: degraded
163      maturationTimeMs: 100
164      resetTimeMs: 200
165      resetCondition: Wheel-speed inputs remain plausible for resetTimeMs.
166      fallbackBehavior: Hold the last plausible Vehicle.Speed value.
167
168    - name: WheelSpeedPlausibilityCheck.SignalLossError.ErrorStatus
169      dataType: boolean
170      description: >-
171        Set when associated runtime quality information for one or more
172        wheel-speed inputs remains invalid or uninitialized longer than
173        maturationTimeMs.
174      severity: degraded
175      maturationTimeMs: 500
176      resetTimeMs: 100
177      resetCondition: Runtime quality of all required wheel-speed inputs is valid for resetTimeMs.
178      fallbackBehavior: Mark the Vehicle.Speed runtime result as invalid/unavailable.
179
180  # -----------------------------------------------------------------------
181  # SCHEDULING
182  # Preprocessing is treated as a separate function/runnable. The dependency
183  # is expressed via previousRunnableRef and logical supervision instead of
184  # introducing a non-conforming WheelSpeedPlausibilityCheck.PreProcess name.
185  # -----------------------------------------------------------------------
186  scheduling:
187    - functionName: WheelSpeedPlausibilityCheck.Init
188      runType: init
189      description: Initialize internal states and latched outputs.
190      implementedASIL: B
191      executionResult:
192        type: FunctionResult
193      supervision:
194        required: false
195
196    - functionName: WheelSpeedPlausibilityCheck.Step
197      runType: cyclic
198      description: >-
199        Evaluate wheel-speed plausibility and signal-loss conditions and publish
200        Vehicle.Speed. Deadline supervision verifies that execution completes
201        within the configured execution-time limit. Logical supervision ensures
202        the required WheelSpeedPreProcessor.Step predecessor has completed.
203      cycleTimeMs: 20
204      implementedASIL: B
205      previousRunnableRef: WheelSpeedPreProcessor.Step
206      executionResult:
207        type: FunctionResult
208      supervision:
209        required: true
210        type:
211          - deadline
212          - logical
213        deadline:
214          minExecutionTimeMs: 1
215          maxExecutionTimeMs: 15
216        logical:
217          predecessorRefs:
218            - WheelSpeedPreProcessor.Step
219          successorRefs: []
220
221    - functionName: WheelSpeedPlausibilityCheck.Terminate
222      runType: terminate
223      description: Shutdown cleanup for deterministic deactivation.
224      implementedASIL: QM
225      previousRunnableRef: WheelSpeedPlausibilityCheck.Step
226      executionResult:
227        type: FunctionResult
228      supervision:
229        required: false