aboutsummaryrefslogtreecommitdiff
path: root/Tools/px_uploader.py
diff options
context:
space:
mode:
authorpx4dev <px4@purgatory.org>2012-09-09 22:09:17 -0700
committerpx4dev <px4@purgatory.org>2012-09-09 22:09:17 -0700
commitb871d28c6df1ff9ed7c640d5d0147083e91cac5e (patch)
tree1fd780fd1df6588022fff1e0fe6fd8b3b635549c /Tools/px_uploader.py
parent3140ba658a322d98c6fe7943c5fb72bb061c46de (diff)
downloadpx4-firmware-b871d28c6df1ff9ed7c640d5d0147083e91cac5e.tar.gz
px4-firmware-b871d28c6df1ff9ed7c640d5d0147083e91cac5e.tar.bz2
px4-firmware-b871d28c6df1ff9ed7c640d5d0147083e91cac5e.zip
Avoid trying to adjust the port timeout once it's open; Windows apparently doesn't like this.
Diffstat (limited to 'Tools/px_uploader.py')
-rwxr-xr-xTools/px_uploader.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/Tools/px_uploader.py b/Tools/px_uploader.py
index 1a0d7bd45..dfb53980a 100755
--- a/Tools/px_uploader.py
+++ b/Tools/px_uploader.py
@@ -172,10 +172,16 @@ class uploader(object):
self.__send(uploader.CHIP_ERASE
+ uploader.EOC)
# erase is very slow, give it 10s
- old_timeout = self.port.timeout
- self.port.timeout = 10
- self.__getSync()
- self.port.timeout = old_timeout
+ deadline = time.time() + 10
+ while time.time() < deadline:
+ try:
+ self.__getSync()
+ return
+ except RuntimeError as ex:
+ # we timed out, that's OK
+ continue
+
+ raise RuntimeError("timed out waiting for erase")
# send a PROG_MULTI command to write a collection of bytes
def __program_multi(self, data):