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
54 static int VRPN_CALLBACK handle_firstConnection(void * userdata, vrpn_HANDLERPARAM);
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 ...
All button servers should derive from this class, which provides the ability to turn any of the butto...
Definition: vrpn_Button.h:66
Generic connection class not specific to the transport mechanism.
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...