anyKode Marilou
ContentsIndexHome
Example
///////////////////////////////////////////////////////
//exemple from Samples/Devices/Servomotor, modified
///////////////////////////////////////////////////////

#include "ModaCpp.h"
#include "conio.h"

//Settings:
#define MODASERVER "localhost"

int main(int argc, TCHAR* argv[])
{
ModaCPP::Connection *connection=new ModaCPP::Connection(true);

//Connect to MODA server
if(connection->Connect(MODASERVER))
    {
    _cprintf("Connexion to %s ok\r\n",MODASERVER);

    //Find the robot
    ModaCPP::RobotPHX *robot=connection->QueryRobotPHX("/");
    if(robot)
        {
        _cprintf("robot found in this world\r\n");
        ModaCPP::DeviceServoMotor *pServo1=robot->QueryDeviceServoMotor("hinge2/axisred/servo");
        ModaCPP::DeviceServoMotor *pServo2=robot->QueryDeviceServoMotor("hinge2/axisgreen/servo");

        if(pServo1 && pServo2)
            {
            //create group^and add the 2 servos
            ModaCPP::DevicesGroupServo group(connection);
            group.AddDevice(pServo1);
            group.AddDevice(pServo2);

            //positions to reah / test
            float positions1[2]={-89.0f,-45.0f};
            float positions2[2]={89.0f,45.0f};

            while(!_kbhit())
                {
                //ask to go to the specific position1
                group.GoPositionsDeg(positions1,NULL,2);
                //wait all servo reach this position with an acceptable error equal to servo accuracy
                //do this wait during an infinite time if needed
                group.WaitPositionsDegCompleteWithError(positions1,0,2,INFINITE);

                //ask to go to the specific position2
                group.GoPositionsDeg(positions2,NULL,2);
                //wait all servo reach this position with an acceptable error equal to servo accuracy
                //do this wait during 1000 ms maximum, if needed
                group.WaitPositionsDegCompleteWithError(positions2,0,2,1000);
                }
            delete pServo1;
            delete pServo2;
            }
        else
            {
            _cprintf("servo(s) not found ...\r\n");
            }
        delete robot;
        }
    else
        {
        _cprintf("robot not found in this world\r\n");
        }
    }
else
    {
    _cprintf("Unable to connect to moda server : be sure Exec is running and MODA TCP/UDP ports are open\r\n");
    }
connection->Disconnect();
delete connection;

return 0;
}
Documentation v4.7 (18/01/2015), Copyright (c) 2015 anyKode. All rights reserved.