diff options
| author | tangweikang <[email protected]> | 2019-08-11 15:34:51 +0800 |
|---|---|---|
| committer | tangweikang <[email protected]> | 2019-08-11 16:15:43 +0800 |
| commit | e5dc60e3cfc5551c18308dd4d2dad1069c6e5f2f (patch) | |
| tree | 6dc6c2c36cadefaca4d8c5fedb728a035654dca6 /components/drivers/include | |
| parent | cc565da5a178d598d35cc9b7d4a1a36be5fb17f5 (diff) | |
[components][drivers] update encoder driven framework
Diffstat (limited to 'components/drivers/include')
| -rw-r--r-- | components/drivers/include/drivers/encoder.h | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/components/drivers/include/drivers/encoder.h b/components/drivers/include/drivers/encoder.h index c6c3e4d708..57cb47e6fb 100644 --- a/components/drivers/include/drivers/encoder.h +++ b/components/drivers/include/drivers/encoder.h @@ -19,20 +19,18 @@ extern "C" { #endif /* encoder control command */ -typedef enum -{ - ENCODER_INFO_GET = 0x01, /* get a encoder feature information */ - ENCODER_SWITCH_ON, /* switch on encoder */ - ENCODER_SWITCH_OFF, /* switch off encoder */ - ENCODER_COUNT_CLEAR, /* clear encoder count */ -} rt_encoder_ctrl_t; +#define ENCODER_CMD_GET_TYPE (128 + 0) /* get a encoder type information */ +#define ENCODER_CMD_ENABLE (128 + 1) /* enable encoder */ +#define ENCODER_CMD_DISABLE (128 + 2) /* disable encoder */ +#define ENCODER_CMD_CLEAR_COUNT (128 + 3) /* clear encoder count */ /* encoder type */ -typedef enum +enum rt_encoder_type { - SINGLE_PHASE_ENCODER = 0x01, /* single phase encoder */ + UNKNOWN_ENCODER_TYPE = 0x00, /* Unknown encoder type */ + SINGLE_PHASE_ENCODER, /* single phase encoder */ AB_PHASE_ENCODER /* two phase encoder */ -} rt_encoder_type_t; +}; struct rt_encoder_device; @@ -43,20 +41,14 @@ struct rt_encoder_ops rt_err_t (*control)(struct rt_encoder_device *encoder, rt_uint32_t cmd, void *args); }; -/* Encoder feature information */ -struct rt_encoder_info -{ - rt_encoder_type_t type; /* the type of encoder */ -}; - -typedef struct rt_encoder_device +struct rt_encoder_device { struct rt_device parent; const struct rt_encoder_ops *ops; - const struct rt_encoder_info *info; -} rt_encoder_t; + enum rt_encoder_type type; +}; -rt_err_t rt_device_encoder_register(rt_encoder_t *encoder, const char *name, void *user_data); +rt_err_t rt_device_encoder_register(struct rt_encoder_device *encoder, const char *name, void *user_data); #ifdef __cplusplus } |
