/home/fwph/code/wurde/modules/examples/FooClient.cpp

Go to the documentation of this file.
00001 #include <CommsManager.H>
00002 #include <Foo.H>
00003 #include <Logger.H>
00004 #include <Trigger.H>
00005 #include <RangeFinder.H>
00006 
00007 using namespace WURDE;
00008 using namespace std;
00009 
00010 int main (int argc, char *argv[]){
00011 
00012   CommsManager myManager("FooClient");
00013   //Foo myFoo("Bar");
00014   RangeFinder myRf("Any");
00015   Foo myFoo(STRAT_ASSIGNED,"BarClient");
00016   Logger myLogger("FooClient");
00017   Trigger myTrigger;
00018 
00019   myManager.parseOptions(argc,argv);
00020 
00021   myManager.registerSupplier(&myLogger);
00022   myManager.registerConsumer(&myFoo);
00023   myManager.registerConsumer(&myRf);
00024   //  myManager.setSleep(0.9);
00025   //myTrigger.add(&myFoo);
00026   //  myManager.setTriggerMode(true);
00027   // myManager.addTrigger(myTrigger);
00028   myFoo.setAutoPing(true);
00029   myFoo.doPing();
00030   //  myFoo.setQueueMode(true);
00031 
00032   //  myManager.setNoHeartbeat();
00033 
00034   while(myManager.runUpdate()==STATE_RUN){
00035          myFoo.doPing();
00036          while(myFoo.newInfo()){
00037                 myFoo.getNextInfo();
00038                 cout << "Info: MaxRange " << myFoo.info.maxRange.getValue() << 
00039                        " angleMin " << myFoo.info.angleMin.getValue() << 
00040                        " angleMax " << myFoo.info.angleMax.getValue() << endl;
00041          }
00042          
00043          while(myFoo.newData()){
00044                 myFoo.getNextData();
00045                 //      std::cout<< "I do, in fact, have new data.\n";
00046                 if(myFoo.data.ranges.size()>0){
00047                        cout << "New data... Timestamp: " << myFoo.data.timestamp.getSeconds() <<
00048                               " Val " << 0 << ": " << (double) myFoo.data.ranges[0] << endl;
00049                 }else{
00050                        cout << "size is only " << myFoo.data.ranges.size() << endl;
00051                 }
00052 
00053          }    
00054 
00055          while(myRf.newInfo()){
00056                 myRf.getNextInfo();
00057                 cout << "RfInfo: MaxRange " << myRf.info.max_range.getValue() << 
00058                        " angleMin " << myRf.info.angle_min.getValue()<< endl;
00059          }
00060          
00061          while(myRf.newData()){
00062                 myRf.getNextData();
00063            if(myRf.data.ranges.size()>0){
00064                   cout << "New data... Timestamp: " << myRf.data.timestamp.getSeconds() <<
00065                          " Val " << 0 << ": " << (double) myRf.data.ranges[0] << endl;
00066            }
00067          }    
00068 
00069 
00070   }
00071 
00072   myManager.cleanUp();
00073 
00074   return 0;
00075 
00076 }

Generated on Thu Feb 1 15:31:52 2007 for WURDE by  doxygen 1.5.1