Skip to content

Commit 6cf550d

Browse files
committed
test loading firmware in loop
1 parent c3bed53 commit 6cf550d

File tree

3 files changed

+41
-1
lines changed

3 files changed

+41
-1
lines changed

buildhat/serinterface.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ def cmp(str1, str2):
3131

3232
class BuildHAT:
3333
CONNECTED=": connected to active ID"
34+
CONNECTEDPASSIVE=": connected to passive ID"
3435
DISCONNECTED=": disconnected"
3536
DEVTIMEOUT=": timeout during data phase: disconnecting"
3637
NOTCONNECTED=": no device detected"
@@ -89,7 +90,7 @@ def __init__(self, firmware, signature, version):
8990
else:
9091
self.write(b"version\r")
9192
# Use to force hat reset
92-
#self.state = HatState.NEEDNEWFIRMWARE
93+
self.state = HatState.NEEDNEWFIRMWARE
9394
if self.state == HatState.NEEDNEWFIRMWARE:
9495
self.resethat()
9596
self.loadfirmware(firmware, signature)
@@ -200,11 +201,14 @@ def callbackloop(self, q):
200201
q.task_done()
201202

202203
def loop(self, cond, uselist, q):
204+
tmp = open("/tmp/serial.txt", "a")
203205
count = 0
204206
while self.running:
205207
line = b""
206208
try:
207209
line = self.ser.readline().decode('utf-8', 'ignore')
210+
print(line, file=tmp, end='')
211+
tmp.flush()
208212
except serial.SerialException:
209213
pass
210214
if len(line) == 0:
@@ -219,6 +223,11 @@ def loop(self, cond, uselist, q):
219223
self.write("port {} ; on\r".format(portid).encode())
220224
if uselist:
221225
count += 1
226+
elif cmp(msg, BuildHAT.CONNECTEDPASSIVE):
227+
typeid = int(line[2+len(BuildHAT.CONNECTEDPASSIVE):],16)
228+
self.connections[portid].update(typeid, True)
229+
if uselist:
230+
count += 1
222231
elif cmp(msg, BuildHAT.DISCONNECTED):
223232
self.connections[portid].update(-1, False)
224233
elif cmp(msg, BuildHAT.DEVTIMEOUT):

test/loadingtest.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/python3
2+
3+
import datetime
4+
from buildhat import Hat
5+
6+
try:
7+
print("{} Starting".format(datetime.datetime.now().strftime("%H:%M:%S")))
8+
h = Hat()
9+
print(h.get())
10+
print("Fin")
11+
except Exception as err:
12+
print(err)
13+
with open('/tmp/test', 'w'):
14+
pass

test/loadingtest.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/bin/bash
2+
3+
rm "/tmp/test"
4+
5+
while [[ 1 ]];
6+
do
7+
rm /tmp/serial.txt
8+
9+
./loadingtest.py
10+
11+
if [ -f "/tmp/test" ]; then
12+
break
13+
fi
14+
sleep 1
15+
done
16+
17+
cat /tmp/serial.txt

0 commit comments

Comments
 (0)