summaryrefslogtreecommitdiff
path: root/components/drivers/include
diff options
context:
space:
mode:
authortangweikang <[email protected]>2019-08-11 15:34:51 +0800
committertangweikang <[email protected]>2019-08-11 16:15:43 +0800
commite5dc60e3cfc5551c18308dd4d2dad1069c6e5f2f (patch)
tree6dc6c2c36cadefaca4d8c5fedb728a035654dca6 /components/drivers/include
parentcc565da5a178d598d35cc9b7d4a1a36be5fb17f5 (diff)
[components][drivers] update encoder driven framework
Diffstat (limited to 'components/drivers/include')
-rw-r--r--components/drivers/include/drivers/encoder.h32
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
}