uds.can.addressing.abstract_addressing_information

Abstract definition of Addressing Information handler.

Classes

CANAddressingParams

Addressing Information parameters collection for a single CAN Packet.

AbstractCanAddressingInformation

Abstract definition of storage for addressing related parameters for UDS entity operating on CAN bus.

Module Contents

class uds.can.addressing.abstract_addressing_information.CANAddressingParams[source]

Bases: TypedDict

Inheritance diagram of uds.can.addressing.abstract_addressing_information.CANAddressingParams

Addressing Information parameters collection for a single CAN Packet.

Initialize self. See help(type(self)) for accurate signature.

addressing_format: uds.can.addressing.addressing_format.CanAddressingFormat
addressing_type: uds.addressing.AddressingType
can_id: int
target_address: int | None
source_address: int | None
address_extension: int | None
class uds.can.addressing.abstract_addressing_information.AbstractCanAddressingInformation(rx_physical_params, tx_physical_params, rx_functional_params, tx_functional_params)[source]

Bases: uds.addressing.abstract_addressing_information.AbstractAddressingInformation, abc.ABC

Inheritance diagram of uds.can.addressing.abstract_addressing_information.AbstractCanAddressingInformation

Abstract definition of storage for addressing related parameters for UDS entity operating on CAN bus.

Configure Addresses of UDS Entity (either a server or a client) for UDS over CAN communication.

Parameters:
  • rx_physical_params (InputAIParams) – Addressing parameters for incoming physically addressed communication.

  • tx_physical_params (InputAIParams) – Addressing parameters for outgoing physically addressed communication.

  • rx_functional_params (InputAIParams) – Addressing parameters for incoming functionally addressed communication.

  • tx_functional_params (InputAIParams) – Addressing parameters for outgoing functionally addressed communication.

class InputAIParams[source]

Bases: TypedDict

Inheritance diagram of uds.can.addressing.abstract_addressing_information.AbstractCanAddressingInformation.InputAIParams

Addressing Information configuration parameters.

Initialize self. See help(type(self)) for accurate signature.

can_id: int
target_address: int | None
source_address: int | None
address_extension: int | None
class CanIdAIParams[source]

Bases: TypedDict

Inheritance diagram of uds.can.addressing.abstract_addressing_information.AbstractCanAddressingInformation.CanIdAIParams

ref:Addressing Information <knowledge-base-n-ai> parameters that are carried by CAN Identifier.

Initialize self. See help(type(self)) for accurate signature.

addressing_type: uds.addressing.AddressingType | None
target_address: int | None
source_address: int | None
priority: int | None
class DataBytesAIParamsAlias[source]

Bases: TypedDict

Inheritance diagram of uds.can.addressing.abstract_addressing_information.AbstractCanAddressingInformation.DataBytesAIParamsAlias

Alias of Addressing Information parameters encoded in data field.

Initialize self. See help(type(self)) for accurate signature.

target_address: int
address_extension: int
class DecodedAIParamsAlias[source]

Bases: TypedDict

Inheritance diagram of uds.can.addressing.abstract_addressing_information.AbstractCanAddressingInformation.DecodedAIParamsAlias

Alias of Addressing Information parameters encoded in CAN ID and data field.

Initialize self. See help(type(self)) for accurate signature.

addressing_type: uds.addressing.AddressingType | None
target_address: int | None
source_address: int | None
address_extension: int | None
ADDRESSING_FORMAT: uds.can.addressing.addressing_format.CanAddressingFormat

CAN Addressing Format used.

AI_DATA_BYTES_NUMBER: int

Number of CAN Frame data bytes that are used to carry UDS Addressing Information.

classmethod validate_addressing_params(addressing_type, addressing_format, can_id=None, target_address=None, source_address=None, address_extension=None)[source]
Abstractmethod:

Parameters:
Return type:

CANAddressingParams

Validate Addressing Information parameters of a CAN packet.

Parameters:
  • addressing_type (uds.addressing.AddressingType) – Addressing type to validate.

  • addressing_format (uds.can.addressing.addressing_format.CanAddressingFormat) – CAN Addressing Format used.

  • can_id (Optional[int]) – CAN Identifier value to validate.

  • target_address (Optional[int]) – Target Address value to validate.

  • source_address (Optional[int]) – Source Address value to validate.

  • address_extension (Optional[int]) – Address Extension value to validate.

Raises:
  • UnusedArgumentError – At least one provided parameter is not supported by Addressing format used.

  • InconsistencyError – Provided values are not consistent with each other (cannot be used together) or with the Addressing format used.

Returns:

Normalized dictionary with the provided information.

Return type:

CANAddressingParams

static is_compatible_can_id(can_id, addressing_type)[source]
Abstractmethod:

Parameters:
  • can_id (int)

  • addressing_type (Optional[uds.addressing.AddressingType])

Return type:

bool

Check whether provided CAN ID is consistent with this CAN Addressing Format.

Parameters:
  • can_id (int) – Value of CAN ID to check.

  • addressing_type (Optional[uds.addressing.AddressingType]) – Addressing type for which consistency to be performed. Leave None to skip crosscheck between CAN Identifier and Addressing Type.

Returns:

True if CAN ID value is compatible with this CAN Addressing Format, False otherwise.

Return type:

bool

static decode_can_id_ai_params(can_id)[source]
Abstractmethod:

Parameters:

can_id (int)

Return type:

CanIdAIParams

Decode Addressing Information parameters from CAN Identifier.

Parameters:

can_id (int) – Value of a CAN Identifier.

Returns:

Decoded Addressing Information parameters.

Return type:

CanIdAIParams

static decode_data_bytes_ai_params(ai_data_bytes)[source]
Abstractmethod:

Parameters:

ai_data_bytes (uds.utilities.RawBytesAlias)

Return type:

DataBytesAIParamsAlias

Decode Addressing Information parameters from CAN data bytes.

Parameters:

ai_data_bytes (uds.utilities.RawBytesAlias) – Data bytes containing Addressing Information.

Returns:

Decoded Addressing Information parameters.

Return type:

DataBytesAIParamsAlias

classmethod decode_frame_ai_params(can_id, raw_frame_data)[source]

Decode Addressing Information parameters from a CAN Frame.

Parameters:
  • can_id (int) – CAN Identifier value of a CAN frame.

  • raw_frame_data (uds.utilities.RawBytesAlias) – Raw data bytes of a CAN frame.

Returns:

Decoded Addressing Information parameters.

Return type:

DecodedAIParamsAlias

classmethod encode_ai_data_bytes(target_address=None, address_extension=None)[source]
Abstractmethod:

Parameters:
  • target_address (Optional[int])

  • address_extension (Optional[int])

Return type:

bytearray

Generate data bytes that carry Addressing Information.

Parameters:
  • target_address (Optional[int]) – Target Address value used.

  • address_extension (Optional[int]) – Source Address value used.

Returns:

Data bytes that carry Addressing Information in a CAN frame Data field.

Return type:

bytearray

is_input_packet(can_id, raw_frame_data, **_)[source]

Check if a frame with provided attributes is an input packet for this UDS Entity.

Parameters:
  • raw_frame_data (uds.utilities.RawBytesAlias) – Raw data bytes carried by a CAN frame to check.

  • can_id (int) – CAN Identifier of a CAN frame to check.

  • _ (Any)

Returns:

Addressing Type used for transmission of this packet, None otherwise.

Return type:

Optional[uds.addressing.AddressingType]