RflySimSDK v3.05
RflySimSDK说明文档
载入中...
搜索中...
未找到
vrpn_Tracker_ThalmicLabsMyo.h
1// vrpn_Tracker_ThalmicLabsMyo.h
2//
3// Thalmic Labs Myo's (https://www.thalmic.com/en/myo/) VRPN server
4//
5// (10/12/2014) developed by Florian Nouviale
6
7#ifndef __TRACKER_THALMICLABSMYO_H
8#define __TRACKER_THALMICLABSMYO_H
9
10#include "vrpn_Configure.h" // for VRPN_API
11
12#ifdef VRPN_INCLUDE_THALMICLABSMYO
13
14#include "vrpn_Tracker.h" // for vrpn_Analog
15#include "vrpn_Analog.h" // for vrpn_Analog
16#include "vrpn_Button.h" // for vrpn_Button_Filterl
17
18#include <myo/myo.hpp>
19
20// --------------------------------------------------------------------------
21// VRPN class:
22
23class VRPN_API vrpn_Tracker_ThalmicLabsMyo : public vrpn_Tracker, public vrpn_Analog, public vrpn_Button_Filter, public myo::DeviceListener
24{
25
26public:
27
28 enum ARMSIDE
29 {
30 ANY = 0,
31 LEFT = 1,
32 RIGHT = 2
33 };
34
35 vrpn_Tracker_ThalmicLabsMyo(const char *name,
37 bool useLock,
38 ARMSIDE armSide);
39
40 ~vrpn_Tracker_ThalmicLabsMyo();
41
42 virtual void mainloop();
43
44
45 virtual void onPair(myo::Myo* myo, uint64_t timestamp, myo::FirmwareVersion firmwareVersion);
46
47 virtual void onPose(myo::Myo* myo, uint64_t timestamp, myo::Pose pose);
48
49 virtual void onConnect(myo::Myo* myo, uint64_t timestamp, myo::FirmwareVersion firmwareVersion);
50
51 virtual void onDisconnect(myo::Myo* myo, uint64_t timestamp);
52
53 virtual void onArmSync(myo::Myo* myo, uint64_t timestamp, myo::Arm arm, myo::XDirection xDirection);
54
55 virtual void onArmUnsync(myo::Myo* myo, uint64_t timestamp);
56
57 virtual void onUnlock(myo::Myo* myo, uint64_t timestamp);
58
59 virtual void onLock(myo::Myo* myo, uint64_t timestamp);
60
62 virtual void onOrientationData(myo::Myo* myo, uint64_t timestamp, const myo::Quaternion<float>& rotation);
63
65 virtual void onAccelerometerData(myo::Myo* myo, uint64_t timestamp, const myo::Vector3<float>& accel);
66
68 virtual void onGyroscopeData(myo::Myo* myo, uint64_t timestamp, const myo::Vector3<float>& gyro);
69
70private:
71
72 struct timeval _timestamp;
73
74 void _report_lock();
75
76 enum {
77 ANALOG_ROTATION_X = 0,
78 ANALOG_ROTATION_Y = 1,
79 ANALOG_ROTATION_Z = 2,
80 ANALOG_ACCEL_X = 3,
81 ANALOG_ACCEL_Y = 4,
82 ANALOG_ACCEL_Z = 5,
83 ANALOG_GYRO_X = 6,
84 ANALOG_GYRO_Y = 7,
85 ANALOG_GYRO_Z = 8
86 };
87
88 myo::Hub* hub;
89
90 myo::Myo* _myo;
91
92 ARMSIDE _armSide;
93
94 bool _locked;
95
96 bool _analogChanged;
97};
98
99#endif //VRPN_INCLUDE_THALMICLABSMYO
100#endif //__TRACKER_THALMICLABSMYO_H
定义 vrpn_Analog.h:28
virtual void mainloop()=0
定义 vrpn_Button.h:66
Generic connection class not specific to the transport mechanism.
定义 vrpn_Connection.h:562
定义 vrpn_Tracker.h:49