vrpn  07.33
Virtual Reality Peripheral Network
vrpn_CerealBox.h
Go to the documentation of this file.
1 #ifndef VRPN_CEREALBOX_H
2 #define VRPN_CEREALBOX_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_Dial.h" // for vrpn_Dial
9 #include "vrpn_Shared.h" // for timeval
10 #include "vrpn_Types.h" // for vrpn_uint32
11 
13  ,public vrpn_Button_Filter
14  ,public vrpn_Dial
15 {
16 public:
17  vrpn_CerealBox (const char * name, vrpn_Connection * c,
18  const char * port, int baud,
19  const int numbuttons, const int numchannels, const int numencoders);
20 
22 
23  // Called once through each main loop iteration to handle
24  // updates.
25  virtual void mainloop ();
26 
27  protected:
28  int _status;
29  int _numbuttons; // How many buttons to open
30  int _numchannels; // How many analog channels to open
31  int _numencoders; // How many encoders to open
32 
33  unsigned _expected_chars; // How many characters to expect in the report
34  unsigned char _buffer[512]; // Buffer of characters in report
35  unsigned _bufcount; // How many characters we have so far
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  virtual int reset(void); // Set device back to starting config
41  virtual int get_report(void); // Try to read a report from the device
42 
43  // send report iff changed
44  virtual void report_changes
45  (vrpn_uint32 class_of_service
47  // send report whether or not changed
48  virtual void report
49  (vrpn_uint32 class_of_service
51 
52  // NOTE: class_of_service is only applied to vrpn_Analog
53  // values, not vrpn_Button or vrpn_Dial
54 };
55 
56 #endif
vrpn_Serial_Analog
Definition: vrpn_Analog.h:63
vrpn_Dial::report
virtual void report(void)
Definition: vrpn_Dial.C:82
vrpn_Button_Filter::report_changes
virtual void report_changes(void)
Definition: vrpn_Button.C:382
vrpn_Dial.h
vrpn_CerealBox::_numchannels
int _numchannels
Definition: vrpn_CerealBox.h:30
vrpn_Types.h
vrpn_CerealBox::~vrpn_CerealBox
~vrpn_CerealBox()
Definition: vrpn_CerealBox.h:21
vrpn_CerealBox::_expected_chars
unsigned _expected_chars
Definition: vrpn_CerealBox.h:33
vrpn_CerealBox::_numbuttons
int _numbuttons
Definition: vrpn_CerealBox.h:29
vrpn_CONNECTION_LOW_LATENCY
const vrpn_uint32 vrpn_CONNECTION_LOW_LATENCY
Definition: vrpn_Connection.h:122
vrpn_CerealBox::_numencoders
int _numencoders
Definition: vrpn_CerealBox.h:31
vrpn_Dial
Definition: vrpn_Dial.h:21
vrpn_Shared.h
vrpn_CerealBox
Definition: vrpn_CerealBox.h:15
vrpn_Button.h
vrpn_BaseClass::mainloop
virtual void mainloop()=0
Called once through each main loop iteration to handle updates. Remote object mainloop() should call ...
vrpn_Connection
Generic connection class not specific to the transport mechanism.
Definition: vrpn_Connection.h:510
vrpn_Connection.h
vrpn_CerealBox::_status
int _status
Definition: vrpn_CerealBox.h:28
vrpn_Analog.h
vrpn_Configure.h
VRPN_API
#define VRPN_API
Definition: vrpn_Configure.h:646
vrpn_Button_Filter
All button servers should derive from this class, which provides the ability to turn any of the butto...
Definition: vrpn_Button.h:65