DoipServer
- class mtf.diag_port.diag_servers.doip_server.DoipServer
Implement a basic DoIP server.
This class implements the functionality to (automatically) handle DoIP packets, prepare and send appropriate responses.
- __init__(ip: str, logical_address: int, port: int = 13400, buffer_size: int = 1024, sock_opts: dict = None)
Create a new DoIP server instance using the given parameters.
- Args:
ip (str): The IP address of the DoIP server. logical_address (int): The logical address of the DoIP server. port (int): The DoIP server port number (default: 13400). buffer_size (int): The buffer size of the DoIP server (default: 1024). sock_opts (dict): The socket arguments key-value pairs (default: None).
- Returns:
DoipServer: The newly created DoIP server instance.
Note
The IP address may be IPv6 as well as IPv4, though the DoIP specification prefers IPv6.
Socket argument keys can be either option names defaulting to SOL_SOCKET level or tuples explicitly specifying the socket level and the option name. And values represent the corresponding option values.
- trigger_vehicle_announcement(ip: str, occurrence: int = 1, cycle: int = 0, port: int | None = None, further_action: bytes = b'\x00')
Trigger the DoIP Vehicle Announcement Message to be sent.
- Args:
ip (str): The IP address to send the packet to. occurrence (int): The number of times the packet will be sent (default: 1). cycle (int): The time (in ms) to wait before the next packet is sent (default: 0). port (Optional[int]): The port to send the packet(s) on (default: None). further_action (bytes): Data bytes to be added to the packet (default: b’').
Note
This function sends the vehicle announcement message (0x0004). It creates the DoIP message payload and sends it at every cycle interval for a specified number of occurrence times to the given (IP, port).
- configure_socket_options(sock_opts)
Configure socket options based on the provided sock_opts dictionary.
- daemon_start()
Daemon thread that will run in the background of the main program.
- property positive_responding: bool
Getter of positive_responding attribute
- start()
Start the diagnostic server.
- stop()
Stop the diagnostic server and close the socket.
- wait_connection()
Wait for tcp connection with the diagnostic server.
- call_back(data: bytes, connection: socket, adrr: str)
Process the input data and, if necessary, generate an appropriate response.
- Args:
data (bytes): Doip request’s data that will be processed. connection (socket): Doip server socket. adrr (str): Doip server address.
Note
The DoipServer callback function orchestrates the Doip communication: It handles the incoming Doip requests, processes them based on their content and then sends appropriate responses back to the client.