| KINOVAAPIUSBCOMMANDLAYER_API int InitFingers | ( | ) |
This function initializes the fingers of the robotical arm. After the initialization, the robotical arm is in angular control mode. If you want to use the cartesian control mode, use the function SetCartesianControl().
#include <iostream> #include <dlfcn.h> //Ubuntu #include <vector> #include "KinovaTypes.h" //Note that under windows, you may/will have to perform other #include using namespace std; int main() { int result; int data; cout << "InitFingers function example" << endl; //Handle for the library's command layer. void * commandLayer_handle; //Function pointers to the functions we need int (*MyInitAPI)(); int (*MyCloseAPI)(); int (*MyInitFingers)(); //We load the library (Under Windows, use the function LoadLibrary) commandLayer_handle = dlopen("Kinova.API.USBCommandLayerUbuntu.so",RTLD_NOW|RTLD_GLOBAL); //We load the functions from the library (Under Windows, use GetProcAddress) MyInitAPI = (int (*)()) dlsym(commandLayer_handle,"InitAPI"); MyCloseAPI = (int (*)()) dlsym(commandLayer_handle,"CloseAPI"); MyInitFingers = (int (*)()) dlsym(commandLayer_handle,"InitFingers"); //If the was loaded correctly if((MyInitAPI == NULL) || (MyCloseAPI == NULL) || (MyInitFingers == NULL)) { cout << "Unable to initialize the command layer." << endl; } else { cout << "The command has been initialized correctly." << endl << endl; cout << "Calling the method InitAPI()" << endl; result = (*MyInitAPI)(); cout << "result of InitAPI() = " << result << endl; result = (*MyInitFingers)(); cout << endl << "Calling the method CloseAPI()" << endl; result = (*MyCloseAPI)(); cout << "result of CloseAPI() = " << result << endl; } return 0; }