diff --git a/src/libprs500/__init__.py b/src/libprs500/__init__.py index b61f4b68c0..f997919bbe 100644 --- a/src/libprs500/__init__.py +++ b/src/libprs500/__init__.py @@ -37,7 +37,7 @@ You may have to adjust the GROUP and the location of the rules file to suit your distribution. """ -__version__ = "0.3.5" +__version__ = "0.3.6" __docformat__ = "epytext" __author__ = "Kovid Goyal " diff --git a/src/libprs500/communicate.py b/src/libprs500/communicate.py index 7aae8ec18d..2653a454fe 100755 --- a/src/libprs500/communicate.py +++ b/src/libprs500/communicate.py @@ -260,7 +260,9 @@ class PRS500Device(Device): if version not in KNOWN_USB_PROTOCOL_VERSIONS: print >> sys.stderr, "WARNING: Usb protocol version " + \ hex(version) + " is unknown" - res = self.send_validated_command(SetBulkSize(size=0x028000)) + res = self.send_validated_command(SetBulkSize(\ + chunk_size = 512*self.bulk_read_max_packet_size, \ + unknown = 2)) if res.code != 0: raise ProtocolError("Unable to set bulk size.") self.send_validated_command(UnlockDevice(key=0x312d)) diff --git a/src/libprs500/gui/main.py b/src/libprs500/gui/main.py index e12d86db6f..aeb334205a 100644 --- a/src/libprs500/gui/main.py +++ b/src/libprs500/gui/main.py @@ -177,6 +177,7 @@ class Main(QObject, Ui_MainWindow): self.status("Syncing media list to card") self.dev.upload_book_list(self.card_model.booklist) self.update_availabe_space() + self.model_modified() self.show_book(self.current_view.currentIndex(), QModelIndex()) self.window.setCursor(Qt.ArrowCursor) @@ -479,7 +480,8 @@ class Main(QObject, Ui_MainWindow): self.detector = DeviceConnectDetector(self.dev) self.connect(self.detector, SIGNAL("device_connected()"), \ self.establish_connection) - self.connect(self.detector, SIGNAL("device_removed()"), self.device_removed) + self.connect(self.detector, SIGNAL("device_removed()"), \ + self.device_removed) self.search.setFocus(Qt.OtherFocusReason) self.show_device(False) self.df_template = self.df.text() diff --git a/src/libprs500/libusb.py b/src/libprs500/libusb.py index 8e1be2329d..f6ce979580 100644 --- a/src/libprs500/libusb.py +++ b/src/libprs500/libusb.py @@ -253,6 +253,8 @@ class DeviceHandle(Structure): if rsize < 0: raise Error('Could not read ' + str(size) + ' bytes on the '\ 'bulk bus. Error code: ' + str(rsize)) + if rsize == 0: + raise Error('Device sent zero bytes') if rsize < size: arr = arr[:rsize] return arr diff --git a/src/libprs500/prstypes.py b/src/libprs500/prstypes.py index 2f0dc55065..39cecc3fe8 100755 --- a/src/libprs500/prstypes.py +++ b/src/libprs500/prstypes.py @@ -46,6 +46,7 @@ import time from libprs500.errors import PacketError +WORD = "