def execute_route(self, meta_data, request_pdu):
try:<EOL><INDENT>function = create_function_from_request_pdu(request_pdu)<EOL>results =function.execute(meta_data['<STR_LIT>'], self.route_map)<EOL>try:<EOL><INDENT>return function.create_response_pdu(results)<EOL><DEDENT>except TypeError:<EOL><INDENT>return function.create_response_pdu()<EOL><DEDENT><DEDENT>except ModbusError as e:<EOL><INDENT>function_code = get_function_code_from_request_pdu(request_pdu)<EOL>return pack_exception_pdu(function_code, e.error_code)<EOL><DEDENT>except Exception as e:<EOL><INDENT>log.exception('<STR_LIT>'.format(e))<EOL>function_code = get_function_code_from_request_pdu(request_pdu)<EOL>return pack_exception_pdu(function_code,<EOL>ServerDeviceFailureError.error_code)<EOL><DEDENT>
Execute configured route based on requests meta data and request
        PDU.

        :param meta_data: A dict with meta data. It must at least contain
            key 'unit_id'.
        :param request_pdu: A bytearray containing request PDU.
        :return: A bytearry containing reponse PDU.