Monado OpenXR Runtime
Loading...
Searching...
No Matches
contactglove_protocol.h File Reference

Implementation of ContactGlove device driver. More...

Include dependency graph for contactglove_protocol.h:

Go to the source code of this file.

Data Structures

struct  contactglove_version
 
struct  contactglove_to_host_packet_device_version
 
struct  contactglove_raw_battery_info
 
struct  contactglove_to_host_packet_glove_connection
 
struct  contactglove_to_host_packet_ping
 
struct  contactglove_to_host_packet_hand_gyro_data
 
struct  contactglove_to_host_packet_sensor_data
 
struct  contactglove_to_host_packet_magnetra2_input
 
struct  contactglove_to_host_packet_module_state_header
 
struct  contactglove_module_state_magnetra2
 
struct  contactglove_module_state_sleep_manager
 
struct  contactglove_module_state_led_manager
 
struct  contactglove_to_host_packet_debug
 

Macros

#define PING_INTERVAL_NS   (1000LL * U_TIME_1MS_IN_NS)
 
#define PING_TIMEOUT_NS   (800LL * U_TIME_1MS_IN_NS)
 
#define CONTACTGLOVE2_SENSOR_COUNT   16
 
#define SIZE_ASSERT(type, size)    static_assert(sizeof(type) == (size), "Size of " #type " is not " #size " bytes as was expected")
 

Enumerations

enum  contactglove_to_device_packet_mode {
  CONTACTGLOVE_TO_DEVICE_PACKET_MODE_REQUEST_PAIRING = 2 , CONTACTGLOVE_TO_DEVICE_PACKET_MODE_DEBUG = 6 , CONTACTGLOVE_TO_DEVICE_PACKET_MODE_REQUEST_VERSION = 7 , CONTACTGLOVE_TO_DEVICE_PACKET_MODE_PING = 8 ,
  CONTACTGLOVE_TO_DEVICE_PACKET_MODE_SWITCH_CHANNEL = 13 , CONTACTGLOVE_TO_DEVICE_PACKET_MODE_BODY_HAPTICS_LEFT = 15 , CONTACTGLOVE_TO_DEVICE_PACKET_MODE_BODY_HAPTICS_RIGHT = 16 , CONTACTGLOVE_TO_DEVICE_PACKET_MODE_SET_MODULE_STATE = 22 ,
  CONTACTGLOVE_TO_DEVICE_PACKET_MODE_REQUEST_MODULE_STATE = 24
}
 
enum  contactglove_to_host_packet_mode {
  CONTACTGLOVE_TO_HOST_PACKET_MODE_SENSOR_VALUE_LEFT = 4 , CONTACTGLOVE_TO_HOST_PACKET_MODE_SENSOR_VALUE_RIGHT = 5 , CONTACTGLOVE_TO_HOST_PACKET_MODE_DEBUG = 6 , CONTACTGLOVE_TO_HOST_PACKET_MODE_DEVICE_VERSION = 7 ,
  CONTACTGLOVE_TO_HOST_PACKET_MODE_LEFT_PING = 8 , CONTACTGLOVE_TO_HOST_PACKET_MODE_RIGHT_PING = 9 , CONTACTGLOVE_TO_HOST_PACKET_MODE_HAND_GYRO_DATA_LEFT = 10 , CONTACTGLOVE_TO_HOST_PACKET_MODE_HAND_GYRO_DATA_RIGHT = 11 ,
  CONTACTGLOVE_TO_HOST_PACKET_MODE_MODULE_STATE = 14 , CONTACTGLOVE_TO_HOST_PACKET_MODE_HAND_MAGNETRA2_INPUT_LEFT = 21 , CONTACTGLOVE_TO_HOST_PACKET_MODE_HAND_MAGNETRA2_INPUT_RIGHT = 22 , CONTACTGLOVE_TO_HOST_PACKET_MODE_GLOVE_CONNECTION = 30 ,
  CONTACTGLOVE_TO_HOST_PACKET_MODE_ERROR_LOG = 100
}
 
