OSEK/VDX
OSEK Communication
Specification 3.0.3
OSEK/VDX COM 3.0.3 by OSEK - 13 -
For zero-length messages and dynamic-length messages no filtering takes place.
While receiving messages, only the message values allowed by the filter algorithms pass to
the application. If a value has been filtered out the current instance of the message in the IL
represents the last message value that passed through the filter.
Message filtering is performed per message object.
The following attributes are used by the set of filter algorithms (see Table 2-1):
new_value: current value of the message
old_value: last value of the message (initialised with the initial value of the message,
updated with new_value if the new message value is not filtered out)
mask, x, min, max, period, offset: constant values
occurrence: a count of the number of occurrences of this message
If the message filter algorithm is F_Always for any particular message no filter algorithm is
included in the runtime system for the particular message.
Algorithm Reference Algorithm Description
F_Always True No filtering is performed so that the
message always passes
F_Never False The filter removes all messages
F_MaskedNewEqualsX (new_value&mask) == x Pass messages whose masked value is equal
to a specific value
F_MaskedNewDiffersX (new_value&mask) != x Pass messages whose masked value is not
equal to a specific value
F_NewIsEqual new_value == old_value Pass messages which have not changed
F_NewIsDifferent new_value != old_value Pass messages which have changed
F_MaskedNewEqualsMaskedOld (new_value&mask) ==
(old_value&mask)
Pass messages where the masked value has
not changed
F_ MaskedNewDiffersMaskedOld (new_value&mask) !=
(old_value&mask)
Pass messages where the masked value has
changed
F_NewIsWithin min <= new_value <=
max
Pass a message if its value is within a
predefined boundary
F_NewIsOutside (min > new_value) OR
(new_value > max)
Pass a message if its value is outside a
predefined boundary
F_NewIsGreater new_value > old_value Pass a message if its value has increased
F_NewIsLessOrEqual new_value <= old_value Pass a message if its value has not increased
F_NewIsLess new_value < old_value Pass a message if its value has decreased
F_NewIsGreaterOrEqual new_value >= old_value Pass a message if its value has not decreased
F_OneEveryN occurrence % period ==
offset
Pass a message once every N message
occurrences.
Start: occurrence = 0.
Each time the message is received or
transmitted, occurrence is incremented by 1
after filtering.
Length of occurrence is 8 bit (minimum).
Table 2-1: Message filter algorithms