anyKode Marilou
|
Le groupe de devices 'TouchArea' permet de paralléliser la commande de plusieurs DeviceTouchArea.
class DevicesGroupTouchArea : public DevicesGroup;
ModaCpp.h
//Code from Samples/Devices/TouchArea sample #include "Modacpp.h" #include "World.h" #include "conio.h" using namespace Moda; #define MODASERVER "localhost" ////////////////////////////////////////////////////////////////////////////////////// //This sample is using the generated World.cpp class (made by Class Creator) //You can connect directly to touch area devices without using this generated class: //RobotPHX *pWorld=pConnection->QueryRobotPHX("/"); //DeviceTouchArea *pButton1=pWorld->QueryDeviceTouchArea("sphere0/touchopen"); //DeviceTouchArea *pButton2=pWorld->QueryDeviceTouchArea("sphere0/touchclose"); // ... //Using groups: // //DevicesGroupTouchArea group; group.AddDevice(pButton1); group.AddDevice(pButton2); ////////////////////////////////////////////////////////////////////////////////////// /////////////// USING TOUCH AREA WITH GROUP ///////////////////////////////// int main(int argc, char* argv[]) { ModaCPP::Connection *pConnection=new ModaCPP::Connection(true); //Try connect to MODA server if(pConnection->Connect(MODASERVER)) { _cprintf("Connection ok to moda server\r\n"); //Find the robot World *pWorld=pConnection->QueryRobotPHX2<World>("/"); if(pWorld && pWorld->IsValid()) { _cprintf("World found\r\n"); //get devices from cache DeviceServoMotor *pServo=pWorld->GetServoMotorByIndex(0); DevicesGroupTouchArea *pGroup=pWorld->GetTouchAreasGroup(); Moda::Commons::TouchAreaState States[2]; while(!_kbhit()) { if(pGroup->GetAreasState(States,2)==MODA_EOK) { //is the button 1 pressed (green button) ? if(States[0].bPressed) { //move to 90° (open) pServo->GoPositionDeg(90,15); } else { //is the button 2 pressed (red button) ? if(States[1].bPressed) { //move to 0° (close) pServo->GoPositionDeg(0,15); } } } else { _cprintf("an error occured: %d\r\n",pGroup->GetLastSystemError()); } //next iteration pConnection->Sleep(20); } delete pWorld; } else { _cprintf("World not found or was invalid\r\n"); } } else { _cprintf("Unable to connect to moda server\r\n"); } //Disconnect & delete pConnection->Disconnect(); delete pConnection; _getch(); return 0; }
Documentation v4.7 (18/01/2015), Copyright (c) 2015 anyKode. All rights reserved.
|
What do you think about this topic? Send feedback!
|