Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
    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)
Example #8
0
    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)
Example #9
0
    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"]
Example #10
0
    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)
Example #11
0
    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)
Example #12
0
    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)