enum  contactglove_sensor_position {
  CONTACTGLOVE_SENSOR_POSITION_FINGER_PINKY_ROOT1 , CONTACTGLOVE_SENSOR_POSITION_FINGER_PINKY_TIP , CONTACTGLOVE_SENSOR_POSITION_FINGER_PINKY_ROOT2 , CONTACTGLOVE_SENSOR_POSITION_FINGER_RING_ROOT1 ,
  CONTACTGLOVE_SENSOR_POSITION_FINGER_RING_TIP , CONTACTGLOVE_SENSOR_POSITION_FINGER_RING_ROOT2 , CONTACTGLOVE_SENSOR_POSITION_FINGER_MIDDLE_ROOT1 , CONTACTGLOVE_SENSOR_POSITION_FINGER_MIDDLE_TIP ,
  CONTACTGLOVE_SENSOR_POSITION_FINGER_MIDDLE_ROOT2 , CONTACTGLOVE_SENSOR_POSITION_FINGER_INDEX_ROOT1 , CONTACTGLOVE_SENSOR_POSITION_FINGER_INDEX_TIP , CONTACTGLOVE_SENSOR_POSITION_FINGER_INDEX_ROOT2 ,
  CONTACTGLOVE_SENSOR_POSITION_FINGER_THUMB_ROOT1 , CONTACTGLOVE_SENSOR_POSITION_FINGER_THUMB_TIP , CONTACTGLOVE_SENSOR_POSITION_FINGER_THUMB_ROOT2 , CONTACTGLOVE_SENSOR_POSITION_FINGER_THUMB_BASE
}
 
enum  contactglove_magnetra2_button_bits {
  MAGNETRA2_BUTTON_BITS_A = (1 << 0) , MAGNETRA2_BUTTON_BITS_B = (1 << 1) , MAGNETRA2_BUTTON_BITS_TRIGGER_CLICK = (1 << 2) , MAGNETRA2_BUTTON_BITS_TRACKPAD_BOTTOM = (1 << 3) ,
  MAGNETRA2_BUTTON_BITS_PAIRING = (1 << 4)
}
 
enum  contactglove_magnetra2_multi_ch_ranges {
  MAGNETRA2_MULTI_CH_RANGE_JOYSTICK_START = 0 , MAGNETRA2_MULTI_CH_RANGE_JOYSTICK_END = 50 , MAGNETRA2_MULTI_CH_RANGE_TRACKPAD_TOP_START = 51 , MAGNETRA2_MULTI_CH_RANGE_TRACKPAD_TOP_END = 150 ,
  MAGNETRA2_MULTI_CH_RANGE_SYSTEM_START = 151 , MAGNETRA2_MULTI_CH_RANGE_SYSTEM_END = 210 , MAGNETRA2_MULTI_CH_RANGE_NONE_START = 211 , MAGNETRA2_MULTI_CH_RANGE_NONE_END = 255
}
 
enum  contactglove_module_kind { CONTACTGLOVE_MODULE_MAGNETRA2 = 1 , CONTACTGLOVE_MODULE_LED_MANAGER = 4 , CONTACTGLOVE_MODULE_SLEEP_MANAGER = 11 , CONTACTGLOVE_MODULE_MAX }
 
enum  contactglove_device_role { CONTACTGLOVE_DEVICE_ROLE_LEFT = 1 , CONTACTGLOVE_DEVICE_ROLE_RIGHT = 2 }
 
enum  contactglove_debug_message_kind {
  CONTACTGLOVE_DEBUG_MESSAGE_TEMPORARY_LOG = 1 , CONTACTGLOVE_DEBUG_MESSAGE_SIZE_UNMATCHED = 2 , CONTACTGLOVE_DEBUG_MESSAGE_WAITING_FOR_PAIRING = 3 , CONTACTGLOVE_DEBUG_MESSAGE_UNKNOWN_MODE = 5 ,
  CONTACTGLOVE_DEBUG_MESSAGE_UNKNOWN_MAC_ADDRESS = 6 , CONTACTGLOVE_DEBUG_MESSAGE_UNKNOWN_DEVICE = 9 , CONTACTGLOVE_DEBUG_MESSAGE_SEND_FAILED = 10 , CONTACTGLOVE_DEBUG_MESSAGE_CRC = 11
}
 

Detailed Description

Implementation of ContactGlove device driver.

Author
Beyley Cardellio ep1cm.nosp@m.1n10.nosp@m.n123@.nosp@m.gmai.nosp@m.l.com