vrpn 07.35
Virtual Reality Peripheral Network
 
Loading...
Searching...
No Matches
vrpn_GlobalHapticsOrb.h
Go to the documentation of this file.
1#ifndef VRPN_GLOBALHAPTICSORB_H
2#define VRPN_GLOBALHAPTICSORB_H
3
4#include "vrpn_Analog.h" // for vrpn_Serial_Analog
5#include "vrpn_Button.h" // for vrpn_Button_Filter
6#include "vrpn_Configure.h" // for VRPN_API, VRPN_CALLBACK
7#include "vrpn_Connection.h" // for vrpn_CONNECTION_RELIABLE, etc
8#include "vrpn_Dial.h" // for vrpn_Dial
9#include "vrpn_Shared.h" // for timeval
10#include "vrpn_Types.h" // for vrpn_uint32
11
12// Exports buttons 0-25 as 0-25.
13// Exports left pushbutton as 26, right pushbutton as 27.
14// Exports rocker up as 28, rocker down as 29.
15// Exports Thumbwheel both as clamping analog (-1..1) 0 and as dial 0.
16// Exports Trackball both as clamping analogs 1 and 2 and as dials 1 and 2.
17
19 ,public vrpn_Button_Filter
20 ,public vrpn_Dial
21{
22public:
23 vrpn_GlobalHapticsOrb (const char * name, vrpn_Connection * c,
24 const char * port, int baud);
26
27 // Called once through each main loop iteration to handle
28 // updates.
29 virtual void mainloop ();
30
31 protected:
33
34 unsigned d_expected_chars; //< How many characters to expect in the report
35 unsigned char d_buffer[512]; //< Buffer of characters in report
36 unsigned d_bufcount; //< How many characters we have so far
37
38 struct timeval d_timestamp; //< Time of the last report from the device
39
40 virtual void clear_values(void); //< Set all buttons, analogs and encoders back to 0
41 virtual int reset(void); //< Set device back to starting config
42 virtual int get_report(void); //< Try to read a report from the device
43
44 // NOTE: class_of_service is only applied to vrpn_Analog
45 // values, not vrpn_Button or vrpn_Dial
47 virtual void report_changes(vrpn_uint32 class_of_service
50 virtual void report(vrpn_uint32 class_of_service
52
55};
56
57#endif
virtual void report(vrpn_uint32 class_of_service=vrpn_CONNECTION_LOW_LATENCY, const struct timeval time=vrpn_ANALOG_NOW)
Send a report whether something has changed or not (for servers) Optionally, tell what time to stamp ...
Definition vrpn_Analog.C:94
virtual void report_changes(vrpn_uint32 class_of_service=vrpn_CONNECTION_LOW_LATENCY, const struct timeval time=vrpn_ANALOG_NOW)
Send a report only if something has changed (for servers) Optionally, tell what time to stamp the val...
Definition vrpn_Analog.C:71
virtual void mainloop()=0
Called once through each main loop iteration to handle updates. Remote object mainloop() should call ...
vrpn_Button_Filter(const char *, vrpn_Connection *c=NULL)
Generic connection class not specific to the transport mechanism.
vrpn_Dial(const char *name, vrpn_Connection *c=NULL)
Definition vrpn_Dial.C:8
vrpn_GlobalHapticsOrb(const char *name, vrpn_Connection *c, const char *port, int baud)
virtual void clear_values(void)
unsigned char d_buffer[512]
static int VRPN_CALLBACK handle_firstConnection(void *userdata, vrpn_HANDLERPARAM)
Clear all of the values when we get our first client connection request.
vrpn_Serial_Analog(const char *name, vrpn_Connection *connection, const char *port, int baud=9600, int bits=8, vrpn_SER_PARITY parity=vrpn_SER_PARITY_NONE, bool rts_flow=false)
This structure is what is passed to a vrpn_Connection message callback.
#define VRPN_API
#define VRPN_CALLBACK
const vrpn_uint32 vrpn_CONNECTION_RELIABLE
Classes of service for messages, specify multiple by ORing them together Priority of satisfying these...