summaryrefslogtreecommitdiff
path: root/tests/pyb/can.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pyb/can.py')
-rw-r--r--tests/pyb/can.py153
1 files changed, 79 insertions, 74 deletions
diff --git a/tests/pyb/can.py b/tests/pyb/can.py
index 71de724c7..4ea29b0f6 100644
--- a/tests/pyb/can.py
+++ b/tests/pyb/can.py
@@ -1,7 +1,7 @@
try:
from pyb import CAN
except ImportError:
- print('SKIP')
+ print("SKIP")
raise SystemExit
from array import array
@@ -40,23 +40,23 @@ print(can.info())
# Catch all filter
can.setfilter(0, CAN.MASK16, 0, (0, 0, 0, 0))
-can.send('abcd', 123, timeout=5000)
+can.send("abcd", 123, timeout=5000)
print(can.any(0), can.info())
print(can.recv(0))
-can.send('abcd', -1, timeout=5000)
+can.send("abcd", -1, timeout=5000)
print(can.recv(0))
-can.send('abcd', 0x7FF + 1, timeout=5000)
+can.send("abcd", 0x7FF + 1, timeout=5000)
print(can.recv(0))
# Test too long message
try:
- can.send('abcdefghi', 0x7FF, timeout=5000)
+ can.send("abcdefghi", 0x7FF, timeout=5000)
except ValueError:
- print('passed')
+ print("passed")
else:
- print('failed')
+ print("failed")
# Test that recv can work without allocating memory on the heap
@@ -66,22 +66,22 @@ l2 = None
micropython.heap_lock()
-can.send('', 42)
+can.send("", 42)
l2 = can.recv(0, l)
assert l is l2
print(l, len(l[3]), buf)
-can.send('1234', 42)
+can.send("1234", 42)
l2 = can.recv(0, l)
assert l is l2
print(l, len(l[3]), buf)
-can.send('01234567', 42)
+can.send("01234567", 42)
l2 = can.recv(0, l)
assert l is l2
print(l, len(l[3]), buf)
-can.send('abc', 42)
+can.send("abc", 42)
l2 = can.recv(0, l)
assert l is l2
print(l, len(l[3]), buf)
@@ -89,65 +89,65 @@ print(l, len(l[3]), buf)
micropython.heap_unlock()
# Test that recv can work with different arrays behind the memoryview
-can.send('abc', 1)
-print(bytes(can.recv(0, [0, 0, 0, memoryview(array('B', range(8)))])[3]))
-can.send('def', 1)
-print(bytes(can.recv(0, [0, 0, 0, memoryview(array('b', range(8)))])[3]))
+can.send("abc", 1)
+print(bytes(can.recv(0, [0, 0, 0, memoryview(array("B", range(8)))])[3]))
+can.send("def", 1)
+print(bytes(can.recv(0, [0, 0, 0, memoryview(array("b", range(8)))])[3]))
# Test for non-list passed as second arg to recv
-can.send('abc', 1)
+can.send("abc", 1)
try:
can.recv(0, 1)
except TypeError:
- print('TypeError')
+ print("TypeError")
# Test for too-short-list passed as second arg to recv
-can.send('abc', 1)
+can.send("abc", 1)
try:
can.recv(0, [0, 0, 0])
except ValueError:
- print('ValueError')
+ print("ValueError")
# Test for non-memoryview passed as 4th element to recv
-can.send('abc', 1)
+can.send("abc", 1)
try:
can.recv(0, [0, 0, 0, 0])
except TypeError:
- print('TypeError')
+ print("TypeError")
# Test for read-only-memoryview passed as 4th element to recv
-can.send('abc', 1)
+can.send("abc", 1)
try:
can.recv(0, [0, 0, 0, memoryview(bytes(8))])
except ValueError:
- print('ValueError')
+ print("ValueError")
# Test for bad-typecode-memoryview passed as 4th element to recv
-can.send('abc', 1)
+can.send("abc", 1)
try:
- can.recv(0, [0, 0, 0, memoryview(array('i', range(8)))])
+ can.recv(0, [0, 0, 0, memoryview(array("i", range(8)))])
except ValueError:
- print('ValueError')
+ print("ValueError")
del can
# Testing extended IDs
-can = CAN(1, CAN.LOOPBACK, extframe = True)
+can = CAN(1, CAN.LOOPBACK, extframe=True)
# Catch all filter
can.setfilter(0, CAN.MASK32, 0, (0, 0))
print(can)
try:
- can.send('abcde', 0x7FF + 1, timeout=5000)
+ can.send("abcde", 0x7FF + 1, timeout=5000)
except ValueError:
- print('failed')
+ print("failed")
else:
r = can.recv(0)
- if r[0] == 0x7FF+1 and r[3] == b'abcde':
- print('passed')
+ if r[0] == 0x7FF + 1 and r[3] == b"abcde":
+ print("passed")
else:
- print('failed, wrong data received')
+ print("failed, wrong data received")
# Test filters
for n in [0, 8, 16, 24]:
@@ -159,7 +159,7 @@ for n in [0, 8, 16, 24]:
can.clearfilter(0)
can.setfilter(0, pyb.CAN.MASK32, 0, (filter_id, filter_mask))
- can.send('ok', id_ok, timeout=3)
+ can.send("ok", id_ok, timeout=3)
if can.any(0):
msg = can.recv(0)
print((hex(filter_id), hex(filter_mask), hex(msg[0]), msg[3]))
@@ -175,57 +175,62 @@ del can
can = CAN(1, CAN.LOOPBACK)
can.setfilter(0, CAN.LIST16, 0, (1, 2, 3, 4))
can.setfilter(1, CAN.LIST16, 1, (5, 6, 7, 8))
+
+
def cb0(bus, reason):
- print('cb0')
+ print("cb0")
if reason == 0:
- print('pending')
+ print("pending")
if reason == 1:
- print('full')
+ print("full")
if reason == 2:
- print('overflow')
+ print("overflow")
+
def cb1(bus, reason):
- print('cb1')
+ print("cb1")
if reason == 0:
- print('pending')
+ print("pending")
if reason == 1:
- print('full')
+ print("full")
if reason == 2:
- print('overflow')
+ print("overflow")
+
def cb0a(bus, reason):
- print('cb0a')
+ print("cb0a")
if reason == 0:
- print('pending')
+ print("pending")
if reason == 1:
- print('full')
+ print("full")
if reason == 2:
- print('overflow')
+ print("overflow")
+
def cb1a(bus, reason):
- print('cb1a')
+ print("cb1a")
if reason == 0:
- print('pending')
+ print("pending")
if reason == 1:
- print('full')
+ print("full")
if reason == 2:
- print('overflow')
+ print("overflow")
can.rxcallback(0, cb0)
can.rxcallback(1, cb1)
-can.send('11111111',1, timeout=5000)
-can.send('22222222',2, timeout=5000)
-can.send('33333333',3, timeout=5000)
+can.send("11111111", 1, timeout=5000)
+can.send("22222222", 2, timeout=5000)
+can.send("33333333", 3, timeout=5000)
can.rxcallback(0, cb0a)
-can.send('44444444',4, timeout=5000)
+can.send("44444444", 4, timeout=5000)
-can.send('55555555',5, timeout=5000)
-can.send('66666666',6, timeout=5000)
-can.send('77777777',7, timeout=5000)
+can.send("55555555", 5, timeout=5000)
+can.send("66666666", 6, timeout=5000)
+can.send("77777777", 7, timeout=5000)
can.rxcallback(1, cb1a)
-can.send('88888888',8, timeout=5000)
+can.send("88888888", 8, timeout=5000)
print(can.recv(0))
print(can.recv(0))
@@ -234,8 +239,8 @@ print(can.recv(1))
print(can.recv(1))
print(can.recv(1))
-can.send('11111111',1, timeout=5000)
-can.send('55555555',5, timeout=5000)
+can.send("11111111", 1, timeout=5000)
+can.send("55555555", 5, timeout=5000)
print(can.recv(0))
print(can.recv(1))
@@ -249,7 +254,7 @@ can.setfilter(0, CAN.MASK16, 0, (0, 0, 0, 0))
while can.any(0):
can.recv(0)
-can.send('abcde', 1, timeout=0)
+can.send("abcde", 1, timeout=0)
print(can.any(0))
while not can.any(0):
pass
@@ -257,15 +262,15 @@ while not can.any(0):
print(can.recv(0))
try:
- can.send('abcde', 2, timeout=0)
- can.send('abcde', 3, timeout=0)
- can.send('abcde', 4, timeout=0)
- can.send('abcde', 5, timeout=0)
+ can.send("abcde", 2, timeout=0)
+ can.send("abcde", 3, timeout=0)
+ can.send("abcde", 4, timeout=0)
+ can.send("abcde", 5, timeout=0)
except OSError as e:
- if str(e) == '16':
- print('passed')
+ if str(e) == "16":
+ print("passed")
else:
- print('failed')
+ print("failed")
pyb.delay(500)
while can.any(0):
@@ -279,22 +284,22 @@ bus1.setfilter(0, CAN.LIST16, 0, (1, 2, 3, 4))
bus1.setfilter(1, CAN.LIST16, 0, (5, 6, 7, 8), rtr=(True, True, True, True))
bus1.setfilter(2, CAN.MASK16, 0, (64, 64, 32, 32), rtr=(False, True))
-bus1.send('',1,rtr=True)
+bus1.send("", 1, rtr=True)
print(bus1.any(0))
-bus1.send('',5,rtr=True)
+bus1.send("", 5, rtr=True)
print(bus1.recv(0))
-bus1.send('',6,rtr=True)
+bus1.send("", 6, rtr=True)
print(bus1.recv(0))
-bus1.send('',7,rtr=True)
+bus1.send("", 7, rtr=True)
print(bus1.recv(0))
-bus1.send('',16,rtr=True)
+bus1.send("", 16, rtr=True)
print(bus1.any(0))
-bus1.send('',32,rtr=True)
+bus1.send("", 32, rtr=True)
print(bus1.recv(0))
# test HAL error, timeout
can = pyb.CAN(1, pyb.CAN.NORMAL)
try:
- can.send('1', 1, timeout=50)
+ can.send("1", 1, timeout=50)
except OSError as e:
print(repr(e))