diff options
Diffstat (limited to 'tests/pyb/can.py')
-rw-r--r-- | tests/pyb/can.py | 72 |
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)) + |