aboutsummaryrefslogtreecommitdiff
path: root/bin/dfu
diff options
context:
space:
mode:
Diffstat (limited to 'bin/dfu')
-rwxr-xr-xbin/dfu16
1 files changed, 8 insertions, 8 deletions
diff --git a/bin/dfu b/bin/dfu
index e270438..fd783e0 100755
--- a/bin/dfu
+++ b/bin/dfu
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python3
#
# Copyright (c) 2016, NORDUnet A/S All rights reserved.
#
@@ -43,7 +43,7 @@ import struct
import serial
import argparse
-from binascii import crc32
+from binascii import crc32, hexlify
CHUNK_SIZE = 4096
@@ -77,23 +77,23 @@ def parse_args():
def _write(dst, data):
for i in range(len(data)):
- dst.write(data[i])
+ dst.write(data[i:i+1])
time.sleep(0.1)
if len(data) == 4:
- print("Wrote 0x{:02x}{:02x}{:02x}{:02x}".format(ord(data[0]), ord(data[1]), ord(data[2]), ord(data[3])))
+ print("Wrote 0x{}".format(hexlify(data).decode("ascii")))
else:
print("Wrote {!r}".format(data))
def _read(dst, verbose=False):
- res = ''
+ res = b''
while True:
x = dst.read(1)
if not x:
break
res += x
if res and verbose:
- print ("Read {!r}".format(res))
+ print("Read {!r}".format(res))
return res
@@ -111,7 +111,7 @@ def send_file(filename, args):
except serial.SerialException:
time.sleep(0.2)
continue
- dst.write('\r')
+ dst.write(b'\r')
response = _read(dst, args.verbose)
if 'OK' in response:
dst.timeout=2
@@ -137,7 +137,7 @@ def send_file(filename, args):
if len(ack_bytes) == 4:
break
print('ERROR: Did not receive an ACK, got {!r}'.format(ack_bytes))
- dst.write('\r') # eventually get back to the CLI prompt
+ dst.write(b'\r') # eventually get back to the CLI prompt
ack = struct.unpack('<I', ack_bytes)[0]
if ack != counter + 1:
print('ERROR: Did not receive the expected counter as ACK (got {!r}/{!r}, not {!r})'.format(ack, ack_bytes, counter))