6#include "vrpn_Configure.h"
7#include "vrpn_Shared.h"
13const int vrpn_BUTTON_MAX_BUTTONS = 256;
14const int VRPN_BUTTON_BUF_SIZE = 256;
19const int vrpn_BUTTON_MOMENTARY = 10;
20const int vrpn_BUTTON_TOGGLE_OFF = 20;
21const int vrpn_BUTTON_TOGGLE_ON = 21;
24const int vrpn_ALL_ID = -99;
39 virtual void set_momentary(vrpn_int32 which_button);
40 virtual void set_toggle(vrpn_int32 which_button, vrpn_int32 current_state);
41 virtual void set_all_momentary(
void);
42 virtual void set_all_toggle(vrpn_int32 default_state);
45 unsigned char buttons[vrpn_BUTTON_MAX_BUTTONS];
46 unsigned char lastbuttons[vrpn_BUTTON_MAX_BUTTONS];
47 vrpn_int32 minrate[vrpn_BUTTON_MAX_BUTTONS];
48 vrpn_int32 num_buttons;
49 struct timeval timestamp;
50 vrpn_int32 change_message_id;
51 vrpn_int32 states_message_id;
52 vrpn_int32 admin_message_id;
55 virtual void report_changes(
void);
56 virtual void report_states(
void);
57 virtual vrpn_int32 encode_to(
char *buf, vrpn_int32 button,
59 virtual vrpn_int32 encode_states_to(
char *buf);
68 vrpn_int32 buttonstate[vrpn_BUTTON_MAX_BUTTONS];
69 virtual void set_momentary(vrpn_int32 which_button);
70 virtual void set_toggle(vrpn_int32 which_button, vrpn_int32 current_state);
71 virtual void set_all_momentary(
void);
72 virtual void set_all_toggle(vrpn_int32 default_state);
73 void set_alerts(vrpn_int32);
80 virtual vrpn_int32 encode_states_to(
char *buf);
81 virtual void report_changes(
void);
86 static int VRPN_CALLBACK
90#ifndef VRPN_CLIENT_ONLY
124 int numbuttons = 1, vrpn_float64 rate = 1.0);
129 vrpn_float64 _update_rate;
140 int portno,
unsigned porthex = 0);
147 virtual void read(
void) = 0;
149 int openGiveIO(
void);
169 virtual void read(
void);
177 const char *port =
"/dev/ttyS1/",
long baud = 38400);
181 char portname[VRPN_BUTTON_BUF_SIZE];
187 buffer[VRPN_BUTTON_BUF_SIZE];
188 vrpn_uint32 bufcount;
190 virtual void read() = 0;
201 const char *port =
"/dev/ttyS1/",
long baud = 38400);
206 bool reported_failure;
209 report_no_timestamp();
223#define VRPN_BUTTON_OFF (0)
224#define VRPN_BUTTON_ON (1)
227 struct timeval msg_time;
231typedef void(VRPN_CALLBACK *vrpn_BUTTONCHANGEHANDLER)(
void *userdata,
240 struct timeval msg_time;
241 vrpn_int32 num_buttons;
242 vrpn_int32 states[vrpn_BUTTON_MAX_BUTTONS];
244typedef void(VRPN_CALLBACK *vrpn_BUTTONSTATESHANDLER)(
263 virtual int register_change_handler(
void *userdata,
264 vrpn_BUTTONCHANGEHANDLER handler)
266 return d_callback_list.register_handler(userdata, handler);
268 virtual int unregister_change_handler(
void *userdata,
269 vrpn_BUTTONCHANGEHANDLER handler)
271 return d_callback_list.unregister_handler(userdata, handler);
275 virtual int register_states_handler(
void *userdata,
276 vrpn_BUTTONSTATESHANDLER handler)
278 return d_states_callback_list.register_handler(userdata, handler);
280 virtual int unregister_states_handler(
void *userdata,
281 vrpn_BUTTONSTATESHANDLER handler)
283 return d_states_callback_list.unregister_handler(userdata, handler);
288 static int VRPN_CALLBACK
292 static int VRPN_CALLBACK
Generic connection class not specific to the transport mechanism.
定义 vrpn_Connection.h:562
This structure is what is passed to a vrpn_Connection message callback.
定义 vrpn_Connection.h:41