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