timeout fix
[pyfrprog.git] / frprog.py
index d99f48fc63cd87be463da9f795ebfda2b0b820d0..ce102ee8af94f89f61fe3a9f429d525e9a0cd1d9 100755 (executable)
--- a/frprog.py
+++ b/frprog.py
@@ -177,6 +177,9 @@ def readMHXFile(filename): # desired mhx filename
        fp.close()
        return retval
 
+def usage(execfile):
+       print "Usage: " + execfile + " <target mhx-file> [-d DEVICE]"
+
 def main(argv=None):
        # check command line arguments
        if argv is None:
@@ -187,13 +190,19 @@ def main(argv=None):
                return 0
 
        if len(argv) != 2 and len(argv) != 4:
-               print "Usage: " + argv[0] + " <target mhx-file> [-d DEVICE]"
+               usage(argv[0])
                return 1
 
        # standard serial device to communicate with
        DEVICE="/dev/ttyUSB0"
+
+       # overrule standard device if provided with -d
        if len(argv) == 4:
-               DEVICE = argv[3]
+               if argv[2] == "-d":
+                       DEVICE = argv[3]
+               else:
+                       usage(argv[0])
+                       return 1
 
        # read in data from mhx-files before starting
        try:
@@ -226,7 +235,11 @@ def main(argv=None):
 
        print "OK, trying to set baudrate..."
        # set baudrate
-       bootromBAUDRATE(BOOTLOADER_BAUDRATE)
+       try:
+               bootromBAUDRATE(BOOTLOADER_BAUDRATE)
+       except SerialPortException:
+               print "timeout exception: try again ->"
+               bootromBAUDRATE(BOOTLOADER_BAUDRATE)
        time.sleep(0.1) # just to get sure that the bootloader is really running in new baudrate mode!
        del tty
        tty = SerialPort(DEVICE, 100, BOOTLOADER_BAUDRATE)