Controller.cpp
Go to the documentation of this file.
00001 // -*- C++ -*-
00007 #include "Controller.h"
00008 
00009 // Module specification
00010 // <rtc-template block="module_spec">
00011 static const char* controller_spec[] =
00012   {
00013     "implementation_id", "Controller",
00014     "type_name",         "Controller",
00015     "description",       "Controller component",
00016     "version",           "1.0",
00017     "vendor",            "Noriaki Ando, AIST",
00018     "category",          "example",
00019     "activity_type",     "SPORADIC",
00020     "kind",              "DataFlowComponent",
00021     "max_instance",      "10",
00022     "language",          "C++",
00023     "lang_type",         "compile",
00024     // Configuration variables
00025     ""
00026   };
00027 // </rtc-template>
00028 
00029 Controller::Controller(RTC::Manager* manager)
00030     // <rtc-template block="initializer">
00031   : RTC::DataFlowComponentBase(manager),
00032     m_inIn("in", m_in),
00033     m_outOut("out", m_out)
00034     // </rtc-template>
00035 {
00036 }
00037 
00038 Controller::~Controller()
00039 {
00040 }
00041 
00042 
00043 RTC::ReturnCode_t Controller::onInitialize()
00044 {
00045   // Registration: InPort/OutPort/Service
00046   // <rtc-template block="registration">
00047   // Set InPort buffers
00048   addInPort("in", m_inIn);
00049 
00050   // Set OutPort buffer
00051   addOutPort("out", m_outOut);
00052 
00053   // Set service provider to Ports
00054 
00055   // Set service consumers to Ports
00056 
00057   // Set CORBA Service Ports
00058 
00059   // </rtc-template>
00060 
00061   // <rtc-template block="bind_config">
00062   // Bind variables and configuration variable
00063 
00064   // </rtc-template>
00065   return RTC::RTC_OK;
00066 }
00067 
00068 
00069 /*
00070 RTC::ReturnCode_t Controller::onFinalize()
00071 {
00072   return RTC::RTC_OK;
00073 }
00074 */
00075 /*
00076 RTC::ReturnCode_t Controller::onStartup(RTC::UniqueId ec_id)
00077 {
00078   return RTC::RTC_OK;
00079 }
00080 */
00081 /*
00082 RTC::ReturnCode_t Controller::onShutdown(RTC::UniqueId ec_id)
00083 {
00084   return RTC::RTC_OK;
00085 }
00086 */
00087 /*
00088 RTC::ReturnCode_t Controller::onActivated(RTC::UniqueId ec_id)
00089 {
00090   return RTC::RTC_OK;
00091 }
00092 */
00093 /*
00094 RTC::ReturnCode_t Controller::onDeactivated(RTC::UniqueId ec_id)
00095 {
00096   return RTC::RTC_OK;
00097 }
00098 */
00099 
00100 
00101 RTC::ReturnCode_t Controller::onExecute(RTC::UniqueId ec_id)
00102 {
00103   if (m_inIn.isNew()) {
00104     m_inIn.read();
00105     std::cout << "Controller Received data: " << m_in.data << std::endl;
00106     m_out.data = m_in.data * 2;
00107     m_outOut.write();
00108   }
00109   return RTC::RTC_OK;
00110 }
00111 
00112 
00113 /*
00114 RTC::ReturnCode_t Controller::onAborting(RTC::UniqueId ec_id)
00115 {
00116   return RTC::RTC_OK;
00117 }
00118 */
00119 /*
00120 RTC::ReturnCode_t Controller::onError(RTC::UniqueId ec_id)
00121 {
00122   return RTC::RTC_OK;
00123 }
00124 */
00125 /*
00126 RTC::ReturnCode_t Controller::onReset(RTC::UniqueId ec_id)
00127 {
00128   return RTC::RTC_OK;
00129 }
00130 */
00131 /*
00132 RTC::ReturnCode_t Controller::onStateUpdate(RTC::UniqueId ec_id)
00133 {
00134   return RTC::RTC_OK;
00135 }
00136 */
00137 /*
00138 RTC::ReturnCode_t Controller::onRateChanged(RTC::UniqueId ec_id)
00139 {
00140   return RTC::RTC_OK;
00141 }
00142 */
00143 
00144 
00145 extern "C"
00146 {
00147  
00148   void ControllerInit(RTC::Manager* manager)
00149   {
00150     coil::Properties profile(controller_spec);
00151     manager->registerFactory(profile,
00152                              RTC::Create<Controller>,
00153                              RTC::Delete<Controller>);
00154   }
00155   
00156 };
00157 
00158 
00159 


openrtm_aist
Author(s): Noriaki Ando
autogenerated on Sat Jun 8 2019 18:49:03