00001 #include <CommsManager.H> 00002 #include <PTUnit.H> 00003 00004 using namespace WURDE; 00005 00006 int main(int argc, char *argv[]){ 00007 00008 CommsManager myManager("PTUTest"); 00009 myManager.setRealName("PTUTest"); 00010 myManager.setHelpString("This module is meant as a test program for use with the PTUServer."); 00011 myManager.parseOptions(argc,argv); 00012 PTUnit myPTUnit("TomPTU"); 00013 00014 double goal=M_PI/3; 00015 00016 myManager.registerConsumer(&myPTUnit); 00017 00018 myManager.runUpdate(); 00019 sleep(1); 00020 00021 myPTUnit.requests.pan_vel.setValue(2.0); 00022 myPTUnit.requests.pan.setValue(goal); 00023 myPTUnit.publishRequest(); 00024 00025 for(int i=0;i<10;i++){ 00026 00027 if(myPTUnit.newInfo()){ 00028 00029 myPTUnit.getNextInfo(); 00030 if(abs(myPTUnit.info.pan.getValue()-goal)<0.01){ 00031 goal=-M_PI/4; 00032 //myPTUnit.requests.pan_vel.setValue(2.0); 00033 myPTUnit.requests.pan.setValue(goal); 00034 myPTUnit.publishRequest(); 00035 }else{ 00036 // myPTUnit.requests.pan_vel.setValue(2.0); 00037 myPTUnit.requests.pan.setValue(goal); 00038 myPTUnit.publishRequest(); 00039 } 00040 } 00041 myManager.runUpdate(); 00042 00043 cout << "PTUnit Pan/Tilt " << myPTUnit.info.pan.getValue() << 00044 "/"<<myPTUnit.info.tilt.getValue() 00045 << "vel " << myPTUnit.info.pan_vel.getValue() << 00046 " upper " << myPTUnit.info.pan_upper.getValue() << endl; 00047 sleep(1); 00048 } 00049 00050 myManager.cleanUp(); 00051 return 0; 00052 }