vrpn  07.33
Virtual Reality Peripheral Network
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 
26 public:
27  vrpn_raw_SGIBox(char * name, vrpn_Connection * c, char *serialDevName);
28  void mainloop();
29  int reset();
30  int send_light_command();
31 
32 protected:
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 
39 private:
40  int serialfd; // Serial port that has been opened
41  unsigned long btstat; /* status of of on/off buttons */
42  unsigned long bs1, bs2; /* status of all buttons */
43  short vals1[vrpn_SGI_NUMDEVS]; // Value array?
44  int dial_changed[vrpn_SGI_NUM_DIALS];
45  int mid_values[vrpn_SGI_NUM_DIALS]; //< Used to perform clamping
46  int last_values[vrpn_SGI_NUM_DIALS]; //< Used by dial reporting code
47 };
48 
49 #endif // VRPN_RAW_SGIBOX
Generic connection class not specific to the transport mechanism.
#define VRPN_API
#define vrpn_SGI_NUMDEVS
virtual void mainloop()=0
Called once through each main loop iteration to handle updates. Remote object mainloop() should call ...
#define vrpn_SGI_NUM_DIALS
All button servers should derive from this class, which provides the ability to turn any of the butto...
Definition: vrpn_Button.h:65