vrpn  07.33
Virtual Reality Peripheral Network
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 {
22 public:
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:
32  int d_status;
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
const vrpn_uint32 vrpn_CONNECTION_RELIABLE
Classes of service for messages, specify multiple by ORing them together Priority of satisfying these...
Generic connection class not specific to the transport mechanism.
#define VRPN_CALLBACK
#define VRPN_API
virtual void report_changes(void)
Definition: vrpn_Button.C:382
virtual void mainloop()=0
Called once through each main loop iteration to handle updates. Remote object mainloop() should call ...
virtual void report(void)
Definition: vrpn_Dial.C:82
This structure is what is passed to a vrpn_Connection message callback.
All button servers should derive from this class, which provides the ability to turn any of the butto...
Definition: vrpn_Button.h:65