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

Go to the documentation of this file.
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 }

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