def create_instance(self, dev_path, what_chip): "in : \ dev_path:string" protocol_type = dfu_common.get_protocol_type_support( self.rpc_client_node)["swd"] arch_type = dfu_common.get_chip_arch_type_support( self.rpc_client_node)["nrf5xble"] chip_type = dfu_common.get_chip_type_support(self.rpc_client_node, arch_type)[what_chip] print(dfu_common.get_protocol_type_support(self.rpc_client_node)) print(dfu_common.get_chip_arch_type_support(self.rpc_client_node)) print(dfu_common.get_chip_type_support(self.rpc_client_node, arch_type)) params = {} params["driver_name"] = dev_path params["protocol_type"] = protocol_type params["chip_arch_type"] = arch_type params["chip_type"] = chip_type response = self.rpc_client_node.call("DfuProgInstanceCreate", **params) logger.info(response) if response["state"] < 0: # logger.info(response["return"]) return dfu_common.get_error_return_state(response) return dfu_common.get_correct_return_state(response)
def flash_interactive(self, cmd, address, dummy_data_num, write_array, length, instance_sequence=0): "in:\ cmd:unsigned int ,spi flash command\ address:unsigned int\ dummy_data_num:unsigned int\ write_array:array\ length:unsigned int ,array length not more than 512\ instance_sequence:unsigned int\ " params = {} params["cmd"] = cmd, params["address"] = address, params["dummy_data_num"] = dummy_data_num, params["write_array"] = write_array, params["length"] = length, params["instance_sequence"] = instance_sequence response = self.rpc_client_node.call("FlashInteractive", **params) # pring(response) if response["state"] < 0: # logger.info(response["return"]) return dfu_common.get_error_return_state(response) return dfu_common.get_correct_return_state(response)
def dut_storage_checkout(self, target_file_name, target_address, file_offset, size, instance_sequence=0): "in:\ target_file_name:str,the file path\ target_address: unsigned int,the DUT target checkout address\ file_offset:unsigned int,loading the firmware file start address\ size:unsigned int,program size\ instance_sequence:unsigned int\ " params = {} params["target_file_name"] = target_file_name params["target_address"] = target_address params["file_offset"] = file_offset params["size"] = size params["instance_sequence"] = instance_sequence response = self.rpc_client_node.call("DutStorageCheckout", **params) # pring(response) if response["state"] < 0: logger.info(response["return"]) return dfu_common.get_error_return_state(response) return dfu_common.get_correct_return_state(response)
def get_frequency(self, instance_sequence=0): "in:\ instance_sequence:unsigned int" params = {} params["instance_sequence"] = instance_sequence response = self.rpc_client_node.call("ReadFrequencyHz", **params) # pring(response) if response["state"] < 0: # logger.info(response["return"]) return dfu_common.get_error_return_state(response) return dfu_common.get_correct_return_state(response)
def instance_initial(self, freqency_hz, instance_sequence=0): "in:\ frequency_hz:unsigned int\ instance_sequence:unsigned int\ " params = {} params["frequency_hz"] = freqency_hz params["instance_sequence"] = instance_sequence response = self.rpc_client_node.call("DriverInitial", **params) # # pring(response) if response["state"] < 0: return dfu_common.get_error_return_state(response) response = self.rpc_client_node.call("SetFrequencyHz", **params) # # pring(response) if response["state"] < 0: # logger.info(response["return"]) return dfu_common.get_error_return_state(response) #configure switch sequence sequence_arr = [0xff for i in range(8)] sequence_arr += [ hearst_sequence1 & 0xFF, (hearst_sequence1 >> 8) & 0xFF ] sequence_arr += [0xff for i in range(8)] sequence_arr += [ hearst_sequence2 & 0xFF, (hearst_sequence2 >> 8) & 0xFF ] sequence_arr += [0xff for i in range(8)] sequence_arr += [0x00 for i in range(2)] params["write_array"] = sequence_arr params["length"] = len(sequence_arr) #configure start csw register params["value"] = 0x23000002 response = self.rpc_client_node.call("ConfigureSwitchSequence", **params) # # pring(response) if response["state"] < 0: # logger.info(response["return"]) return dfu_common.get_error_return_state(response) response = self.rpc_client_node.call("ConfigureCswData", **params) # # pring(response) if response["state"] < 0: # logger.info(response["return"]) return dfu_common.get_error_return_state(response) return dfu_common.get_correct_return_state(response)
def flash_exit_32_bit_mode(self): "in:\ instance_sequence:unsigned int\ " params = {} params["instance_sequence"] = instance_sequence response = self.rpc_client_node.call("Exit32BitAddressMode", **params) # pring(response) if response["state"] < 0: # logger.info(response["return"]) return dfu_common.get_error_return_state(response) return dfu_common.get_correct_return_state(response)
def dut_storage_erase_all(self, instance_sequence=0): "in:\ instance_sequence:unsigned int\ " params = {} params["instance_sequence"] = instance_sequence response = self.rpc_client_node.call("DutStorageEraseAll", **params) # pring(response) if response["state"] < 0: # logger.info(response["return"]) return dfu_common.get_error_return_state(response) return dfu_common.get_correct_return_state(response)
def destroy_instance(self, instance_sequence=0): "in:\ instance_sequence:unsigned int" params = {} params["instance_sequence"] = instance_sequence response = self.rpc_client_node.call("DfuProgInstanceDestroy", **params) # # pring(response) if response["state"] < 0: # logger.info(response["return"]) return dfu_common.get_error_return_state( response) #response["state_description"],response["state"] return dfu_common.get_correct_return_state( response) #response["return"]
def dut_reset(self, pluse_delay_us=10000, instance_sequence=0): "in:\ pluse_delay_us:unsigned int ,read target address\ instance_sequence:unsigned int\ " params = {} params["pluse_delay_us"] = pluse_delay_us params["instance_sequence"] = instance_sequence response = self.rpc_client_node.call("Reset", **params) # pring(response) if response["state"] < 0: # logger.info(response["return"]) return dfu_common.get_error_return_state(response) return dfu_common.get_correct_return_state(response)
def dut_reg_read(self, address, instance_sequence=0): "in:\ address:unsigned int ,read target address\ instance_sequence:unsigned int\ " params = {} params["address"] = address params["instance_sequence"] = instance_sequence response = self.rpc_client_node.call("RegRead", **params) # pring(response) if response["state"] < 0: # logger.info(response["return"]) return dfu_common.get_error_return_state(response) return dfu_common.get_correct_return_state(response)
def dut_storage_erase(self, instance_sequence, target_address, size): "in:\ instance_sequence:unsigned int\ " params = {} params["instance_sequence"] = instance_sequence if target_address != None and size != None: params["target_address"] = target_address params["size"] = size response = self.rpc_client_node.call("DutStorageErase", **params) # pring(response) if response["state"] < 0: # logger.info(response["return"]) return dfu_common.get_error_return_state(response) return dfu_common.get_correct_return_state(response)
def instance_initial(self, freqency_hz, instance_sequence=0): "in:\ frequency_hz:unsigned int\ instance_sequence:unsigned int" params = {} params["frequency_hz"] = freqency_hz params["instance_sequence"] = instance_sequence response = self.rpc_client_node.call("DriverInitial", **params) # # pring(response) if response["state"] < 0: return dfu_common.get_error_return_state(response) response = self.rpc_client_node.call("SetFrequencyHz", **params) # # pring(response) if response["state"] < 0: # logger.info(response["return"]) return dfu_common.get_error_return_state(response) return dfu_common.get_correct_return_state(response)