All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Namespaces | Classes | Enumerations | Functions
SurgSim::Device Namespace Reference

Namespaces

 Internal
 
 LabJack
 A collection of checksum functions specifically tailored for the labjackusb driver.
 

Classes

class  BitSetBuffer
 A bit set corresponding to a contiguous memory buffer. More...
 
class  FileDescriptor
 A wrapper for an UNIX-style integer file descriptor. More...
 
class  FileHandle
 A wrapper for an Windows-style HANDLE file descriptor. More...
 
class  ForceScale
 An output device filter that scales forces and/or torques. More...
 
class  IdentityPoseDevice
 A class implementing the identity pose device, which is a pretend device that doesn't move. More...
 
class  InputDeviceHandle
 Access to an input/HID device using the Input API in Linux. More...
 
class  KeyboardDevice
 A class implementing the communication with a keyboard. More...
 
class  KeyboardScaffold
 A class that implements the behavior of KeyboardDevice objects. More...
 
class  LabJackDevice
 A class implementing the communication with a LabJack data acquisition (DAQ) device. More...
 
class  LabJackScaffold
 A class that implements the behavior of LabJackDevice objects. More...
 
class  LabJackThread
 A class implementing the thread context for communicating with LabJack devices. More...
 
class  MouseDevice
 A class implementing the communication with a mouse. More...
 
class  MouseScaffold
 A class that implements the behavior of MouseDevice objects. More...
 
class  MultiAxisDevice
 A class implementing the communication with a multi-axis controller input device, for example a 3DConnexion SpaceNavigator. More...
 
class  Novint7DofDevice
 A class implementing the communication with a Novint Falcon with the Open Surgery Grip 7-DoF device. More...
 
class  NovintCommonDevice
 A class implementing the communication with a generic Novint Falcon device. More...
 
class  NovintDevice
 A class implementing the communication with a Novint Falcon device. More...
 
class  NovintScaffold
 A class that manages Novint Falcon devices. More...
 
class  OsgKeyboardHandler
 
class  OsgMouseHandler
 
class  PhantomDevice
 A class implementing the communication with a SensAble/Geomagic PHANTOM device. More...
 
class  PhantomScaffold
 A class that manages Sensable PHANTOM devices. More...
 
class  PoseIntegrator
 A device filter that integrates the pose, turning a relative device into an absolute one. More...
 
class  PoseTransform
 A device filter that transforms the input pose. More...
 
class  RawMultiAxisDevice
 A class implementing the communication with a multi-axis controller input device, for example a 3DConnexion SpaceNavigator. More...
 
class  RawMultiAxisScaffold
 A class that implements the behavior of RawMultiAxisDevice objects. More...
 
class  RawMultiAxisThread
 A class implementing the thread context for sampling RawMultiAxis devices. More...
 
class  SixenseDevice
 A class implementing the communication with one Sixense controller, for example one of the two on the Razer Hydra. More...
 
class  SixenseScaffold
 A class that manages Sixense devices, such as the Razer Hydra. More...
 
class  SixenseThread
 A class implementing the thread context for sampling Sixense devices. More...
 
class  SystemInputDeviceHandle
 A wrapper for system-dependent access to an input/HID device. More...
 
class  TrackIRDevice
 A class implementing the communication with Natural Point TrackIR camera. More...
 
class  TrackIRScaffold
 A class that manages Natural Point TRACKIR devices. More...
 
class  TrackIRThread
 A class implementing the thread context for sampling TrackIR devices. More...
 
class  WdkHidDeviceHandle
 Access to an input/HID device using the HID API from the Windows Driver Kit. More...
 

Enumerations

