uds.diagnostic_configuration.ecu_configuration

Implementation for diagnostic ECU Configuration.

Classes

EcuDiagnosticConfiguration

Configuration of restrictions used by ECU for diagnostic messages.

Module Contents

class uds.diagnostic_configuration.ecu_configuration.EcuDiagnosticConfiguration(*, states, sid_restrictions, subfunction_restrictions, did_restrictions, rid_restrictions)[source]

Configuration of restrictions used by ECU for diagnostic messages.

Configure restrictions used by ECU for diagnostic messages.

Parameters:
  • states (Collection[uds.diagnostic_configuration.state.State]) – ECU states relevant for diagnostic communication.

  • sid_restrictions (Mapping[uds.message.SidAlias, RequiredStatesAlias]) – Requirements on states to execute request message successfully with given SID value.

  • subfunction_restrictions (Mapping[uds.message.SidAlias, Mapping[int, RequiredStatesAlias]]) – Requirements on states to execute request message successfully with given SubFunction value.

  • did_restrictions (Mapping[uds.message.SidAlias, Mapping[int, RequiredStatesAlias]]) – Requirements on states to execute request message successfully with given DID value.

  • rid_restrictions (Mapping[uds.message.SidAlias, Mapping[int, RequiredStatesAlias]]) – Requirements on states to execute request message successfully with given RID value.

Note

By default all possible restrictions are applied.

Conclusions:

If some parameter is always supported, all states and their values have to be provided. If some parameter is never support, no need to include restrictions with empty values.

RequiredStatesAlias

Alias storing states names and required values.

property states: Set[uds.diagnostic_configuration.state.State]

Get ECU states that are relevant for diagnostic communication.

Return type:

Set[uds.diagnostic_configuration.state.State]

property sid_restrictions: Mapping[uds.message.SidAlias, RequiredStatesAlias]

Get ECU restrictions for SID handling.

Return type:

Mapping[uds.message.SidAlias, RequiredStatesAlias]

property subfunction_restrictions: Mapping[uds.message.SidAlias, Mapping[int, RequiredStatesAlias]]

Get ECU restrictions for SubFunctions handling.

Return type:

Mapping[uds.message.SidAlias, Mapping[int, RequiredStatesAlias]]

property did_restrictions: Mapping[uds.message.SidAlias, Mapping[int, RequiredStatesAlias]]

Get ECU restrictions for DIDs handling.

Return type:

Mapping[uds.message.SidAlias, Mapping[int, RequiredStatesAlias]]

property rid_restrictions: Mapping[uds.message.SidAlias, Mapping[int, RequiredStatesAlias]]

Get ECU restrictions for SID handling.

Return type:

Mapping[uds.message.SidAlias, Mapping[int, RequiredStatesAlias]]

__getitem__(item)[source]

Get State by name.

Parameters:

item (str)

Return type:

uds.diagnostic_configuration.state.State

property states_names: Set[str]

Get names of all ECU states.

Return type:

Set[str]

property states_mapping: Mapping[str, uds.diagnostic_configuration.state.State]

Get names of all ECU states.

Return type:

Mapping[str, uds.diagnostic_configuration.state.State]

__validate_required_states(required_states)

Validate required states mapping.

Parameters:

required_states (RequiredStatesAlias) – State name to restricted state values.

Raises:

InconsistencyError – Provided mapping is not consistent with configured states.

Returns:

The same mapping using non-mutable types.

Return type:

RequiredStatesAlias

static __extract_subfunction(message_payload)

Extract subfunction from message payload.

Parameters:

message_payload (uds.utilities.RawBytesAlias)

Return type:

Optional[int]

static __extract_dids(decoded_message)

Extract DIDs from decoded message.

Parameters:

decoded_message (uds.translator.DecodedMessageAlias)

Return type:

Set[int]

static __extract_rids(decoded_message)

Extract RIDs from decoded message.

Parameters:

decoded_message (uds.translator.DecodedMessageAlias)

Return type:

Set[int]

combine_restrictions(*restrictions)[source]

Combine multiple restrictions.

Parameters:

restrictions (RequiredStatesAlias) – Restrictions to combine.

Raises:

ValueError – At least one restriction must be provided.

Returns:

Combined restrictions.

Return type:

RequiredStatesAlias

get_restrictions(message_payload)[source]

Get restrictions used by ECU for given diagnostic message.

Parameters:

message_payload (uds.utilities.RawBytesAlias) – Payload of message to get restrictions for.

Returns:

Mapping with diagnostic message restrictions, where: - key is a state name - value is a collection of values that given state have to take to successfully execute the message

Return type:

RequiredStatesAlias