vrpn  07.33
Virtual Reality Peripheral Network
vrpn_Zaber.h
Go to the documentation of this file.
1 #ifndef VRPN_ZABER_H
2 #define VRPN_ZABER_H
3 
4 #include "vrpn_Analog.h" // for vrpn_Serial_Analog
5 #include "vrpn_Analog_Output.h" // for vrpn_Analog_Output
6 #include "vrpn_Configure.h" // for VRPN_CALLBACK, VRPN_API
7 #include "vrpn_Connection.h" // for vrpn_CONNECTION_RELIABLE, etc
8 #include "vrpn_Shared.h" // for timeval
9 #include "vrpn_Types.h" // for vrpn_int32, vrpn_uint32
10 
12 {
13 public:
14  vrpn_Zaber (const char * name, vrpn_Connection * c,
15  const char * port);
16  ~vrpn_Zaber () {};
17 
19  virtual void mainloop ();
20 
21  protected:
22  unsigned d_expected_chars; //< How many characters to expect in the report
23  unsigned char d_buffer[512]; //< Buffer of characters in report
24  unsigned d_bufcount; //< How many characters we have so far
25 
26  struct timeval timestamp; //< Time of the last report from the device
27  struct timeval d_last_poll; //< Time of last poll of the device.
28 
29  virtual int reset(void); //< Set device back to starting config
30  virtual int get_report(void); //< Try to read a report from the device
31 
32  bool send_command(unsigned char devicenum, unsigned char cmd, vrpn_int32 data);
33  bool send_command(unsigned char devnum, unsigned char cmd, unsigned char d0,
34  unsigned char d1, unsigned char d2, unsigned char d3);
35  vrpn_int32 convert_bytes_to_reading(const unsigned char *buf);
36 
38  virtual void report_changes
39  (vrpn_uint32 class_of_service = vrpn_CONNECTION_RELIABLE);
41  virtual void report
42  (vrpn_uint32 class_of_service = vrpn_CONNECTION_RELIABLE);
43 
46  static int VRPN_CALLBACK handle_request_message(void *userdata, vrpn_HANDLERPARAM p);
47 
49  static int VRPN_CALLBACK handle_request_channels_message(void *userdata, vrpn_HANDLERPARAM p);
50 
52  static int VRPN_CALLBACK handle_connect_message(void *userdata, vrpn_HANDLERPARAM p);
53 };
54 
55 #endif
vrpn_Serial_Analog
Definition: vrpn_Analog.h:63
vrpn_Zaber
Definition: vrpn_Zaber.h:11
vrpn_Types.h
vrpn_Analog_Output.h
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_Output
Definition: vrpn_Analog_Output.h:26
vrpn_Zaber::~vrpn_Zaber
~vrpn_Zaber()
Definition: vrpn_Zaber.h:16
vrpn_CONNECTION_RELIABLE
const vrpn_uint32 vrpn_CONNECTION_RELIABLE
Classes of service for messages, specify multiple by ORing them together Priority of satisfying these...
Definition: vrpn_Connection.h:120
vrpn_HANDLERPARAM
This structure is what is passed to a vrpn_Connection message callback.
Definition: vrpn_Connection.h:44
vrpn_Shared.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_Zaber::d_bufcount
unsigned d_bufcount
Definition: vrpn_Zaber.h:24
vrpn_Analog.h
VRPN_CALLBACK
#define VRPN_CALLBACK
Definition: vrpn_Configure.h:647
vrpn_Zaber::d_expected_chars
unsigned d_expected_chars
Definition: vrpn_Zaber.h:22
vrpn_Configure.h
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_API
#define VRPN_API
Definition: vrpn_Configure.h:646