00001 #include <CommsManager.H> 00002 #include <Foo.H> 00003 #include <Logger.H> 00004 #include <math.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("FooServer"); 00013 Logger myLogger("FooServer"); 00014 Foo myFoo("Bar"); 00015 RangeFinder myRf("TestFinder"); 00016 int i=0; 00017 00018 myManager.parseOptions(argc,argv); 00019 00020 // myFoo.setQueueMode(true); 00021 00022 myManager.registerSupplier(&myFoo); 00023 myManager.registerSupplier(&myRf); 00024 myManager.registerSupplier(&myLogger); 00025 // myManager.setSleep(0.9); 00026 00027 myFoo.setAutoPing(true); 00028 myFoo.info.maxRange.setValue(8.0); 00029 myFoo.info.angleMin.setValue(0); 00030 myFoo.info.angleMax.setValue(M_PI); 00031 myFoo.info.timestamp.now(); 00032 myFoo.publishInfo(); 00033 00034 myRf.info.max_range.setValue(8.0); 00035 myRf.info.angle_min.setValue(0); 00036 myRf.info.timestamp.now(); 00037 myRf.publishInfo(); 00038 00039 // myManager.setNoHeartbeat(); 00040 myFoo.data.ranges.resize(10); 00041 // myFoo.data.ranges.push_back(1); 00042 myRf.data.ranges.push_back(1); 00043 while(myManager.runUpdate()==STATE_RUN){ 00044 // myFoo.publishInfo(); 00045 while(myFoo.newRequest()){ 00046 myFoo.getNextRequest(); 00047 cout << "Received request." << endl; 00048 } 00049 myFoo.data.ranges[0]=i; 00050 myRf.data.ranges[0]=i; 00051 00052 cout << "Sending value: " << myFoo.data.ranges[0] << endl; 00053 00054 myFoo.publishData(); 00055 // myFoo.publishInfo(); 00056 // myRf.publishData(); 00057 00058 i++; 00059 } 00060 00061 while(myFoo.newInfo()){ 00062 myFoo.getNextInfo(); 00063 cout << "info leftover: " << myFoo.info.angleMax.getValue() << endl; 00064 } 00065 myManager.cleanUp(); 00066 00067 return 0; 00068 }