|
anyKode Marilou
|
Le groupe de devices 'Distance' permet de paralléliser la commande de plusieurs DeviceDistance.
class DevicesGroupDistance : public DevicesGroup;
ModaCpp.h
#include "stdafx.h"
#include "Modacpp.h"
#include "conio.h"
#define MODASERVER "localhost"
//using TUTORIAL 4 world
#define MYROBOTNAME "/robot1"
int main(int argc, char* argv[])
{
ModaCPP::Connection *connection=new ModaCPP::Connection(true);
if(connection->Connect(MODASERVER))
{
_cprintf("Connection ok to moda server\r\n");
ModaCPP::RobotPHX *robot=connection->QueryRobotPHX(MYROBOTNAME);
if(robot)
{
_cprintf("robot found\r\n");
//find the robot sensors
ModaCPP::DeviceDistance *pIRLeft;
ModaCPP::DeviceDistance *pIRRight;
ModaCPP::DeviceDistance *pIRBack;
pIRLeft =robot->QueryDeviceDistance("irright/ray/device_ir");
pIRRight=robot->QueryDeviceDistance("irleft/ray/device_ir");
pIRBack =robot->QueryDeviceDistance("irback/ray/device_ir");
//check all is OK
if(pIRLeft && pIRRight && pIRBack)
{
//create devices group
ModaCPP::DevicesGroupDistance *pDistanceGroup=new ModaCPP::DevicesGroupDistance(robot->GetConnection());
pDistanceGroup->AddDevice(pIRLeft);
pDistanceGroup->AddDevice(pIRRight);
pDistanceGroup->AddDevice(pIRBack);
//read measures
const int MeasuresCount=3;
float Measures[MeasuresCount];
while(!_kbhit())
{
//Devices group unique call : fast (1 network call)
pDistanceGroup->GetMeasures(Measures,MeasuresCount);
/*Is equivalent to read the 3 devices measures separately: slow (3 network calls)
Measures[0]=pIRLeft->GetMeasure();
Measures[1]=pIRRight->GetMeasure();
Measures[2]=pIRBack->GetMeasure();
*/
//display measures
for(int i=0;i<MeasuresCount;i++) _cprintf("group : %f ",Measures[i]);
_cprintf("\r\n");
robot->Sleep(100);
}
}
else
{
_cprintf("one or more distance sensor(s) missing\r\n");
}
}
else
{
_cprintf("robot not found\r\n");
}
}
else
{
_cprintf("Unable to connect to moda server\r\n");
}
connection->Disconnect();
delete connection;
return 0;
}
|
Documentation v4.7 (18/01/2015), Copyright (c) 2015 anyKode. All rights reserved.
|
|
What do you think about this topic? Send feedback!
|