#include #include #include #include #include #include #include #include #include #include #define MAX_TRIGGER 0x7f80 #define HALF_TRACKPAD 0x7fff // event types enum {BUTTON_EVENT_NONE, BUTTON_EVENT_PRESSED, BUTTON_EVENT_RELEASED, BUTTON_EVENT_AXIS}; // axis IDs enum {AXIS_NONE, TRIGGER_AXIS1, TRACKPAD_AXIS1, TRACKPAD_AXIS2 }; // buton IDs enum {BUTTON_AXIS, BUTTON_TRACKPAD_TOUCH, BUTTON_TRACKPAD_PRESS, BUTTON_SYSTEM, BUTTON_GRIP, BUTTON_MENU, BUTTON_TRIGGER=24}; enum {BUTTON_GRIP_WIRED=2, BUTTON_MENU_WIRED=12, BUTTON_SYSTEM_WIRED}; enum {BUTTON_TRACKER=3, BUTTON_TRACKER_WIRED=13}; //haptic bool haptic = false; unsigned int hapticFrequency; int main(int argc, char** argv); geometry_msgs::PoseStamped createPoseMsg(SurvivePose pose); vive_events::EventStamped handleButtonEvent(const SurviveSimpleButtonEvent* buttonEvent, bool isWired, bool isTracker); ViveEvents::EventType getTrackerEventType(int lastTrackpadAxis1Val, int lastTrackpadAxis2Val); void surviveFeedbackCB(const vive_events::EventStamped::ConstPtr& msg_ptr);