40 enum contactglove_type type;
44 uint8_t last_sent_ping_nonce;
54enum contactglove_device_inputs
56 CONTACTGLOVE_DEVICE_INPUT_HT_UNOBSTRUCTED = 0,
57 CONTACTGLOVE_DEVICE_INPUT_A_CLICK,
58 CONTACTGLOVE_DEVICE_INPUT_B_CLICK,
59 CONTACTGLOVE_DEVICE_INPUT_X_CLICK,
60 CONTACTGLOVE_DEVICE_INPUT_Y_CLICK,
61 CONTACTGLOVE_DEVICE_INPUT_SYSTEM_CLICK,
62 CONTACTGLOVE_DEVICE_INPUT_PAIRING_CLICK,
63 CONTACTGLOVE_DEVICE_INPUT_TRIGGER_VALUE,
64 CONTACTGLOVE_DEVICE_INPUT_TRIGGER_CLICK,
65 CONTACTGLOVE_DEVICE_INPUT_SQUEEZE_VALUE,
66 CONTACTGLOVE_DEVICE_INPUT_THUMBSTICK,
67 CONTACTGLOVE_DEVICE_INPUT_THUMBSTICK_CLICK,
68 CONTACTGLOVE_DEVICE_INPUT_GRIP_POSE,
69 CONTACTGLOVE_DEVICE_INPUT_AIM_POSE,
70 CONTACTGLOVE_DEVICE_INPUT_COUNT,
87 uint8_t last_received_ping_nonce;
89 uint16_t glove_to_dongle_ms;
94 bool magnetra2_connected;
101 bool module_state_valid[CONTACTGLOVE_MODULE_MAX];
109 uint16_t raw_flex_adc_values[CONTACTGLOVE2_SENSOR_COUNT];
119 enum contactglove_device_role role;
123 {XRT_INPUT_SIMPLE_SELECT_CLICK, XRT_INPUT_MAGNETRA2_TRIGGER_VALUE},
124 {XRT_INPUT_SIMPLE_MENU_CLICK, XRT_INPUT_MAGNETRA2_B_CLICK},
125 {XRT_INPUT_SIMPLE_GRIP_POSE, XRT_INPUT_MAGNETRA2_GRIP_POSE},
126 {XRT_INPUT_SIMPLE_AIM_POSE, XRT_INPUT_MAGNETRA2_AIM_POSE},
130 {XRT_OUTPUT_NAME_SIMPLE_VIBRATION, XRT_OUTPUT_NAME_CONTACTGLOVE2_HAPTIC},
134 {XRT_INPUT_MAGNETRA2_SQUEEZE_VALUE, XRT_INPUT_MAGNETRA2_SQUEEZE_VALUE},
135 {XRT_INPUT_MAGNETRA2_GRIP_POSE, XRT_INPUT_MAGNETRA2_GRIP_POSE},
136 {XRT_INPUT_MAGNETRA2_AIM_POSE, XRT_INPUT_MAGNETRA2_AIM_POSE},
140 {XRT_OUTPUT_NAME_CONTACTGLOVE2_HAPTIC, XRT_OUTPUT_NAME_CONTACTGLOVE2_HAPTIC},
144 {XRT_INPUT_TOUCH_X_CLICK, XRT_INPUT_MAGNETRA2_A_CLICK},
145 {XRT_INPUT_TOUCH_X_TOUCH, XRT_INPUT_MAGNETRA2_X_CLICK},
146 {XRT_INPUT_TOUCH_Y_CLICK, XRT_INPUT_MAGNETRA2_B_CLICK},
147 {XRT_INPUT_TOUCH_Y_TOUCH, XRT_INPUT_MAGNETRA2_Y_CLICK},
148 {XRT_INPUT_TOUCH_MENU_CLICK, XRT_INPUT_MAGNETRA2_SYSTEM_CLICK},
149 {XRT_INPUT_TOUCH_A_CLICK, XRT_INPUT_MAGNETRA2_A_CLICK},
150 {XRT_INPUT_TOUCH_A_TOUCH, XRT_INPUT_MAGNETRA2_X_CLICK},
151 {XRT_INPUT_TOUCH_B_CLICK, XRT_INPUT_MAGNETRA2_B_CLICK},
152 {XRT_INPUT_TOUCH_B_TOUCH, XRT_INPUT_MAGNETRA2_Y_CLICK},
153 {XRT_INPUT_TOUCH_SYSTEM_CLICK, XRT_INPUT_MAGNETRA2_SYSTEM_CLICK},
154 {XRT_INPUT_TOUCH_SQUEEZE_VALUE, XRT_INPUT_MAGNETRA2_SQUEEZE_VALUE},
155 {XRT_INPUT_TOUCH_TRIGGER_VALUE, XRT_INPUT_MAGNETRA2_TRIGGER_VALUE},
156 {XRT_INPUT_TOUCH_THUMBSTICK_CLICK, XRT_INPUT_MAGNETRA2_THUMBSTICK_CLICK},
158 {XRT_INPUT_TOUCH_THUMBSTICK, XRT_INPUT_MAGNETRA2_THUMBSTICK},
159 {XRT_INPUT_TOUCH_THUMBREST_TOUCH, XRT_INPUT_MAGNETRA2_PAIRING_CLICK},
160 {XRT_INPUT_TOUCH_GRIP_POSE, XRT_INPUT_MAGNETRA2_GRIP_POSE},
161 {XRT_INPUT_TOUCH_AIM_POSE, XRT_INPUT_MAGNETRA2_AIM_POSE},
165 {XRT_OUTPUT_NAME_TOUCH_HAPTIC, XRT_OUTPUT_NAME_CONTACTGLOVE2_HAPTIC},
170 .
name = XRT_DEVICE_CONTACTGLOVE2,
171 .inputs = contactglove2_inputs_magnetra2,
172 .input_count =
ARRAY_SIZE(contactglove2_inputs_magnetra2),
173 .outputs = contactglove2_outputs_magnetra2,
174 .output_count =
ARRAY_SIZE(contactglove2_outputs_magnetra2),
177 .name = XRT_DEVICE_TOUCH_CONTROLLER,
178 .inputs = touch_inputs_magnetra2,
179 .input_count =
ARRAY_SIZE(touch_inputs_magnetra2),
180 .outputs = touch_outputs_magnetra2,
181 .output_count =
ARRAY_SIZE(touch_outputs_magnetra2),
184 .name = XRT_DEVICE_SIMPLE_CONTROLLER,
185 .inputs = simple_inputs_magnetra2,
186 .input_count =
ARRAY_SIZE(simple_inputs_magnetra2),
187 .outputs = simple_outputs_magnetra2,
188 .output_count =
ARRAY_SIZE(simple_outputs_magnetra2),
u_logging_level
Logging level enum.
Definition u_logging.h:45
int64_t timepoint_ns
Integer timestamp type.
Definition u_time.h:77
xrt_hand
Enumeration for left and right hand.
Definition xrt_defines.h:1478
Small utility for keeping track of the history of an xrt_space_relation, ie.
Wrapper around OS threading native functions.
Definition m_relation_history.cpp:49
A wrapper around a native mutex.
Definition os_threading.h:69
Representing a single serial interface on a device.
Definition os_serial.h:33
All in one helper that handles locking, waiting for change and starting a thread.
Definition os_threading.h:499
A streaming COBS (Consistent Overhead Byte Stuffing) decoder with automatic error recovery.
Definition u_cobs.h:32
Values used for the XRT_HAND_TRACKING_MODEL_FINGERL_CURL model.
Definition u_hand_tracking.h:44
A binding pair, going from a binding point to a device output.
Definition xrt_device.h:228
A binding profile, has lists of binding pairs to goes from device in name to the device it hangs off ...
Definition xrt_device.h:240
enum xrt_device_name name
Device this binding emulates.
Definition xrt_device.h:242
A single HMD or input device.
Definition xrt_device.h:311
A quaternion with single floats.
Definition xrt_defines.h:235
A base class for reference counted objects.
Definition xrt_defines.h:99
Code to decode and encode COBS (Consistent Overhead Byte Stuffing) packet data.
Basic logging functionality.
#define ARRAY_SIZE(a)
Array size helper.
Definition xrt_compiler.h:59
Common defines and enums for XRT.
Header defining an xrt display or controller device.