11#ifndef VRPN_ANALOG_OUTPUT_H
12#define VRPN_ANALOG_OUTPUT_H
16#include "vrpn_Analog.h"
18#include "vrpn_Configure.h"
19#include "vrpn_Connection.h"
20#include "vrpn_Shared.h"
21#include "vrpn_Types.h"
33 vrpn_int32 getNumChannels()
const {
return o_num_channel; }
36 vrpn_float64 o_channel[vrpn_CHANNEL_MAX];
37 vrpn_int32 o_num_channel;
38 struct timeval o_timestamp;
39 vrpn_int32 request_m_id;
40 vrpn_int32 request_channels_m_id;
42 vrpn_int32 report_num_channels_m_id;
44 vrpn_int32 got_connection_m_id;
59 vrpn_int32 numChannels = vrpn_CHANNEL_MAX);
70 const vrpn_float64*
o_channels(
void)
const {
return o_channel; };
73 virtual bool report_num_channels(
74 vrpn_uint32 class_of_service = vrpn_CONNECTION_RELIABLE);
75 virtual vrpn_int32 encode_num_channels_to(
char* buf, vrpn_int32 num);
81 static int VRPN_CALLBACK
88 static int VRPN_CALLBACK
93 static int VRPN_CALLBACK
105 struct timeval msg_time;
106 vrpn_int32 num_channel;
107 const vrpn_float64* channel;
110typedef void(VRPN_CALLBACK* vrpn_ANALOGOUTPUTCHANGEHANDLER)(
118 vrpn_int32 numChannels = vrpn_CHANNEL_MAX);
126 virtual int register_change_handler(
void* userdata,
127 vrpn_ANALOGOUTPUTCHANGEHANDLER handler)
129 return d_callback_list.register_handler(userdata, handler);
132 unregister_change_handler(
void* userdata,
133 vrpn_ANALOGOUTPUTCHANGEHANDLER handler)
135 return d_callback_list.unregister_handler(userdata, handler);
143 static int VRPN_CALLBACK
167 virtual bool request_change_channel_value(
168 unsigned int chan, vrpn_float64 val,
169 vrpn_uint32 class_of_service = vrpn_CONNECTION_RELIABLE);
177 virtual bool request_change_channels(
178 int num, vrpn_float64* vals,
179 vrpn_uint32 class_of_service = vrpn_CONNECTION_RELIABLE);
183 static int VRPN_CALLBACK
187 virtual vrpn_int32 encode_change_to(
char* buf, vrpn_int32 chan,
189 virtual vrpn_int32 encode_change_channels_to(
char* buf, vrpn_int32 num,
定义 vrpn_Analog_Output.h:114
vrpn_Callback_List< vrpn_ANALOGOUTPUTCB > d_callback_list
定义 vrpn_Analog_Output.h:148
static int VRPN_CALLBACK handle_change_message(void *userdata, vrpn_HANDLERPARAM p)
定义 vrpn_Analog_Output.h:154
定义 vrpn_Analog_Output.h:56
static int VRPN_CALLBACK handle_request_message(void *userdata, vrpn_HANDLERPARAM p)
const vrpn_float64 * o_channels(void) const
Exposes an array of values for the user to read from.
定义 vrpn_Analog_Output.h:70
virtual void mainloop()
定义 vrpn_Analog_Output.h:62
static int VRPN_CALLBACK handle_request_channels_message(void *userdata, vrpn_HANDLERPARAM p)
static int VRPN_CALLBACK handle_got_connection(void *userdata, vrpn_HANDLERPARAM p)
vrpn_int32 setNumChannels(vrpn_int32 sizeRequested)
定义 vrpn_Analog_Output.h:26
virtual int register_types(void)
void server_mainloop(void)
Generic connection class not specific to the transport mechanism.
定义 vrpn_Connection.h:562
定义 vrpn_Analog_Output.h:104
This structure is what is passed to a vrpn_Connection message callback.
定义 vrpn_Connection.h:41