RflySimSDK v3.05
RflySimSDK说明文档
载入中...
搜索中...
未找到
vrpn_Analog_5dtUSB类 参考

5th Dimension Technologies (5dt) "Ultra" USB data glove driver 更多...

#include <vrpn_Analog_5dtUSB.h>

+ 类 vrpn_Analog_5dtUSB 继承关系图:
+ vrpn_Analog_5dtUSB 的协作图:

Public 成员函数

virtual ~vrpn_Analog_5dtUSB ()
 Destructor
 
virtual void mainloop ()
 Standard VRPN mainloop method.
 
std::string get_description () const
 
bool isLeftHand () const
 Accessor to know if this is a left hand glove.
 
bool isRightHand () const
 Accessor to know if this is a right hand glove.
 
- Public 成员函数 继承自 vrpn_Analog
 vrpn_Analog (const char *name, vrpn_Connection *c=NULL)
 
void print (void)
 
vrpn_int32 getNumChannels (void) const
 
- Public 成员函数 继承自 vrpn_BaseClass
 vrpn_BaseClass (const char *name, vrpn_Connection *c=NULL)
 
- Public 成员函数 继承自 vrpn_BaseClassUnique
vrpn_ConnectionconnectionPtr ()
 Returns a pointer to the connection this object is using
 

Protected 成员函数

 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
 
- Protected 成员函数 继承自 vrpn_Analog
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)
 
- Protected 成员函数 继承自 vrpn_BaseClass
virtual int init (void)
 
virtual int register_senders (void)
 
- Protected 成员函数 继承自 vrpn_BaseClassUnique
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)
 
- Protected 成员函数 继承自 vrpn_HidInterface
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
 

Protected 属性

struct timeval _timestamp
 Timestamp updated during mainloop()
 
double _rawVals [16]
 
bool _isLeftHand
 Flag for left handedness.
 
bool _wasConnected
 
- Protected 属性 继承自 vrpn_Analog
vrpn_float64 channel [vrpn_CHANNEL_MAX]
 
vrpn_float64 last [vrpn_CHANNEL_MAX]
 
vrpn_int32 num_channel
 
struct timeval timestamp
 
vrpn_int32 channel_m_id
 
int status
 
- Protected 属性 继承自 vrpn_BaseClassUnique
vrpn_Connectiond_connection
 Connection that this object talks to
 
char * d_servicename
 
vrpn_int32 d_sender_id
 part
 
vrpn_int32 d_text_message_id
 ID for text messages
 
vrpn_int32 d_ping_message_id
 Ask the server if they are there
 
vrpn_int32 d_pong_message_id
 Server telling that it is there
 
- Protected 属性 继承自 vrpn_HidInterface
vrpn_HidAcceptorm_acceptor
 This is the HidAcceptor we use when reconnecting.
 
bool m_working
 
vrpn_uint16 m_vendor
 
vrpn_uint16 m_product
 
int m_interface
 
vrpn_uint16 m_vendor_sought
 What vendor we want
 
vrpn_uint16 m_product_sought
 What product we want
 

额外继承的成员函数

- Public 属性 继承自 vrpn_BaseClassUnique
bool shutup
 
- 静态 Protected 成员函数 继承自 vrpn_BaseClassUnique
static int encode_text_message_to_buffer (char *buf, vrpn_TEXT_SEVERITY severity, vrpn_uint32 level, const char *msg)
 
static int decode_text_message_from_buffer (char *msg, vrpn_TEXT_SEVERITY *severity, vrpn_uint32 *level, const char *buf)
 Decodes the body of the text message from a buffer from the connection
 

详细描述

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.

构造及析构函数说明

◆ ~vrpn_Analog_5dtUSB()

virtual ~vrpn_Analog_5dtUSB ( )
virtual

Destructor

◆ vrpn_Analog_5dtUSB()

vrpn_Analog_5dtUSB ( vrpn_HidAcceptor * filter,
int num_sensors,
bool isLeftHand,
const char * name,
vrpn_Connection * c = 0 )
protected

Protected constructor: use a subclass to specify the glove variant to use.

成员函数说明

◆ get_description()

std::string get_description ( ) const

Returns a string description of the device we've connected to. Used internally, but also possibly useful externally.

◆ isLeftHand()

bool isLeftHand ( ) const
inline

Accessor to know if this is a left hand glove.

◆ isRightHand()

bool isRightHand ( ) const
inline

Accessor to know if this is a right hand glove.

◆ mainloop()

virtual void mainloop ( )
virtual

Standard VRPN mainloop method.

实现了 vrpn_BaseClass.

◆ on_data_received()

void on_data_received ( size_t bytes,
vrpn_uint8 * buffer )
protectedvirtual

Extracts the sensor values from each report.

实现了 vrpn_HidInterface.

◆ report()

void report ( vrpn_uint32 class_of_service = vrpn_CONNECTION_LOW_LATENCY)
protected

Send report whether or not changed

◆ report_changes()

void report_changes ( vrpn_uint32 class_of_service = vrpn_CONNECTION_LOW_LATENCY)
protected

Send report iff changed

类成员变量说明

◆ _isLeftHand

bool _isLeftHand
protected

Flag for left handedness.

◆ _rawVals

double _rawVals[16]
protected

The raw values extracted from the report: which ones we use to set analog channels varies based on the kind of device this is.

◆ _timestamp

struct timeval _timestamp
protected

Timestamp updated during mainloop()

◆ _wasConnected

bool _wasConnected
protected

Flag indicating whether we were connected last time through the mainloop. Used to send a "normal"-severity message when we connect with info on the device.


该类的文档由以下文件生成: