_canio: Add _canio.State enum-like class
This commit is contained in:
parent
37af9dde90
commit
f8dcf2118e
|
@ -48,21 +48,55 @@
|
|||
//|
|
||||
|
||||
#include "py/obj.h"
|
||||
#include "py/enum.h"
|
||||
|
||||
#include "shared-bindings/_canio/__init__.h"
|
||||
#include "shared-bindings/_canio/CAN.h"
|
||||
#include "shared-bindings/_canio/Match.h"
|
||||
#include "shared-bindings/_canio/Message.h"
|
||||
#include "shared-bindings/_canio/Listener.h"
|
||||
|
||||
MAKE_ENUM_VALUE(canio_bus_state_type, bus_state, ERROR_ACTIVE, BUS_STATE_ERROR_ACTIVE);
|
||||
MAKE_ENUM_VALUE(canio_bus_state_type, bus_state, ERROR_PASSIVE, BUS_STATE_ERROR_PASSIVE);
|
||||
MAKE_ENUM_VALUE(canio_bus_state_type, bus_state, ERROR_WARNING, BUS_STATE_ERROR_WARNING);
|
||||
MAKE_ENUM_VALUE(canio_bus_state_type, bus_state, BUS_OFF, BUS_STATE_OFF);
|
||||
|
||||
//| class BusState:
|
||||
//| """The state of the CAN bus"""
|
||||
//|
|
||||
//| ERROR_ACTIVE: object
|
||||
//| """The bus is in the normal (active) state"""
|
||||
//|
|
||||
//| ERROR_WARNING: object
|
||||
//| """The bus is in the normal (active) state, but a moderate number of errors have occurred recently"""
|
||||
//|
|
||||
//| ERROR_PASSIVE: object
|
||||
//| """The bus is in the passive state due to the number of errors that have occurred recently"""
|
||||
//|
|
||||
//| BUS_OFF: object
|
||||
//| """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"""
|
||||
//|
|
||||
MAKE_ENUM_MAP(canio_bus_state) {
|
||||
MAKE_ENUM_MAP_ENTRY(bus_state, ERROR_ACTIVE),
|
||||
MAKE_ENUM_MAP_ENTRY(bus_state, ERROR_PASSIVE),
|
||||
MAKE_ENUM_MAP_ENTRY(bus_state, ERROR_WARNING),
|
||||
MAKE_ENUM_MAP_ENTRY(bus_state, BUS_OFF),
|
||||
};
|
||||
STATIC MP_DEFINE_CONST_DICT(canio_bus_state_locals_dict, canio_bus_state_locals_table);
|
||||
|
||||
MAKE_PRINTER(_canio, canio_bus_state);
|
||||
|
||||
MAKE_ENUM_TYPE(_canio, BusState, canio_bus_state);
|
||||
|
||||
STATIC const mp_rom_map_elem_t canio_module_globals_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR__canio) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BusState), MP_ROM_PTR(&canio_bus_state_type) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_CAN), MP_ROM_PTR(&canio_can_type) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_Listener), MP_ROM_PTR(&canio_listener_type) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_Match), MP_ROM_PTR(&canio_match_type) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_Message), MP_ROM_PTR(&canio_message_type) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR__canio) },
|
||||
};
|
||||
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(canio_module_globals, canio_module_globals_table);
|
||||
|
||||
const mp_obj_module_t canio_module = {
|
||||
|
|
|
@ -26,4 +26,8 @@
|
|||
|
||||
#pragma once
|
||||
|
||||
// Nothing now.
|
||||
typedef enum {
|
||||
BUS_STATE_ERROR_ACTIVE, BUS_STATE_ERROR_PASSIVE, BUS_STATE_ERROR_WARNING, BUS_STATE_OFF
|
||||
} canio_bus_state_t;
|
||||
|
||||
extern const mp_obj_type_t canio_bus_state_type;
|
||||
|
|
Loading…
Reference in New Issue