|
48 | 48 | //|
|
49 | 49 |
|
50 | 50 | #include "py/obj.h"
|
| 51 | +#include "py/enum.h" |
51 | 52 |
|
52 | 53 | #include "shared-bindings/_canio/__init__.h"
|
53 | 54 | #include "shared-bindings/_canio/CAN.h"
|
54 | 55 | #include "shared-bindings/_canio/Match.h"
|
55 | 56 | #include "shared-bindings/_canio/Message.h"
|
| 57 | +#include "shared-bindings/_canio/Listener.h" |
| 58 | + |
| 59 | +MAKE_ENUM_VALUE(canio_bus_state_type, bus_state, ERROR_ACTIVE, BUS_STATE_ERROR_ACTIVE); |
| 60 | +MAKE_ENUM_VALUE(canio_bus_state_type, bus_state, ERROR_PASSIVE, BUS_STATE_ERROR_PASSIVE); |
| 61 | +MAKE_ENUM_VALUE(canio_bus_state_type, bus_state, ERROR_WARNING, BUS_STATE_ERROR_WARNING); |
| 62 | +MAKE_ENUM_VALUE(canio_bus_state_type, bus_state, BUS_OFF, BUS_STATE_OFF); |
| 63 | + |
| 64 | +//| class BusState: |
| 65 | +//| """The state of the CAN bus""" |
| 66 | +//| |
| 67 | +//| ERROR_ACTIVE: object |
| 68 | +//| """The bus is in the normal (active) state""" |
| 69 | +//| |
| 70 | +//| ERROR_WARNING: object |
| 71 | +//| """The bus is in the normal (active) state, but a moderate number of errors have occurred recently""" |
| 72 | +//| |
| 73 | +//| ERROR_PASSIVE: object |
| 74 | +//| """The bus is in the passive state due to the number of errors that have occurred recently""" |
| 75 | +//| |
| 76 | +//| BUS_OFF: object |
| 77 | +//| """The bus has turned off due to the number of errors that have occurred recently. It must be restarted before it will send or receive packets""" |
| 78 | +//| |
| 79 | +MAKE_ENUM_MAP(canio_bus_state) { |
| 80 | + MAKE_ENUM_MAP_ENTRY(bus_state, ERROR_ACTIVE), |
| 81 | + MAKE_ENUM_MAP_ENTRY(bus_state, ERROR_PASSIVE), |
| 82 | + MAKE_ENUM_MAP_ENTRY(bus_state, ERROR_WARNING), |
| 83 | + MAKE_ENUM_MAP_ENTRY(bus_state, BUS_OFF), |
| 84 | +}; |
| 85 | +STATIC MP_DEFINE_CONST_DICT(canio_bus_state_locals_dict, canio_bus_state_locals_table); |
| 86 | + |
| 87 | +MAKE_PRINTER(_canio, canio_bus_state); |
| 88 | + |
| 89 | +MAKE_ENUM_TYPE(_canio, BusState, canio_bus_state); |
56 | 90 |
|
57 | 91 | STATIC const mp_rom_map_elem_t canio_module_globals_table[] = {
|
58 |
| - { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR__canio) }, |
| 92 | + { MP_ROM_QSTR(MP_QSTR_BusState), MP_ROM_PTR(&canio_bus_state_type) }, |
59 | 93 | { MP_ROM_QSTR(MP_QSTR_CAN), MP_ROM_PTR(&canio_can_type) },
|
60 | 94 | { MP_ROM_QSTR(MP_QSTR_Listener), MP_ROM_PTR(&canio_listener_type) },
|
61 | 95 | { MP_ROM_QSTR(MP_QSTR_Match), MP_ROM_PTR(&canio_match_type) },
|
62 | 96 | { MP_ROM_QSTR(MP_QSTR_Message), MP_ROM_PTR(&canio_message_type) },
|
| 97 | + { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR__canio) }, |
63 | 98 | };
|
64 | 99 |
|
65 |
| - |
66 | 100 | STATIC MP_DEFINE_CONST_DICT(canio_module_globals, canio_module_globals_table);
|
67 | 101 |
|
68 | 102 | const mp_obj_module_t canio_module = {
|
|
0 commit comments