|
| vrpn_Analog_5dtUSB (vrpn_HidAcceptor *filter, int num_sensors, bool isLeftHand, const char *name, vrpn_Connection *c=0) |
| Protected constructor: use a subclass to specify the glove variant to use.
|
|
void | on_data_received (size_t bytes, vrpn_uint8 *buffer) |
| Extracts the sensor values from each report.
|
|
void | report_changes (vrpn_uint32 class_of_service=vrpn_CONNECTION_LOW_LATENCY) |
| Send report iff changed
|
|
void | report (vrpn_uint32 class_of_service=vrpn_CONNECTION_LOW_LATENCY) |
| Send report whether or not changed
|
|
virtual int | register_types (void) |
|
virtual vrpn_int32 | encode_to (char *buf) |
|
virtual void | report_changes (vrpn_uint32 class_of_service=vrpn_CONNECTION_LOW_LATENCY, const struct timeval time=vrpn_ANALOG_NOW) |
|
virtual void | report (vrpn_uint32 class_of_service=vrpn_CONNECTION_LOW_LATENCY, const struct timeval time=vrpn_ANALOG_NOW) |
|
virtual int | init (void) |
|
virtual int | register_senders (void) |
|
int | register_autodeleted_handler (vrpn_int32 type, vrpn_MESSAGEHANDLER handler, void *userdata, vrpn_int32 sender=vrpn_ANY_SENDER) |
|
int | send_text_message (const char *msg, struct timeval timestamp, vrpn_TEXT_SEVERITY type=vrpn_TEXT_NORMAL, vrpn_uint32 level=0) |
| Sends a NULL-terminated text message from the device d_sender_id
|
|
SendTextMessageBoundCall | send_text_message (vrpn_TEXT_SEVERITY type=vrpn_TEXT_NORMAL) |
|
void | server_mainloop (void) |
|
void | client_mainloop (void) |
|
void | send_data (size_t bytes, const vrpn_uint8 *buffer) |
| Call this to send data to the device
|
|
void | send_feature_report (size_t bytes, const vrpn_uint8 *buffer) |
|
int | get_feature_report (size_t bytes, vrpn_uint8 *buffer) |
|
| vrpn_HidInterface (vrpn_HidAcceptor *acceptor, vrpn_uint16 vendor=0, vrpn_uint16 product=0, hid_device *device=NULL) |
|
| vrpn_HidInterface (vrpn_HidAcceptor *acceptor, hid_device *device) |
|
| vrpn_HidInterface (const char *device_path, vrpn_HidAcceptor *acceptor, vrpn_uint16 vendor=0, vrpn_uint16 product=0) |
|
virtual bool | connected () const |
| Returns true iff the last device I/O succeeded
|
|
virtual void | update () |
|
virtual bool | reconnect () |
|
vrpn_uint16 | vendor () const |
|
vrpn_uint16 | product () const |
|
int | interface_number () const |
|
5th Dimension Technologies (5dt) "Ultra" USB data glove driver
This supports connecting to 5dt gloves over USB that present a HID device interface. This includes the 5DT Data Glove 5 Ultra and the 5DT Data Glove 14 Ultra, as well as either of those using the wireless kit. (I, Ryan Pavlik, have only tested this with the 5DT Data Glove 5 Ultras since that's all I have access to, but support based on what I would expect from a 14-sensor glove is included.)
Each sensor's raw values are exposed as an analog channel (5 or 14) between 0.0 and 1.0. Note that there is pretty significant need for calibration since the used range within the entire representable range is pretty small and seemingly device-dependent. Your code will probably have to at least perform some scaling based on establishing a "min" and "max" for each sensor.
For serial 5dt glove access, see the vrpn_5DT16 (for the 16-sensor model) and vrpn_5dt (for the 5-sensor wired or wireless model, in vrpn_Analog_5dt.h) classes.
The inherited method vrpn_Analog::getNumChannels()
This base class does all the work: the inherited classes just create the right filters and input for the base class.