enum  KeyCode {
  NONE = -1, KEY_SPACE = 0x20, KEY_0 = '0', KEY_1 = '1',
  KEY_2 = '2', KEY_3 = '3', KEY_4 = '4', KEY_5 = '5',
  KEY_6 = '6', KEY_7 = '7', KEY_8 = '8', KEY_9 = '9',
  KEY_A = 'a', KEY_B = 'b', KEY_C = 'c', KEY_D = 'd',
  KEY_E = 'e', KEY_F = 'f', KEY_G = 'g', KEY_H = 'h',
  KEY_I = 'i', KEY_J = 'j', KEY_K = 'k', KEY_L = 'l',
  KEY_M = 'm', KEY_N = 'n', KEY_O = 'o', KEY_P = 'p',
  KEY_Q = 'q', KEY_R = 'r', KEY_S = 's', KEY_T = 't',
  KEY_U = 'u', KEY_V = 'v', KEY_W = 'w', KEY_X = 'x',
  KEY_Y = 'y', KEY_Z = 'z', KEY_EXCLAIM = 0x21, KEY_QUOTEDBL = 0x22,
  KEY_HASH = 0x23, KEY_DOLLAR = 0x24, KEY_AMPERSAND = 0x26, KEY_QUOTE = 0x27,
  KEY_LEFTPAREN = 0x28, KEY_RIGHTPAREN = 0x29, KEY_ASTERISK = 0x2A, KEY_PLUS = 0x2B,
  KEY_COMMA = 0x2C, KEY_MINUS = 0x2D, KEY_PERIOD = 0x2E, KEY_SLASH = 0x2F,
  KEY_COLON = 0x3A, KEY_SEMICOLON = 0x3B, KEY_LESS = 0x3C, KEY_EQUALS = 0x3D,
  KEY_GREATER = 0x3E, KEY_QUESTION = 0x3F, KEY_AT = 0x40, KEY_LEFTBRACKET = 0x5B,
  KEY_BACKSLASH = 0x5C, KEY_RIGHTBRACKET = 0x5D, KEY_CARET = 0x5E, KEY_UNDERSCORE = 0x5F,
  KEY_BACKQUOTE = 0x60, KEY_BACKSPACE = 0xFF08, KEY_TAB = 0xFF09, KEY_LINEFEED = 0xFF0A,
  KEY_CLEAR = 0xFF0B, KEY_RETURN = 0xFF0D, KEY_PAUSE = 0xFF13, KEY_SCROLL_LOCK = 0xFF14,
  KEY_SYS_REQ = 0xFF15, KEY_ESCAPE = 0xFF1B, KEY_DELETE = 0xFFFF, KEY_HOME = 0xFF50,
  KEY_LEFT = 0xFF51, KEY_UP = 0xFF52, KEY_RIGHT = 0xFF53, KEY_DOWN = 0xFF54,
  KEY_PRIOR = 0xFF55, KEY_PAGE_UP = 0xFF55, KEY_NEXT = 0xFF56, KEY_PAGE_DOWN = 0xFF56,
  KEY_END = 0xFF57, KEY_BEGIN = 0xFF58, KEY_SELECT = 0xFF60, KEY_PRINT = 0xFF61,
  KEY_EXECUTE = 0xFF62, KEY_INSERT = 0xFF63, KEY_UNDO = 0xFF65, KEY_REDO = 0xFF66,
  KEY_MENU = 0xFF67, KEY_FIND = 0xFF68, KEY_CANCEL = 0xFF69, KEY_HELP = 0xFF6A,
  KEY_BREAK = 0xFF6B, KEY_MODE_SWITCH = 0xFF7E, KEY_SCRIPT_SWITCH = 0xFF7E, KEY_NUM_LOCK = 0xFF7F,
  KEY_KP_SPACE = 0xFF80, KEY_KP_TAB = 0xFF89, KEY_KP_ENTER = 0xFF8D, KEY_KP_F1 = 0xFF91,
  KEY_KP_F2 = 0xFF92, KEY_KP_F3 = 0xFF93, KEY_KP_F4 = 0xFF94, KEY_KP_HOME = 0xFF95,
  KEY_KP_LEFT = 0xFF96, KEY_KP_UP = 0xFF97, KEY_KP_RIGHT = 0xFF98, KEY_KP_DOWN = 0xFF99,
  KEY_KP_PRIOR = 0xFF9A, KEY_KP_PAGE_UP = 0xFF9A, KEY_KP_NEXT = 0xFF9B, KEY_KP_PAGE_DOWN = 0xFF9B,
  KEY_KP_END = 0xFF9C, KEY_KP_BEGIN = 0xFF9D, KEY_KP_INSERT = 0xFF9E, KEY_KP_DELETE = 0xFF9F,
  KEY_KP_EQUAL = 0xFFBD, KEY_KP_MULTIPLY = 0xFFAA, KEY_KP_ADD = 0xFFAB, KEY_KP_SEPARATOR = 0xFFAC,
  KEY_KP_SUBTRACT = 0xFFAD, KEY_KP_DECIMAL = 0xFFAE, KEY_KP_DIVIDE = 0xFFAF, KEY_KP_0 = 0xFFB0,
  KEY_KP_1 = 0xFFB1, KEY_KP_2 = 0xFFB2, KEY_KP_3 = 0xFFB3, KEY_KP_4 = 0xFFB4,
  KEY_KP_5 = 0xFFB5, KEY_KP_6 = 0xFFB6, KEY_KP_7 = 0xFFB7, KEY_KP_8 = 0xFFB8,
  KEY_KP_9 = 0xFFB9, KEY_F1 = 0xFFBE, KEY_F2 = 0xFFBF, KEY_F3 = 0xFFC0,
  KEY_F4 = 0xFFC1, KEY_F5 = 0xFFC2, KEY_F6 = 0xFFC3, KEY_F7 = 0xFFC4,
  KEY_F8 = 0xFFC5, KEY_F9 = 0xFFC6, KEY_F10 = 0xFFC7, KEY_F11 = 0xFFC8,
  KEY_F12 = 0xFFC9, KEY_F13 = 0xFFCA, KEY_F14 = 0xFFCB, KEY_F15 = 0xFFCC,
  KEY_F16 = 0xFFCD, KEY_F17 = 0xFFCE, KEY_F18 = 0xFFCF, KEY_F19 = 0xFFD0,
  KEY_F20 = 0xFFD1, KEY_F21 = 0xFFD2, KEY_F22 = 0xFFD3, KEY_F23 = 0xFFD4,
  KEY_F24 = 0xFFD5, KEY_F25 = 0xFFD6, KEY_F26 = 0xFFD7, KEY_F27 = 0xFFD8,
  KEY_F28 = 0xFFD9, KEY_F29 = 0xFFDA, KEY_F30 = 0xFFDB, KEY_F31 = 0xFFDC,
  KEY_F32 = 0xFFDD, KEY_F33 = 0xFFDE, KEY_F34 = 0xFFDF, KEY_F35 = 0xFFE0,
  KEY_SHIFT_L = 0xFFE1, KEY_SHIFT_R = 0xFFE2, KEY_CONTROL_L = 0xFFE3, KEY_CONTROL_R = 0xFFE4,
  KEY_CAPS_LOCK = 0xFFE5, KEY_SHIFT_LOCK = 0xFFE6, KEY_META_L = 0xFFE7, KEY_META_R = 0xFFE8,
  KEY_ALT_L = 0xFFE9, KEY_ALT_R = 0xFFEA, KEY_SUPER_L = 0xFFEB, KEY_SUPER_R = 0xFFEC,
  KEY_HYPER_L = 0xFFED, KEY_HYPER_R = 0xFFEE
}
 
