Xcp Module

class mtf.measurement.xcp.XCP
init(ecu_name: str, channel_name: str, a2l_file_path: str) bool

Initializes the XCP conection by parsing the a2l file.

=== Arguments Description ===

ecu_name (str, Mandatory): Name of the ECU. channel_name (str, Mandatory): Name of the channel. a2l_file_path (PathStr, Mandatory): Path to the A2L file.

=== Returns ===

bool: True if initialization is successful, False otherwise.

deinit(ecu_name: str, channel_name: str) bool

Deinit the XCP connection.

=== Arguments Description ===

ecu_name (str, Mandatory): Name of the ECU. channel_name (str, Mandatory): Name of the channel.

=== Returns ===

bool: True if deinit is successful, False otherwise.

connect(ecu_name: str, channel_name: str, protocol: int = 0, dst_host: str = '', dst_port: int = 0, src_host: str = '', src_port: int = 0, callback: Callable[[str, bool], None] | None = None) bool

Connects to the ECU via the given parameters.

=== Arguments Description ===

ecu_name (str, Mandatory): Name of the ECU. channel_name (str, Mandatory): Name of the channel. protocol (int, Optional): XCP protocol version. Defaults to 0. dst_host (str, Optional): Destination host address. Defaults to “”. dst_port (int, Optional): Destination port number. Defaults to 0. src_host (str, Optional): Source host address. Defaults to “”. src_port (int, Optional): Source port number. Defaults to 0. callback (XcpConnectionStateCallback, Optional): Callback function for connection state changes.

=== Returns ===

bool: True if connection is successful, False otherwise.

disconnect(ecu_name: str, channel_name: str) bool

Disconnects from the ECU .

=== Arguments Description ===

ecu_name (str, Mandatory): Name of the ECU. channel_name (str, Mandatory): Name of the channel.

=== Returns ===

bool: True if disconnection is successful, False otherwise.

is_connected_by_ecu_name(ecu_name: str) bool

Checks if the ECU is connected via XCP.

=== Arguments Description ===

ecu_name (str, Mandatory): Name of the ECU.

=== Returns ===

bool: True if the ECU is connected, False otherwise.

detect_ecus() List[Dict[str, Any]]

Detects available ECUs.

=== Returns ===

list: List of dictionaries containing information about detected ECUs.

get_all_characteristics(ecu_name: str, channel_name: str) list[str]

Retrieves all characteristics.

=== Arguments Description ===

ecu_name (str, Mandatory): Name of the ECU. channel_name (str, Mandatory): Name of the channel.

=== Returns ===

list: List of characteristics.

get_all_measurements(ecu_name: str, channel_name: str) list[dict]

Retrieves all measurements.

=== Arguments Description ===

ecu_name (str, Mandatory): Name of the ECU. channel_name (str, Mandatory): Name of the channel.

=== Returns ===

list: List of dictionaries containing information about measurements.

get_all_ecu_names() list[str]

Retrieves names of all connected ECUs.

=== Returns ===

list: List of ECU names.

get_object_data_type(ecu_name: str, channel_name: str, a2l_object: str) XcpDataType

Get the data type of an object in the XCP instance.

Args:

ecu_name (str): The name of the ECU. channel_name (str): The name of the channel. a2l_object (str): The name of the A2L object.

Returns:

ObjectDataType: The data type of the object.

read_complex_type(ecu_name: str, channel_name: str, a2l_object: str, is_raw_value: bool = False) list[Any]

Reads a complex type from the ECU.

=== Arguments Description ===

ecu_name (str, Mandatory): Name of the ECU. channel_name (str, Mandatory): Name of the channel. a2l_object (str, Mandatory): Name of the A2L object. is_raw_value (bool, Optional): Indicates if the value is raw. Defaults to False.

=== Returns ===

list: List containing the read values.

read(ecu_name: str, channel_name: str, a2l_object: str, is_raw_value: bool = False) Tuple[bool, Any]

Reads a value from the ECU.

=== Arguments Description ===

ecu_name (str, Mandatory): Name of the ECU. channel_name (str, Mandatory): Name of the channel. a2l_object (str, Mandatory): Name of the A2L object. is_raw_value (bool, Optional): Indicates if the value is raw. Defaults to False.

=== Returns ===

tuple: A tuple containing a boolean status and the read value.

write_complex_type(ecu_name: str, channel_name: str, a2l_object: str, value: Any, is_raw_value: bool = True) Tuple[bool, str]

Writes a complex type value to the specified ECU, channel, and A2L object.

=== Arguments Description ===

  • ecu_name * (str): The name of the ECU.

  • channel_name * (str): The name of the channel.

  • a2l_object * (str): The name of the A2L object.

  • value * (Any): The value to write.

  • is_raw_value * (bool): Indicates whether the value is a raw value. Defaults to True.

=== Returns ===

bool: True if the value was successfully written, False otherwise.

write(ecu_name: str, channel_name: str, a2l_object: str, value: Any, is_raw_value: bool = True) bool

Writes a value to the specified A2L object in a given ECU and channel for simple types.

Args:

ecu_name (str): The name of the ECU. channel_name (str): The name of the channel. a2l_object (str): The name of the A2L object. value (Any): The value to be written to the A2L object. is_raw_value (bool, optional): Indicates whether the value is a raw value or not. Defaults to True.

Returns:

bool: True if the write operation was successful, False otherwise.

configure(ecu_name: str, channel_name: str, option: XcpConfigOption, value: int) bool

Configures options for the ECU via XCP.

=== Arguments Description ===

ecu_name (str, Mandatory): Name of the ECU. channel_name (str, Mandatory): Name of the channel. option (XcpConfigOption, Mandatory): Configuration option. value (int, Mandatory): Value to set for the configuration option.

=== Returns ===

bool: True if configuration is successful, False otherwise.

static __new__(cls, *args, **kwargs)

Initialize a new instance of the ControllerBase.

The instance will be automatically added to the list of controllers.

classmethod controllers_cleanup()

Clean up all controller instances.

Calls the clean_up() method for each instance.

clean_up()

Cleans up the XCP connections and resources.

=== Returns ===

bool: True if cleanup is successful, False otherwise.