vrpn 07.35
Virtual Reality Peripheral Network
 
Loading...
Searching...
No Matches
vrpn_nikon_controls.h
Go to the documentation of this file.
1#ifndef VRPN_NIKON_CONTROLS_H
2#define VRPN_NIKON_CONTROLS_H
3
4#include <stddef.h> // for NULL
5
6#include "vrpn_Analog.h" // for vrpn_Serial_Analog
7#include "vrpn_Analog_Output.h" // for vrpn_Analog_Output
8#include "vrpn_Configure.h" // for VRPN_CALLBACK, VRPN_API
9#include "vrpn_Connection.h" // for vrpn_CONNECTION_LOW_LATENCY, etc
10#include "vrpn_Shared.h" // for timeval
11#include "vrpn_Types.h" // for vrpn_uint32, vrpn_float64
12
14public:
15 vrpn_Nikon_Controls(const char *device_name, vrpn_Connection *con = NULL, const char *port_name = "COM1");
17
18 virtual void mainloop ();
19
20protected:
22
23 unsigned char _buffer[512]; //< Buffer of characters in report
24 unsigned _bufcount; //< How many characters we have so far
25
26 double _requested_focus; //< Where we asked the focus to be set to
27
28 struct timeval timestamp; //< Time of the last report from the device
29 struct timeval last_poll; //< Last time we polled the device
30
31 virtual int reset(void); //< Set device back to starting config
32 virtual int get_report(void); //< Try to read a report from the device
33 virtual int set_channel(unsigned chan_num, vrpn_float64 value); //< Try to set the focus to this
34
36 virtual void report_changes (vrpn_uint32 class_of_service = vrpn_CONNECTION_LOW_LATENCY);
37
39 virtual void report (vrpn_uint32 class_of_service = vrpn_CONNECTION_LOW_LATENCY);
40
43
47
50};
51
52#endif
vrpn_Analog_Output(const char *name, vrpn_Connection *c=NULL)
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
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
virtual void mainloop()=0
Called once through each main loop iteration to handle updates. Remote object mainloop() should call ...
Generic connection class not specific to the transport mechanism.
static int VRPN_CALLBACK handle_request_message(void *userdata, vrpn_HANDLERPARAM p)
Responds to a request to change one of the values by setting the channel to that value.
unsigned char _buffer[512]
vrpn_Nikon_Controls(const char *device_name, vrpn_Connection *con=NULL, const char *port_name="COM1")
virtual int set_channel(unsigned chan_num, vrpn_float64 value)
Set the channel associated with the index to the specified value.
virtual int reset(void)
static int VRPN_CALLBACK handle_connect_message(void *userdata, vrpn_HANDLERPARAM p)
Responds to a connection request with a report of the values.
static int VRPN_CALLBACK handle_request_channels_message(void *userdata, vrpn_HANDLERPARAM p)
Responds to a request to change multiple channels at once.
virtual int get_report(void)
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)
This structure is what is passed to a vrpn_Connection message callback.
#define VRPN_API
#define VRPN_CALLBACK
const vrpn_uint32 vrpn_CONNECTION_LOW_LATENCY