enum  ModKeyMask {
  MODKEY_NONE = 0, MODKEY_LEFT_SHIFT = 0x0001, MODKEY_RIGHT_SHIFT = 0x0002, MODKEY_LEFT_CTRL = 0x0004,
  MODKEY_RIGHT_CTRL = 0x0008, MODKEY_LEFT_ALT = 0x0010, MODKEY_RIGHT_ALT = 0x0020, MODKEY_LEFT_META = 0x0040,
  MODKEY_RIGHT_META = 0x0080, MODKEY_LEFT_SUPER = 0x0100, MODKEY_RIGHT_SUPER = 0x0200, MODKEY_LEFT_HYPER = 0x0400,
  MODKEY_RIGHT_HYPER = 0x0800, MODKEY_NUM_LOCK = 0x1000, MODKEY_CAPS_LOCK = 0x2000, MODKEY_CTRL = (MODKEY_LEFT_CTRL|MODKEY_RIGHT_CTRL),
  MODKEY_SHIFT = (MODKEY_LEFT_SHIFT|MODKEY_RIGHT_SHIFT), MODKEY_ALT = (MODKEY_LEFT_ALT|MODKEY_RIGHT_ALT), MODKEY_META = (MODKEY_LEFT_META|MODKEY_RIGHT_META), MODKEY_SUPER = (MODKEY_LEFT_SUPER|MODKEY_RIGHT_SUPER),
  MODKEY_HYPER = (MODKEY_LEFT_HYPER|MODKEY_RIGHT_HYPER), MODKEY_CAPS_SHIFT_L = (MODKEY_CAPS_LOCK|MODKEY_LEFT_SHIFT), MODKEY_CAPS_SHIFT_R = (MODKEY_CAPS_LOCK|MODKEY_RIGHT_SHIFT), MODKEY_CAPS_CONTROL_L = (MODKEY_CAPS_LOCK|MODKEY_LEFT_CTRL),
  MODKEY_CAPS_CONTROL_R = (MODKEY_CAPS_LOCK|MODKEY_RIGHT_CTRL), MODKEY_CAPS_ALT_L = (MODKEY_CAPS_LOCK|MODKEY_LEFT_ALT), MODKEY_CAPS_ALT_R = (MODKEY_CAPS_LOCK|MODKEY_RIGHT_ALT)
}
 
