From b0571f695431c6477214ab61d0770df3ff1023e3 Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Thu, 16 Jun 2011 12:31:57 -0700 Subject: N210: update burner for python3.0, added listbox for device selection in gui --- host/utils/usrp_n2xx_net_burner.py | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) (limited to 'host/utils/usrp_n2xx_net_burner.py') diff --git a/host/utils/usrp_n2xx_net_burner.py b/host/utils/usrp_n2xx_net_burner.py index 269126972..1df300c76 100755 --- a/host/utils/usrp_n2xx_net_burner.py +++ b/host/utils/usrp_n2xx_net_burner.py @@ -185,8 +185,8 @@ def win_get_interfaces(): adNode = a.ipAddressList while True: #convert ipAddr and ipMask into hex addrs that can be turned into a bcast addr - ipAddr = adNode.ipAddress - ipMask = adNode.ipMask + ipAddr = adNode.ipAddress.decode() + ipMask = adNode.ipMask.decode() if ipAddr and ipMask: hexAddr = struct.unpack(" flash_size: raise Exception("Error: Cannot write past end of device") @@ -317,7 +314,7 @@ class burner_socket(object): if not is_valid_fw_image(fw_image): raise Exception("Error: Invalid firmware image file.") - + if (len(fw_image) + image_location) > flash_size: raise Exception("Error: Cannot write past end of device") @@ -339,7 +336,7 @@ class burner_socket(object): (mem_size, sector_size) = self.get_flash_info() if (addr + len(writedata)) > mem_size: raise Exception("Error: Cannot write past end of device") - + while writedata: out_pkt = pack_flash_args_fmt(USRP2_FW_PROTO_VERSION, update_id_t.USRP2_FW_UPDATE_ID_WRITE_TEH_FLASHES_LOL, seq(), addr, FLASH_DATA_PACKET_SIZE, writedata[:FLASH_DATA_PACKET_SIZE]) in_pkt = self.send_and_recv(out_pkt) @@ -426,7 +423,7 @@ class burner_socket(object): (flash_size, sector_size) = self.get_flash_info() if (addr + length) > flash_size: raise Exception("Cannot erase past end of device") - + out_pkt = pack_flash_args_fmt(USRP2_FW_PROTO_VERSION, update_id_t.USRP2_FW_UPDATE_ID_ERASE_TEH_FLASHES_LOL, seq(), addr, length) in_pkt = self.send_and_recv(out_pkt) @@ -463,6 +460,7 @@ def get_options(): parser.add_option("--reset", action="store_true", help="reset the device after writing", default=False) parser.add_option("--read", action="store_true", help="read to file instead of write from file", default=False) parser.add_option("--overwrite-safe", action="store_true", help="never ever use this option", default=False) + parser.add_option("--list", action="store_true", help="list possible network devices", default=False) (options, args) = parser.parse_args() return options @@ -472,6 +470,12 @@ def get_options(): ######################################################################## if __name__=='__main__': options = get_options() + + if options.list: + print('Possible network devices:') + print(' ' + '\n '.join(enumerate_devices())) + exit() + if not options.addr: raise Exception('no address specified') if not options.fpga and not options.fw and not options.reset: raise Exception('Must specify either a firmware image or FPGA image, and/or reset.') -- cgit v1.2.3