def send_message(adu, serial_port):
serial_port.write(adu)<EOL>serial_port.flush()<EOL>exception_adu_size = <NUM_LIT:5><EOL>response_error_adu = recv_exactly(serial_port.read, exception_adu_size)<EOL>raise_for_exception_adu(response_error_adu)<EOL>expected_response_size =expected_response_pdu_size_from_request_pdu(adu[<NUM_LIT:1>:-<NUM_LIT:2>]) + <NUM_LIT:3><EOL>response_remainder = recv_exactly(<EOL>serial_port.read, expected_response_size - exception_adu_size)<EOL>return parse_response_adu(response_error_adu + response_remainder, adu)<EOL>
Send ADU over serial to to server and return parsed response.

    :param adu: Request ADU.
    :param sock: Serial port instance.
    :return: Parsed response from server.