enum  UsagePageConstants { DEV_USAGE_PAGE_GENERIC_DESKTOP = 0x01 }
 
enum  UsageConstants {
  DEV_USAGE_ID_MOUSE = 0x02, DEV_USAGE_ID_JOYSTICK = 0x04, DEV_USAGE_ID_GAME_PAD = 0x05, DEV_USAGE_ID_KEYBOARD = 0x06,
  DEV_USAGE_ID_KEYPAD = 0x07, DEV_USAGE_ID_MULTI_AXIS_CONTROLLER = 0x08
}
 

Functions

std::unique_ptr
< SystemInputDeviceHandle
createInputDeviceHandle (const std::string &path, std::shared_ptr< SurgSim::Framework::Logger > logger)
 Opens the given path and creates an access wrapper for the device. More...
 
std::vector< std::string > enumerateInputDevicePaths (SurgSim::Framework::Logger *logger)
 Enumerates input devices. More...
 

Enumeration Type Documentation

Enumerator
NONE 
KEY_SPACE 
KEY_0 
KEY_1 
KEY_2 
KEY_3 
KEY_4 
KEY_5 
KEY_6 
KEY_7 
KEY_8 
KEY_9 
KEY_A 
KEY_B 
KEY_C 
KEY_D 
KEY_E 
KEY_F 
KEY_G 
KEY_H 
KEY_I 
KEY_J 
KEY_K 
KEY_L 
KEY_M 
KEY_N 
KEY_O 
KEY_P 
KEY_Q 
KEY_R 
KEY_S 
KEY_T 
KEY_U 
KEY_V 
KEY_W 
KEY_X 
KEY_Y 
KEY_Z 
KEY_EXCLAIM 
KEY_QUOTEDBL 
KEY_HASH 
KEY_DOLLAR 
KEY_AMPERSAND 
KEY_QUOTE 
KEY_LEFTPAREN 
KEY_RIGHTPAREN 
KEY_ASTERISK 
KEY_PLUS 
KEY_COMMA 
KEY_MINUS 
KEY_PERIOD 
KEY_SLASH 
KEY_COLON 
KEY_SEMICOLON 
KEY_LESS 
KEY_EQUALS 
KEY_GREATER 
KEY_QUESTION 
KEY_AT 
KEY_LEFTBRACKET 
KEY_BACKSLASH 
KEY_RIGHTBRACKET 
KEY_CARET 
KEY_UNDERSCORE 
KEY_BACKQUOTE 
KEY_BACKSPACE 
KEY_TAB 
KEY_LINEFEED 
KEY_CLEAR 
KEY_RETURN 
KEY_PAUSE 
KEY_SCROLL_LOCK 
KEY_SYS_REQ 
KEY_ESCAPE 
KEY_DELETE 
KEY_HOME 
KEY_LEFT 
KEY_UP 
KEY_RIGHT 
KEY_DOWN 
KEY_PRIOR 
KEY_PAGE_UP 
KEY_NEXT 
KEY_PAGE_DOWN 
KEY_END 
KEY_BEGIN 
KEY_SELECT 
KEY_PRINT 
KEY_EXECUTE 
KEY_INSERT 
KEY_UNDO 
KEY_REDO 
KEY_MENU 
KEY_FIND 
KEY_CANCEL 
KEY_HELP 
KEY_BREAK 
KEY_MODE_SWITCH 
KEY_SCRIPT_SWITCH 
KEY_NUM_LOCK 
KEY_KP_SPACE 
KEY_KP_TAB 
KEY_KP_ENTER 
KEY_KP_F1 
KEY_KP_F2 
KEY_KP_F3 
KEY_KP_F4 
KEY_KP_HOME 
KEY_KP_LEFT 
KEY_KP_UP 
KEY_KP_RIGHT 
KEY_KP_DOWN 
KEY_KP_PRIOR 
KEY_KP_PAGE_UP 
KEY_KP_NEXT 
KEY_KP_PAGE_DOWN 
KEY_KP_END 
KEY_KP_BEGIN 
KEY_KP_INSERT 
KEY_KP_DELETE 
KEY_KP_EQUAL 
KEY_KP_MULTIPLY 
KEY_KP_ADD 
KEY_KP_SEPARATOR 
KEY_KP_SUBTRACT 
KEY_KP_DECIMAL 
KEY_KP_DIVIDE 
KEY_KP_0 
KEY_KP_1 
KEY_KP_2 
KEY_KP_3 
KEY_KP_4 
KEY_KP_5 
KEY_KP_6 
KEY_KP_7 
KEY_KP_8 
KEY_KP_9 
KEY_F1 
KEY_F2 
KEY_F3 
KEY_F4 
KEY_F5 
KEY_F6 
KEY_F7 
KEY_F8 
KEY_F9 
KEY_F10 
KEY_F11 
KEY_F12 
KEY_F13 
KEY_F14 
KEY_F15 
KEY_F16 
KEY_F17 
KEY_F18 
KEY_F19 
KEY_F20 
KEY_F21 
KEY_F22 
KEY_F23 
KEY_F24 
KEY_F25 
KEY_F26 
KEY_F27 
KEY_F28 
KEY_F29 
KEY_F30 
KEY_F31 
KEY_F32 
KEY_F33 
KEY_F34 
KEY_F35 
KEY_SHIFT_L 
KEY_SHIFT_R 
KEY_CONTROL_L 
KEY_CONTROL_R 
KEY_CAPS_LOCK 
KEY_SHIFT_LOCK 
KEY_META_L 
KEY_META_R 
KEY_ALT_L 
KEY_ALT_R 
KEY_SUPER_L 
KEY_SUPER_R 
KEY_HYPER_L 
KEY_HYPER_R 
Enumerator
MODKEY_NONE 
MODKEY_LEFT_SHIFT 
MODKEY_RIGHT_SHIFT 
MODKEY_LEFT_CTRL 
MODKEY_RIGHT_CTRL 
MODKEY_LEFT_ALT 
MODKEY_RIGHT_ALT 
MODKEY_LEFT_META 
MODKEY_RIGHT_META 
MODKEY_LEFT_SUPER 
MODKEY_RIGHT_SUPER 
MODKEY_LEFT_HYPER 
MODKEY_RIGHT_HYPER 
MODKEY_NUM_LOCK 
MODKEY_CAPS_LOCK 
MODKEY_CTRL 
MODKEY_SHIFT 
MODKEY_ALT 
MODKEY_META 
MODKEY_SUPER 
MODKEY_HYPER 
MODKEY_CAPS_SHIFT_L 
MODKEY_CAPS_SHIFT_R 
MODKEY_CAPS_CONTROL_L 
MODKEY_CAPS_CONTROL_R 
MODKEY_CAPS_ALT_L 
MODKEY_CAPS_ALT_R 
Enumerator
DEV_USAGE_ID_MOUSE 
DEV_USAGE_ID_JOYSTICK 
DEV_USAGE_ID_GAME_PAD 
DEV_USAGE_ID_KEYBOARD 
DEV_USAGE_ID_KEYPAD 
DEV_USAGE_ID_MULTI_AXIS_CONTROLLER 
Enumerator
DEV_USAGE_PAGE_GENERIC_DESKTOP 

Function Documentation

std::unique_ptr< SystemInputDeviceHandle > SurgSim::Device::createInputDeviceHandle ( const std::string &  path,
std::shared_ptr< SurgSim::Framework::Logger logger 
)

Opens the given path and creates an access wrapper for the device.

Parameters
pathFull pathname for the device.
loggerThe logger to be used by the device.
Returns
The created device object, or an empty unique_ptr on failure.
std::vector< std::string > SurgSim::Device::enumerateInputDevicePaths ( SurgSim::Framework::Logger logger)

Enumerates input devices.

Parameters
loggerThe logger to be used during enumeration.
Returns
A list of device paths.