SfaManager
- class mtf.diag_port.sfa.sfa_manager.SfaManager
This class implements a manager to handle token parsing, use and all the functionality related with sfa coming from TDFNext. this module run correctly only if diag manager was already started and all needed controllers already added.
- __init__()
- set_up(token_path: str)
Prepare environment for sfa manager, parse tokens under token_path This method must be called before calling any token related methods :param token_path: path to folder containing tokens :type token_path: str :return: :rtype:
- add_ecu(connection_name: str, ecu_id: str | None = None, vin_id: str | None = None)
This function adds an ECU to the list with all its tokens, checks if the tokens are available int the ECU by sending corresponding diagnosis jobs.
- :param
connection_name * (str): string with the name of the connection as configured in the diag manager config
ecu_id * (str): ECU identifier
vin_id * (str): Vehicule Identification Number
- Returns:
True if process was successful, False otherwise
- update_ecu(connection_name)
Updates all the features status for an ECU, performing a discovery job
- Parameters:
connection_name – string containing the name of the target ecu
- Returns:
- clean_ecu_list()
This function cleans the ecu list completely
- Returns:
- handle_engineering_token_status(engineering_token_status)
Check for Engineering token status. If Engineering token is Disabled (status == 2) or Expired ( status == 03) we need to generate new tokens
- handle_plant_token_status(result, plant_token_status, connection_name, switch_mode_retries)
- switch_mode(connection_name: str, target_mode: EcuModes, switch_mode_retries: int = 5)
This function set the mode of a target ecu
- Parameters:
switch_mode_retries (int) – retries to switch ecu mode
connection_name – string containing the name of the target ecu
target_mode – target EcuModes enum
- Returns:
- handle_engineering_mode_switch(connection_name, current_mode, target_mode, switch_mode_retries)
- handle_field_mode_switch(connection_name, current_mode, target_mode, switch_mode_retries)
- handle_plant_mode_switch(connection_name, current_mode, target_mode, switch_mode_retries)
- read_mode(connection_name: str)
This function reads the current mode of the target ecu.
- Parameters:
connection_name – string containing the target ecu name
- Returns:
EcuModes value if success, None otherwise
- write_token(connection_name: str, feature_id: hex, retries=1)
This function enables a specified feature in the target ECU, using the parsed token available.
- Parameters:
connection_name – string with the name of the target ecu
feature_id – hex number with the desired feature id
retries – int value with the number of retries to perform. The manager will start from the oldest
token within that retry window until the newest token available in the list. :return: True if writing process succeeded, False otherwise. Num of tries performed.
- write_specific_token(connection_name: str, feature_id: hex, token_index: int) bool
This function enables a specified feature in the target ECU, using the specified token that is selected by the tc
- Parameters:
connection_name – string with the name of the target ecu
feature_id – hex number with the desired feature id
token_index – The index of the token in the sfa manager token list that should be used
- Returns:
True if writing process succeeded, False otherwise.
- set_feature_status(connection_name: str, feature_id: hex, status: int) bool
This function enable or disable a specific feature based on the status value
- Parameters:
connection_name – string with the name of the target ecu
feature_id – hex number with the desired feature id
status – 0 in order to disable the provided feature, 1 in order ro enable it.
- Returns:
True if writing process succeeded, False otherwise.
- read_status(connection_name: str, feature_id: hex)
This function reads the current status of a feature in the target ecu.
- Parameters:
connection_name – string with the name of the target ecu
feature_id – hex number with the desired feature id
- Returns:
int in hex format with the status value for the feature, None if process failed
- read_sensitive_feature_status(connection_name: str, feature_id: hex)
This function reads the current status of a feature in the target ecu.
- Parameters:
connection_name – string with the name of the target ecu
feature_id – hex number with the desired feature id
- Returns:
int in hex format with the status value for the sensitive feature, None if process failed
- write_sensitive_token(connection_name: str, feature_id: hex, retries=1)
This function enables a specified feature in the target ECU, using the parsed token available.
- Parameters:
connection_name – string with the name of the target ecu
feature_id – hex number with the desired feature id
retries – int value with the number of retries to perform. The manager will start from the oldest
token within that retry window until the newest token available in the list. :return: True if writing process succeeded, False otherwise. Num of tries performed.
- clear_feature(connection_name: str, feature_id: hex)
This function clears a specified feature in the target ECU. Keep in mind that ENGINEERING mode is needed to clear features.
- Parameters:
connection_name – string with the name of the target ecu
feature_id – hex number with the desired feature id
- Returns:
True if process success, False otherwise
- clear_all_features(connection_name: str)
This function clears all the features that have been enabled during the current session for an ecu. Last token to clear is the Engineering mode one, as is needed to set the device in that mode to perform these operations.
- Parameters:
connection_name – string with the name of the target ecu
- Returns:
True if process success, False otherwise
- clear_all_features_mode(connection_name: str, original_mode)
This function clears all the features that have been enabled during the current session for an ecu. Last token to clear is the Engineering mode one, as is needed to set the device in that mode to perform these operations.
- Parameters:
connection_name – string with the name of the target ecu
original_mode – current Ecu mode
- Returns:
True if process success, False otherwise
- fallback_field_mode(connection_name: str, safe_mode=True)
This function sets the ecu back to FIELD mode from ENGINEERING or PLANT mode. If safe_mode parameter is set to False, the function will skip checking if there is at least, one ENG token available to go back to engineering mode if needed for token clearing.
- Parameters:
connection_name – string with the name of the target ecu
safe_mode – boolean to skip ward’s check for ENG tokens
- Returns:
True if process success, False otherwise
- property vin_id
- get_vin_id(connection_name: str)
This function retrieves the VIN (Vehicle Identification Number) id
- Parameters:
connection_name – string containing the name of the target ECU
- Returns:
The entire VIN ID as a string. Returns None if an error occurs or if attempting to retrieve the VIN ID of the Device Under Test.
- property token_list
- get_ecu_id(connection_name)