VRPN 06.04

VRPN main page

Obtaining VRPN

VRPN Support

Installing and Testing

Compiling and Modifying

Client code

Server code

Troubleshooting

Connections

Logging and Playback

Shared Objects

Sound

Clock Synchronization

Text Messages

Doxygen documentation

VRPN on PDAs

Coming attractions & suggestions

UNC-specific information

The vrpn_Analog_Output_Remote class enables the client program to specify an analog value on a server object. It is the inverse of a vrpn_Analog_Remote (which tells what analog values on a server object). Servers that include analog output objects can also implement the vrpn_Analog interface. User code will control the object's value using the vrpn_Analog_Output_Remote interface and listen for reports of new positions on the vrpn_Analog_Remote interface.

Selections from the #include file

// Open an analog device that is on the other end of a connection
// and handle updates from it.  This is the type of analog device
// that user code will deal with.
class vrpn_Analog_Output_Remote : public vrpn_Analog_Output {
    public:
        // The name of the analog device to connect to
        // Optional argument to be used when the Remote should
        // listen on a connection that is already open.
        vrpn_Analog_Output_Remote(const char* name,
                                  vrpn_Connection* c = NULL);
        virtual ~vrpn_Analog_Output_Remote (void);

        // Call each time through application main loop.
        virtual void mainloop();

        // Request the analog to change its value to the
        // one specified. Returns false on failure.
        virtual	bool request_change_channel_value(unsigned int chan,
            vrpn_float64 val,
            vrpn_uint32 class_of_service = vrpn_CONNECTION_RELIABLE);

        // Request the analog to change values all at once.  If
        // more values are given than we have channels, the extra
        // values are discarded. If less values are given than we
        // have channels, the extra channels are set to 0.
        // Returns false on failure.
        virtual bool request_change_channels(int num,
            vrpn_float64* vals,
            vrpn_uint32 class_of_service = vrpn_CONNECTION_RELIABLE);
};

Using a vrpn_Analog_Output_Remote

A vrpn_Analog_Output_Remote object is used by passing the name of the server you want to connect to as a parameter to the constructor and then calling its mainloop() message each time through the program's main loop. While active, the analog output device is controlled by calling request_change_channel_value() or request_change_channels().