vrpn  07.33
Virtual Reality Peripheral Network
vrpn_Magellan.h
Go to the documentation of this file.
1 #ifndef VRPN_MAGELLAN_H
2 #define VRPN_MAGELLAN_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
7 #include "vrpn_Connection.h" // for vrpn_CONNECTION_LOW_LATENCY, etc
8 #include "vrpn_Shared.h" // for timeval
9 #include "vrpn_Types.h" // for vrpn_uint32
10 
12  ,public vrpn_Button_Filter
13 {
14 public:
15  vrpn_Magellan (const char * name, vrpn_Connection * c,
16  const char * port, int baud, bool altreset = false);
17 
19 
21  virtual void mainloop ();
22 
23  virtual int reset(void); //< Set device back to starting config
24 
25  protected:
26  bool _altreset; //< Send alternative reset string?
27  int _status; //< Used by mainloop() and get_report()
28  int _numbuttons; //< How many buttons to open
29  int _numchannels; //< How many analog channels to open
30 
31  unsigned _expected_chars; //< How many characters to expect in the report
32  unsigned char _buffer[512]; //< Buffer of characters in report
33  unsigned _bufcount; //< How many characters we have so far
34 
35  int _null_radius; //< The range over which no motion should be reported
36 
37  struct timeval timestamp; //< Time of the last report from the device
38 
39  virtual void clear_values(void);//< Set all buttons, analogs and encoders back to 0
40 
43  virtual int get_report(void);
44 
46  virtual void report_changes
47  (vrpn_uint32 class_of_service
50  virtual void report
51  (vrpn_uint32 class_of_service
53 
54  // NOTE: class_of_service is only applied to vrpn_Analog
55  // values, not vrpn_Button, which are always vrpn_RELIABLE
56 };
57 
58 #endif
const vrpn_uint32 vrpn_CONNECTION_LOW_LATENCY
unsigned _expected_chars
Definition: vrpn_Magellan.h:31
Generic connection class not specific to the transport mechanism.
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
#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 ...
unsigned _bufcount
Definition: vrpn_Magellan.h:33
All button servers should derive from this class, which provides the ability to turn any of the butto...
Definition: vrpn_Button.h:65