Doip Server Module

class mtf.diag_port.diag_servers.doip_server.DoipRequest

The Doip responses generator.

__init__(payload: bytes, logical_add: bytes | None = None)

DoipRequest constructor.

Parameters:
  • payload – Doip response payload.

  • logical_add – server/ target logical address.

generate_negative_response(nrc: int = 17, data: bytes = b'') bytes

Generate a negative response on a Doip request.

Parameters:
  • nrc – Negative response Code. Defaults to 0x11.

  • data – response data.

Returns:

doip negative response composed of the Doip header and the uds packet.

generate_ack()

Generate the tcp acknowledgement.

Returns:

The acknowledgement packet

generate_routing_activation_response() bytes

generate the routing activation response.

Returns:

The routing activation response.

generate_positive_response(data: bytes = b'') bytes

Generate a positive response on a Doip request.

Parameters:

data – response data.

Returns:

The doip positive response composed of the Doip header and the uds packet.

class mtf.diag_port.diag_servers.doip_server.DoipServer

Doip server

__init__(ip: str, logical_address: int, port: int = 13400, buffer_size: int = 1024, sock_opts: dict | None = None)

Doip server constructor.

Parameters:
  • ip – Doip server ip address.

  • logical_address – Doip server logical address.

  • port – Doip port number. Defaults to 13400.

  • buffer_size – buffer size.

  • sock_opts – socket options defined in a dictionary with option name as key and value as value.

trigger_vehicle_announcement(ip: str, occurrence: int = 1, cycle: int = 0, port: int | None = None, further_action: bytes = b'\x00')

Send the vehicle announcement occurrence times every cycle.

Parameters:
  • ip – The IP address of the receiver (To whom the announcement will be sent).

  • occurrence – The number of attempts to send the vehicle announcement. Defaults to 1.

  • cycle – The Waiting time after each send of the vehicle announcement. Defaults to 0.

  • port – The port number if given. Defaults to None.

  • further_action – Data bytes to be added for the packet. Defaults to b’'.

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)

The DoipServer callback function. Orchestrate the doip communication.

Parameters:
  • data – Doip request’s data.

  • connection – Doip server socket.

  • adrr – Doip server address.