main.cpp
Go to the documentation of this file.
00001 
00002 #include "deployment/DeploymentComponent.hpp"
00003 #include "taskbrowser/TaskBrowser.hpp"
00004 #include <rtt/InputPort.hpp>
00005 #include <rtt/os/main.h>
00006 #include <rtt/RTT.hpp>
00007 #include <vector>
00008 
00009 using namespace Orocos;
00010 
00011 class MyTask
00012     : public RTT::TaskContext
00013 {
00014 public:
00015     Property<std::vector<double> > limits;
00016     InputPort<double> p1;
00017     OutputPort<double> p2;
00018     OutputPort<double> p3;
00019     Attribute<double> a;
00020 
00021     MyTask(std::string n)
00022         : RTT::TaskContext(n),
00023           limits("limits","desc", std::vector<double>(2) ),
00024           p1("p1"),
00025           p2("p2"),
00026           p3("p3"),
00027           a("a")
00028     {
00029         this->properties()->addProperty( limits);
00030         this->ports()->addPort( p1 );
00031         this->ports()->addPort( p2 );
00032         this->ports()->addPort( p3 );
00033         this->addAttribute( a );
00034         limits.set()[0] = 10;
00035         limits.set()[1] = 20;
00036     }
00037 };
00038 
00039 class HelloProvider
00040     : public RTT::TaskContext
00041 {
00042 public:
00043     bool hello() {
00044         RTT::Logger::In("connectOperations Test");
00045         log(Info) << "Hello World!" << endlog();
00046         return true;
00047     }
00048 
00049     HelloProvider()
00050     : RTT::TaskContext("HelloProvider")
00051     {
00052         this->provides("hello_service")->addOperation("hello", &HelloProvider::hello, this);
00053     }
00054 };
00055 
00056 class HelloRequester
00057     : public RTT::TaskContext
00058 {
00059 public:
00060     RTT::OperationCaller<bool()> helloworld;
00061     HelloRequester()
00062     : RTT::TaskContext("HelloRequester"),
00063       helloworld("helloworld")
00064     {
00065         this->requires()->addOperationCaller(helloworld);
00066     }
00067     void virtual updateHook() {
00068         helloworld();
00069     }
00070 };
00071 
00072 int ORO_main(int, char**)
00073 {
00074     RTT::Logger::Instance()->setLogLevel(RTT::Logger::Info);
00075 
00076     MyTask t1("ComponentA");
00077     MyTask t2("ComponentB");
00078     MyTask t3("ComponentC");
00079 
00080     HelloProvider p;
00081     HelloRequester r;
00082 
00083     {
00084         DeploymentComponent dc;
00085         dc.addPeer( &t1 );
00086         dc.addPeer( &t2 );
00087         dc.addPeer( &t3 );
00088         dc.addPeer( &p );
00089         dc.addPeer( &r );
00090         dc.kickStart("deployment.cpf");
00091         TaskBrowser tb(&dc);
00092 
00093         tb.loop();
00094     }
00095     return 0;
00096 }


ocl
Author(s): OCL Development Team
autogenerated on Thu Jan 2 2014 11:38:08