bool asvGrabberModule::configure(yarp::os::ResourceFinder &rf) { /* Process all parameters from both command-line and .ini file */ /* get the module name which will form the stem of all module port names */ moduleName = rf.check("name", Value("/asvGrabber"), "module name (string)").asString(); /* * before continuing, set the module name before getting any other parameters, * specifically the port names which are dependent on the module name */ setName(moduleName.c_str()); /* * get the robot name which will form the stem of the robot ports names * and append the specific part and device required */ robotName = rf.check("robot", Value("icub"), "Robot name (string)").asString(); robotPortName = "/" + robotName + "/head"; /* * get the device name which will be used to read events */ deviceName = rf.check("deviceName", Value("/dev/aerfx2_0"), "Device name (string)").asString(); devicePortName = deviceName ; printf("trying to connect to the device %s \n",devicePortName.c_str()); /* * attach a port of the same name as the module (prefixed with a /) to the module * so that messages received from the port are redirected to the respond method */ handlerPortName = ""; handlerPortName += getName(); // use getName() rather than a literal if (!handlerPort.open(handlerPortName.c_str())) { cout << getName() << ": Unable to open port " << handlerPortName << endl; return false; } attach(handlerPort); // attach to port bool _save = false; std::string deviceNum = "0"; /* * get the file name of binaries when the biases are read from this file */ binaryName = rf.check("file", Value("none"), "filename of the binary (string)").asString(); printf("trying to read %s for biases \n",binaryName.c_str()); binaryNameComplete = rf.findFile(binaryName.c_str()); /* * get the file name of binaries when the biases are read from this file */ dumpNameComplete = ""; dumpName = rf.check("dumpFile", Value("none"), "filename of the binary (string)").asString(); printf("trying to save events in %s \n",dumpName.c_str()); dumpNameComplete = rf.findFile(dumpName.c_str()); dumpPathDirectory = rf.getContextPath(); string pathDirectory = dumpPathDirectory.substr(0, 52); pathDirectory += "/"; printf("saving directory %s \n",dumpPathDirectory.c_str()); if(!strcmp(binaryName.c_str(),"none")) { printf("not reading from binary \n"); D2Y=new asvGrabberThread(devicePortName, false,binaryName); //D2Y->setFromBinary(false); } else { printf("reading from binary \n"); //D2Y->setFromBinary(true); D2Y=new asvGrabberThread(devicePortName, true, binaryNameComplete); //D2Y->setBinaryFile(f); } printf("dumpEventSet \n"); if (strcmp(dumpNameComplete.c_str(),"" )) { printf("set dumping event true \n"); D2Y->setDumpEvent(true); D2Y->setDumpFile(dumpNameComplete); D2Y->setWorkingDirectory(pathDirectory); } else { printf("set dumping event false \n"); D2Y->setDumpEvent(false); } printf("starting the processor \n"); D2Y->start(); return true ; // let the RFModule know everything went well // so that it will then run the module }