summaryrefslogtreecommitdiffstatshomepage
path: root/tests/pyb/can.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/pyb/can.py')
-rw-r--r--tests/pyb/can.py72
1 files changed, 72 insertions, 0 deletions
diff --git a/tests/pyb/can.py b/tests/pyb/can.py
index f1cad860b9..132da23069 100644
--- a/tests/pyb/can.py
+++ b/tests/pyb/can.py
@@ -48,3 +48,75 @@ else:
print('passed')
else:
print('failed, wrong data received')
+
+del can
+
+# Test RxCallbacks
+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')
+ if reason == 0:
+ print('pending')
+ if reason == 1:
+ print('full')
+ if reason == 2:
+ print('overflow')
+
+def cb1(bus, reason):
+ print('cb1')
+ if reason == 0:
+ print('pending')
+ if reason == 1:
+ print('full')
+ if reason == 2:
+ print('overflow')
+
+def cb0a(bus, reason):
+ print('cb0a')
+ if reason == 0:
+ print('pending')
+ if reason == 1:
+ print('full')
+ if reason == 2:
+ print('overflow')
+
+def cb1a(bus, reason):
+ print('cb1a')
+ if reason == 0:
+ print('pending')
+ if reason == 1:
+ print('full')
+ if reason == 2:
+ print('overflow')
+
+
+can.rxcallback(0, cb0)
+can.rxcallback(1, cb1)
+
+can.send('11111111',1)
+can.send('22222222',2)
+can.send('33333333',3)
+can.rxcallback(0, cb0a)
+can.send('44444444',4)
+
+can.send('55555555',5)
+can.send('66666666',6)
+can.send('77777777',7)
+can.rxcallback(1, cb1a)
+can.send('88888888',8)
+
+print(can.recv(0))
+print(can.recv(0))
+print(can.recv(0))
+print(can.recv(1))
+print(can.recv(1))
+print(can.recv(1))
+
+can.send('11111111',1)
+can.send('55555555',5)
+
+print(can.recv(0))
+print(can.recv(1))
+