vrpn 07.35
Virtual Reality Peripheral Network
Loading...
Searching...
No Matches
vrpn_raw_sgibox.h
Go to the documentation of this file.
1/* vrpn_raw_sgibox.h
2 *
3 * This file describes the interface to an SGI dial & button box that
4 * is connected through a serial interface. This allows the control of
5 * the boxes without going through the SGI GL library, rather using the
6 * serial interface to connect with the device.
7 */
8
9#ifndef VRPN_RAW_SGIBOX
10#define VRPN_RAW_SGIBOX
11
12#include "vrpn_Configure.h" // for VRPN_API
13
14#include "vrpn_Analog.h"
15#include "vrpn_Dial.h"
16#include "vrpn_Button.h"
17
19
20/* Number of buttons and number of dials on sgi button/dial boxes */
21#define vrpn_SGI_NUM_BUTTONS (32)
22#define vrpn_SGI_NUM_DIALS (8)
23#define vrpn_SGI_NUMDEVS (vrpn_SGI_NUM_BUTTONS+vrpn_SGI_NUM_DIALS)
24
26public:
27 vrpn_raw_SGIBox(char * name, vrpn_Connection * c, char *serialDevName);
28 void mainloop();
29 int reset();
30 int send_light_command();
31
32protected:
33 void get_report();
34 void check_press_bank(int base_button, unsigned char base_command,
35 unsigned char command);
36 void check_release_bank(int base_button, unsigned char base_command,
37 unsigned char command);
38
39private:
40 int serialfd; // Serial port that has been opened
41 int mid_values[vrpn_SGI_NUM_DIALS]; //< Used to perform clamping
42 int last_values[vrpn_SGI_NUM_DIALS]; //< Used by dial reporting code
43};
44
45#endif // VRPN_RAW_SGIBOX
46
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
Generic connection class not specific to the transport mechanism.
#define VRPN_API
#define vrpn_SGI_NUM_DIALS