vrpn
07.35
Virtual Reality Peripheral Network
Toggle main menu visibility
Loading...
Searching...
No Matches
vrpn_Tng3.h
Go to the documentation of this file.
1
#ifndef VRPN_TNG3B_H
2
#define VRPN_TNG3B_H
3
#include "
vrpn_Analog.h
"
// for vrpn_Serial_Analog
4
#include "
vrpn_Button.h
"
// for vrpn_Button_Filter
5
#include "
vrpn_Configure.h
"
// for VRPN_API
6
#include "
vrpn_Connection.h
"
// for vrpn_CONNECTION_LOW_LATENCY, etc
7
#include "
vrpn_Shared.h
"
// for timeval
8
#include "
vrpn_Types.h
"
// for vrpn_uint32
9
10
// TNG stands for "Totally Neat Gadget."
11
// The TNG3 is an interface device from Mindtel <www.mindtel.com>.
12
// It is powered by the serial control lines and offers 8 digital
13
// and 8 analog inputs. It costs about $150.
14
// Written by Rob King at Navy Research Labs.
15
16
class
VRPN_API
vrpn_Tng3
:
public
vrpn_Serial_Analog
,
17
public
vrpn_Button_Filter
18
{
19
public
:
20
vrpn_Tng3
(
const
char
* name,
21
vrpn_Connection
* c,
22
const
char
* port,
23
int
baud = 19200,
// only speed
24
const
int
numbuttons = 8,
25
const
int
numchannels = 8);
26
27
~vrpn_Tng3
() {};
28
29
// Called once through each main loop iteration to handle
30
// updates.
31
virtual
void
mainloop
(
void
);
32
33
protected
:
34
int
_status
;
35
int
_numbuttons
;
// How many buttons to open
36
int
_numchannels
;
// How many analog channels to open
37
38
unsigned
_num_read
;
// How many characters have been read on this report?
39
unsigned
_expected_chars
;
// How many characters to expect in the report
40
unsigned
char
_buffer
[512];
// Buffer of characters in report
41
unsigned
_bufcount
;
// How many characters we have so far
42
43
struct
timeval
_timestamp
;
// Time of the last report from the device
44
45
virtual
void
clear_values
(
void
);
// Set all buttons, analogs back to 0
46
virtual
int
reset
(
void
);
// Set device back to starting config
47
virtual
int
get_report
(
void
);
// Try to read a report from the device
48
49
// send report iff changed
50
virtual
void
report_changes
(vrpn_uint32 class_of_service =
vrpn_CONNECTION_LOW_LATENCY
);
51
// send report whether or not changed
52
virtual
void
report
(vrpn_uint32 class_of_service =
vrpn_CONNECTION_LOW_LATENCY
);
53
54
// NOTE: class_of_service is only applied to vrpn_Analog
55
// values, not vrpn_Button or vrpn_Dial
56
57
private
:
58
59
// utility routine to sync up the data stream
60
int
syncDatastream (
double
seconds);
61
62
unsigned
char
bDataPacketStart;
63
};
64
65
#endif
vrpn_Analog::report
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
vrpn_Analog::report_changes
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
vrpn_BaseClass::mainloop
virtual void mainloop()=0
Called once through each main loop iteration to handle updates. Remote object mainloop() should call ...
vrpn_Button_Filter::vrpn_Button_Filter
vrpn_Button_Filter(const char *, vrpn_Connection *c=NULL)
Definition
vrpn_Button.C:129
vrpn_Connection
Generic connection class not specific to the transport mechanism.
Definition
vrpn_Connection.h:561
vrpn_Serial_Analog::vrpn_Serial_Analog
vrpn_Serial_Analog(const char *name, vrpn_Connection *connection, const char *port, int baud=9600, int bits=8, vrpn_SER_PARITY parity=vrpn_SER_PARITY_NONE, bool rts_flow=false)
Definition
vrpn_Analog.C:124
vrpn_Tng3::get_report
virtual int get_report(void)
Definition
vrpn_Tng3.C:158
vrpn_Tng3::_timestamp
struct timeval _timestamp
Definition
vrpn_Tng3.h:43
vrpn_Tng3::_num_read
unsigned _num_read
Definition
vrpn_Tng3.h:38
vrpn_Tng3::vrpn_Tng3
vrpn_Tng3(const char *name, vrpn_Connection *c, const char *port, int baud=19200, const int numbuttons=8, const int numchannels=8)
Definition
vrpn_Tng3.C:58
vrpn_Tng3::~vrpn_Tng3
~vrpn_Tng3()
Definition
vrpn_Tng3.h:27
vrpn_Tng3::clear_values
virtual void clear_values(void)
Definition
vrpn_Tng3.C:95
vrpn_Tng3::_status
int _status
Definition
vrpn_Tng3.h:34
vrpn_Tng3::reset
virtual int reset(void)
Definition
vrpn_Tng3.C:112
vrpn_Tng3::_expected_chars
unsigned _expected_chars
Definition
vrpn_Tng3.h:39
vrpn_Tng3::_numbuttons
int _numbuttons
Definition
vrpn_Tng3.h:35
vrpn_Tng3::_bufcount
unsigned _bufcount
Definition
vrpn_Tng3.h:41
vrpn_Tng3::_numchannels
int _numchannels
Definition
vrpn_Tng3.h:36
vrpn_Tng3::_buffer
unsigned char _buffer[512]
Definition
vrpn_Tng3.h:40
vrpn_Analog.h
vrpn_Button.h
vrpn_Configure.h
VRPN_API
#define VRPN_API
Definition
vrpn_Configure.h:648
vrpn_Connection.h
vrpn_CONNECTION_LOW_LATENCY
const vrpn_uint32 vrpn_CONNECTION_LOW_LATENCY
Definition
vrpn_Connection.h:120
vrpn_Shared.h
vrpn_Types.h
vrpn_Tng3.h
Generated by
1.17.0