commit 7dd7918a305c543d60f82dd59dbcc5fda17721e3
parent 44b0fab4c07d1a1b0925c366a5cb7a49424d1559
Author: ThomasV <thomasv1@gmx.de>
Date: Fri, 19 Sep 2014 16:24:00 +0200
Merge pull request #848 from btchip/firmwareupdate
Firmwareupdate
Diffstat:
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git a/plugins/btchipwallet.py b/plugins/btchipwallet.py
@@ -27,6 +27,7 @@ try:
from btchip.btchipUtils import compress_public_key,format_transaction, get_regular_input_script
from btchip.bitcoinTransaction import bitcoinTransaction
from btchip.btchipPersoWizard import StartBTChipPersoDialog
+ from btchip.btchipFirmwareWizard import checkFirmware, updateFirmware
from btchip.btchipException import BTChipException
BTCHIP = True
BTCHIP_DEBUG = False
@@ -143,12 +144,16 @@ class BTChipWallet(NewWallet):
d.setWaitImpl(DongleWaitQT(d))
self.client = btchip(d)
firmware = self.client.getFirmwareVersion()['version'].split(".")
- if int(firmware[0]) <> 1 or int(firmware[1]) <> 4:
- aborted = True
- raise Exception("Unsupported firmware version")
- if int(firmware[2]) < 9:
- aborted = True
- raise Exception("Please update your firmware - 1.4.9 or higher is necessary")
+ if (not checkFirmware(firmware)) or (int(firmware[0]) <> 1) or (int(firmware[1]) <> 4) or (int(firmware[2]) < 9):
+ d.close()
+ try:
+ updateFirmware()
+ except Exception, e:
+ aborted = True
+ raise e
+ d = getDongle(BTCHIP_DEBUG)
+ d.setWaitImpl(DongleWaitQT(d))
+ self.client = btchip(d)
try:
self.client.getOperationMode()
except BTChipException, e:
@@ -194,7 +199,7 @@ class BTChipWallet(NewWallet):
pass
self.client = None
if not aborted:
- raise Exception("Could not connect to your BTChip dongle. Please verify access permissions or PIN")
+ raise Exception("Could not connect to your BTChip dongle. Please verify access permissions, PIN, or unplug the dongle and plug it again")
else:
raise e
self.client.bad = False