3.10.1
multiple_devices.cpp

Simple example of multiple-devices programming.

#include <stdio.h>
#include "dhdc.h"
int
main (int argc,
char **argv)
{
int done = 0;
int deviceCount;
int deviceID0;
int deviceID1;
// get device count
deviceCount = dhdGetDeviceCount ();
if (deviceCount < 0) {
printf ("error: %s\n", dhdErrorGetLastStr ());
return 0;
}
else if (deviceCount < 1) {
printf ("error: no device detected\n");
}
else if (deviceCount < 2) {
printf ("error: single device detected\n");
}
// open the first available device
if ((deviceID0 = dhdOpenID (0)) < 0) {
printf ("error: %s\n", dhdErrorGetLastStr ());
}
// open the second available device
if ((deviceID1 = dhdOpenID (1)) < 0) {
printf ("error: %s\n", dhdErrorGetLastStr ());
}
// haptic loop
while (!done) {
// apply a null force to put the first device in gravity compensation
if (dhdSetForce (0.0, 0.0, 0.0, deviceID0) < 0) {
printf ("error: %s\n", dhdErrorGetLastStr ());
done = 1;
}
// apply a null force to put the second device in gravity compensation
if (dhdSetForce (0.0, 0.0, 0.0, deviceID1) < 0) {
printf ("error: %s\n", dhdErrorGetLastStr ());
done = 1;
}
// detect button click to quit the haptic loop
if (dhdGetButton (0)) {
printf ("exiting...\n");
}
}
// close the connection to the first device
if (dhdClose (0) < 0) {
printf ("error: %s\n", dhdErrorGetLastStr ());
}
// close the connection to the second device
if (dhdClose (1) < 0) {
printf ("error: %s\n", dhdErrorGetLastStr ());
}
return 0;
}