TeleKybCore.hpp
Go to the documentation of this file.
00001 /*
00002  * TeleKybCore.hpp
00003  *
00004  *  Created on: Nov 15, 2011
00005  *      Author: mriedel
00006  */
00007 
00008 #ifndef INTERFACE_TELEKYBCORE_HPP_
00009 #define INTERFACE_TELEKYBCORE_HPP_
00010 
00011 #include <telekyb_defines/telekyb_defines.hpp>
00012 
00013 #include <telekyb_interface/OptionController.hpp>
00014 #include <telekyb_interface/BehaviorController.hpp>
00015 
00016 #include <ros/ros.h>
00017 
00018 namespace TELEKYB_INTERFACE_NAMESPACE {
00019 
00020 class TeleKybCore {
00021 private:
00022         // use factory to get System
00023         TeleKybCore(int robotID_, const std::string& mainHandleNamespace);
00024 
00025 protected:
00026         int robotID;
00027         ros::NodeHandle mainNodeHandle;
00028 
00029         // OptionController requires TelekybSystem :)
00030         OptionController* optionController;
00031 
00032         // BehaviorController requires TelekybSystem & OptionController.
00033         BehaviorController* behaviorController;
00034 
00035         // create Controllers
00036         void createBehaviorController();
00037         void createOptionController();
00038 
00039         // System check.
00040         bool isOk() const;
00041 
00042 public:
00043         virtual ~TeleKybCore();
00044 
00045         static TeleKybCore* getTeleKybCore(int robotID_);
00046         static bool getTeleKybCoreMainNodeHandle(int robotID_, ros::NodeHandle& nodeHandle_, double waitTime_ = 0.0);
00047 
00048         OptionController* getOptionController() const;
00049         BehaviorController* getBehaviorController() const;
00050 
00051 
00052 };
00053 
00054 }
00055 
00056 #endif /* TELEKYBSYSTEM_HPP_ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Defines


telekyb_interface
Author(s): Martin Riedel
autogenerated on Mon Nov 11 2013 11:12:47