vrpn 07.35
Virtual Reality Peripheral Network
Loading...
Searching...
No Matches
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{
16public:
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:
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
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
unsigned _expected_chars
Generic connection class not specific to the transport mechanism.
#define VRPN_API
const vrpn_uint32 vrpn_CONNECTION_LOW_LATENCY