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
12
class
VRPN_API
vrpn_CerealBox
:
public
vrpn_Serial_Analog
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
21
~vrpn_CerealBox
() {};
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
46
=
vrpn_CONNECTION_LOW_LATENCY
);
47
// send report whether or not changed
48
virtual
void
report
49
(vrpn_uint32 class_of_service
50
=
vrpn_CONNECTION_LOW_LATENCY
);
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:12
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::_bufcount
unsigned _bufcount
Definition:
vrpn_CerealBox.h:35
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
vrpn_CerealBox.h
Generated by
1.8.17