Source code for src.pyOpenHaptics.hd_define

from ctypes import (
    Structure,
    c_bool,
    c_char,
    c_char_p,
    c_double,
    c_float,
    c_int,
    c_long,
    c_uint,
    c_ulong,
)

# Defining base HD data types
HDint = c_int
HDuint = c_uint
HDboolean = c_bool
HDulong = c_ulong
HDfloat = c_float
HDdouble = c_double
HDlong = c_long
HDchar = c_char
HDerror = c_uint
HDenum = c_uint
HDstring = c_char_p
HHD = c_uint
HDCallbackCode = c_uint


[docs] class HDErrorInfo(Structure): _fields_ = [("errorCode", HDerror), ("internalErrorCode", c_int), ("hHD", HHD)]
# Callback HD_CALLBACK_DONE = 0 HD_CALLBACK_CONTINUE = 1 # Boolean HD_TRUE = 1 HD_FALSE = 0 # Version information HD_VERSION_MAJOR_NUMBER = 3 HD_VERSION_MINOR_NUMBER = 30 HD_VERSION_BUILD_NUMBER = 0 ############################################ ############## ERROR CODES ################# ############################################ HD_SUCCESS = 0x000 # Function errors HD_INVALID_ENUM = 0x0100 HD_INVALID_VALUE = 0x0101 HD_INVALID_OPERATION = 0x0103 HD_BAD_HANDLE = 0x0104 # Force errors HD_WARM_MOTORS = 0x0200 HD_EXCEED_MAX_FORCE = 0x0201 HD_EXCEEDED_MAX_FORCE_IMPULSE = 0x0202 HD_EXCEEDED_MAX_VELOCITY = 0x0203 HD_FORCE_ERROR = 0x0204 # Device errors HD_DEVICE_FAULT = 0x0300 HD_DEVICE_ALREADY_INITIATED = 0x0301 HD_COMM_ERROR = 0x0302 HD_COMM_CONFIG_ERROR = 0x0303 HD_TIMER_ERROR = 0x0304 # Haptic rendering context HD_ILLEGAL_BEGIN = 0x0400 HD_ILLEGAL_END = 0x0401 HD_FRAME_ERROR = 0x0402 # Scheduler errors HD_INVALID_PRIORITY = 0x0500 HD_SCHEDULER_FULL = 0x0501 # Licensing errors HD_INVALID_LICENSE = 0x0600 ############################################ ############# GET PARAMETERS ############### ############################################ # Raw values HD_CURRENT_BUTTONS = 0x2000 HD_CURRENT_SAFETY_SWITCH = 0x2001 HD_CURRENT_INKWELL_SWITCH = 0x2002 HD_CURRENT_ENCODER_VALUES = 0x2010 HD_CURRENT_PINCH_VALUE = 0x2011 HD_LAST_PINCH_VALUE = 0x2012 # Cartesian space values HD_CURRENT_POSITION = 0x2050 HD_CURRENT_VELOCITY = 0x2051 HD_CURRENT_TRANSFORM = 0x2052 HD_CURRENT_ANGULAR_VELOCITY = 0x2053 HD_CURRENT_JACOBIAN = 0x2054 # Joint space values HD_CURRENT_JOINT_ANGLES = 0x2100 HD_CURRENT_GIMBAL_ANGLES = 0x2150 HD_LAST_BUTTONS = 0x2200 HD_LAST_SAFETY_SWITCH = 0x2201 HD_LAST_INKWELL_SWITCH = 0x2202 HD_LAST_ENCODER_VALUES = 0x2210 HD_LAST_POSITION = 0x2250 HD_LAST_VELOCITY = 0x2251 HD_LAST_TRANSFORM = 0x2252 HD_LAST_ANGULAR_VELOCITY = 0x2253 HD_LAST_JACOBIAN = 0x2254 HD_LAST_JOINT_ANGLES = 0x2300 HD_LAST_GIMBAL_ANGLES = 0x2350 # Identification HD_VERSION = 0x2500 HD_DEVICE_MODEL_TYPE = 0x2501 HD_DEVICE_DRIVER_VERSION = 0x2502 HD_DEVICE_VENDOR = 0x2503 HD_DEVICE_SERIAL_NUMBER = 0x2504 HD_DEVICE_FIRMWARE_VERSION = 0x2505 # Device hardware properties HD_MAX_WORKSPACE_DIMENSIONS = 0x2550 HD_USABLE_WORKSPACE_DIMENSIONS = 0x2551 HD_TABLETOP_OFFSET = 0x2552 HD_INPUT_DOF = 0x2553 HD_OUTPUT_DOF = 0x2554 HD_CALIBRATION_STYLE = 0x2555 # Device forces and measurements HD_UPDATE_RATE = 0x2600 HD_INSTANTANEOUS_UPDATE_RATE = 0x2601 HD_NOMINAL_MAX_STIFFNESS = 0x2602 HD_NOMINAL_MAX_DAMPING = 0x2609 HD_NOMINAL_MAX_FORCE = 0x2603 HD_NOMINAL_MAX_CONTINUOUS_FORCE = 0x2604 HD_MOTOR_TEMPERATURE = 0x2605 HD_SOFTWARE_VELOCITY_LIMIT = 0x2606 HD_SOFTWARE_FORCE_IMPULSE_LIMIT = 0x2607 HD_FORCE_RAMPING_RATE = 0x2608 HD_NOMINAL_MAX_TORQUE_STIFFNESS = 0x2620 HD_NOMINAL_MAX_TORQUE_DAMPING = 0x2621 HD_NOMINAL_MAX_TORQUE_FORCE = 0x2622 HD_NOMINAL_MAX_TORQUE_CONTINUOUS_FORCE = 0x2623 # Cartesian space values HD_CURRENT_FORCE = 0x2700 HD_CURRENT_TORQUE = 0x2701 HD_JOINT_ANGLE_REFERENCES = 0x2702 # Joint space values HD_CURRENT_JOINT_TORQUE = 0x2703 HD_CURRENT_GIMBAL_TORQUE = 0x2704 # Motor space values HD_LAST_FORCE = 0x2800 HD_LAST_TORQUE = 0x2801 HD_LAST_JOINT_TORQUE = 0x2802 HD_LAST_GIMBAL_TORQUE = 0x2803 # LED status light HD_USER_STATUS_LIGHT = 0x2900 ############################################ ############# SET PARAMETERS ############### ############################################ # Enable/Disable capabilities HD_FORCE_OUTPUT = 0x4000 HD_MAX_FORCE_CLAMPING = 0x4001 HD_FORCE_RAMPING = 0x4002 HD_SOFTWARE_FORCE_LIMIT = 0x4003 HD_ONE_FRAME_LIMIT = 0x4004 ############################################ ############## MISCELLANEOUS ############### ############################################ # Scheduler priority ranges HD_MAX_SCHEDULER_PRIORITY = (1 << 16) - 1 HD_MIN_SCHEDULER_PRIORITY = 0 HD_DEFAULT_SCHEDULER_PRIORITY = ( HD_MAX_SCHEDULER_PRIORITY + HD_MIN_SCHEDULER_PRIORITY ) / 2 # Calibration return values HD_CALIBRATION_OK = 0x5000 HD_CALIBRATION_NEEDS_UPDATE = 0x5001 HD_CALIBRATION_NEEDS_MANUAL_INPUT = 0x5002 # Calibration styles HD_CALIBRATION_ENCODER_RESET = 1 << 0 HD_CALIBRATION_AUTO = 1 << 1 HD_CALIBRATION_INKWELL = 1 << 2 # Button Masks HD_DEVICE_BUTTON_1 = 1 << 0 HD_DEVICE_BUTTON_2 = 1 << 1 HD_DEVICE_BUTTON_3 = 1 << 2 HD_DEVICE_BUTTON_4 = 1 << 3 # Null device handle HD_INVALID_HANDLE = 0xFFFFFFFF # Used by device initialization HD_DEFAULT_DEVICE = None # LED status light states LED_MASK = 0x07 LED_STATUS_FAST_GRNYEL = 0x00 LED_STATUS_SLOW_YEL = 0x01 LED_STATUS_SLOW_GRN = 0x02 LED_STATUS_FAST_GRN = 0x03 LED_STATUS_SOLID_GRNYEL = 0x04 LED_STATUS_SOLID_YEL = 0x05 LED_STATUS_SOLID_GRN = 0x06 LED_STATUS_FAST_YEL = 0x07