def run_procedure(self, process_number, std_vs_mfg, params='<STR_LIT>'):
seqnum = random.randint(<NUM_LIT:2>, <NUM_LIT>)<EOL>self.logger.info('<STR_LIT>' + str(process_number) + '<STR_LIT>' + hex(process_number) + '<STR_LIT>' + str(seqnum) + '<STR_LIT>' + hex(seqnum) + '<STR_LIT:)>')<EOL>procedure_request = C1219ProcedureInit(self.c1219_endian, process_number, std_vs_mfg, <NUM_LIT:0>, seqnum, params).build()<EOL>self.set_table_data(<NUM_LIT:7>, procedure_request)<EOL>response = self.get_table_data(<NUM_LIT:8>)<EOL>if response[:<NUM_LIT:3>] == procedure_request[:<NUM_LIT:3>]:<EOL><INDENT>return response[<NUM_LIT:3>], response[<NUM_LIT:4>:]<EOL><DEDENT>else:<EOL><INDENT>self.logger.error('<STR_LIT>')<EOL>raise C1219ProcedureError('<STR_LIT>')<EOL><DEDENT>
Initiate a C1219 procedure, the request is written to table 7 and
the response is read from table 8.

:param int process_number: The numeric procedure identifier (0 <= process_number <= 2047).
:param bool std_vs_mfg: Whether the procedure is manufacturer specified
  or not. True is manufacturer specified.
:param bytes params: The parameters to pass to the procedure initiation request.
:return: A tuple of the result code and the response data.
:rtype: tuple