Emakefun Gesture Recognizer 2.0
载入中...
搜索中...
未找到
gesture_recognizer.h
1#ifndef EMAKEFUN_GESTURE_RECOGNIZER_H_
2#define EMAKEFUN_GESTURE_RECOGNIZER_H_
3
4#include <Wire.h>
5#include <stdint.h>
6
7namespace emakefun {
8
9/**
10 * @class GestureRecognizer
11 * @brief 手势识别传感器
12 */
14 public:
15 /**
16 * @brief 手势识别传感器默认I2C地址
17 */
18 static constexpr uint8_t kDefaultI2cAddress = 0x39; /**< 0x39: 默认I2C地址 */
19
20 /**
21 * @enum ErrorCode
22 * @brief 错误码
23 */
24 enum ErrorCode : uint32_t {
25 kOK = 0, /**< 0:成功 */
26 kI2cDataTooLongToFitInTransmitBuffer = 1, /**< 1:I2C数据太长,无法装入传输缓冲区 */
27 kI2cReceivedNackOnTransmitOfAddress = 2, /**< 2:在I2C发送地址时收到NACK */
28 kI2cReceivedNackOnTransmitOfData = 3, /**< 3:在I2C发送数据时收到NACK */
29 kI2cOtherError = 4, /**< 4:其他I2C错误 */
30 kI2cTimeout = 5, /**< 5:I2C通讯超时 */
31 kInvalidParameter = 6, /**< 6:参数错误 */
32 kUnknownError = 7, /**< 7: 未知错误*/
33 };
34 /**
35 * @enum Gesture
36 * @brief 手势类型
37 */
38 enum Gesture : uint8_t {
39 kGestureNone = 0x0, /**< 0x00: 无手势动作*/
40 kGestureRightSwipe = 0x01, /**< 0x01: 右移动作*/
41 kGestureLeftSwipe = 0x02, /**< 0x02: 左移动作*/
42 kGestureBackwardSwipe = 0x03, /**< 0x03: 后移动作*/
43 kGestureForwardSwipe = 0x04, /**< 0x04: 前移动作*/
44 kGestureUpward = 0x05, /**< 0x05: 上拉动作*/
45 kGestureDownward = 0x06, /**< 0x06: 下压动作*/
46 kGestureExited = 0x07, /**< 0x07: 离开感应区*/
47 kGestureHover = 0x08, /**< 0x08: 悬停*/
48 };
49
50 /**
51 * @brief 构造函数
52 * @param [in] wire TwoWire对象,默认为Arduino Wire
53 * @param [in] i2c_address 手势识别传感器I2C地址,默认值为0x39
54 */
55 explicit GestureRecognizer(TwoWire& wire = Wire, const uint8_t i2c_address = kDefaultI2cAddress);
56
57 ErrorCode Initialize();
58
59 /**
60 * @brief 获取识别到的手势
61 * @return 手势类型,参考枚举: @ref GestureRecognizer::Gesture
62 */
64
65 private:
66 GestureRecognizer(const GestureRecognizer&) = delete;
67 GestureRecognizer& operator=(const GestureRecognizer&) = delete;
68
69 TwoWire& wire_ = Wire;
70 const uint8_t i2c_address_ = kDefaultI2cAddress;
71};
72} // namespace emakefun
73
74#endif
手势识别传感器
Definition gesture_recognizer.h:13
Gesture GetGesture()
获取识别到的手势
Definition gesture_recognizer.cpp:18
ErrorCode
错误码
Definition gesture_recognizer.h:24
@ kI2cTimeout
Definition gesture_recognizer.h:30
@ kI2cReceivedNackOnTransmitOfData
Definition gesture_recognizer.h:28
@ kOK
Definition gesture_recognizer.h:25
@ kI2cOtherError
Definition gesture_recognizer.h:29
@ kI2cDataTooLongToFitInTransmitBuffer
Definition gesture_recognizer.h:26
@ kI2cReceivedNackOnTransmitOfAddress
Definition gesture_recognizer.h:27
@ kInvalidParameter
Definition gesture_recognizer.h:31
@ kUnknownError
Definition gesture_recognizer.h:32
static constexpr uint8_t kDefaultI2cAddress
手势识别传感器默认I2C地址
Definition gesture_recognizer.h:18
Gesture
手势类型
Definition gesture_recognizer.h:38
@ kGestureRightSwipe
Definition gesture_recognizer.h:40
@ kGestureHover
Definition gesture_recognizer.h:47
@ kGestureBackwardSwipe
Definition gesture_recognizer.h:42
@ kGestureNone
Definition gesture_recognizer.h:39
@ kGestureLeftSwipe
Definition gesture_recognizer.h:41
@ kGestureExited
Definition gesture_recognizer.h:46
@ kGestureUpward
Definition gesture_recognizer.h:44
@ kGestureDownward
Definition gesture_recognizer.h:45
@ kGestureForwardSwipe
Definition gesture_recognizer.h:43