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 }