00001 #include "Robots/SeaBeeIII/BasicBrainComponentI.H" 00002 00003 #include "Component/ModelParam.H" 00004 #include "Component/ModelOptionDef.H" 00005 00006 #ifndef BASICBRAINCOMPONENTI_C 00007 #define BASICBRAINCOMPONENTI_C 00008 00009 // ###################################################################### 00010 BasicBrainComponentI::BasicBrainComponentI(int id, OptionManager& mgr, 00011 const std::string& descrName, const std::string& tagName) : 00012 RobotBrainComponent(mgr, descrName, tagName) 00013 { 00014 00015 } 00016 00017 // ###################################################################### 00018 BasicBrainComponentI::~BasicBrainComponentI() 00019 { 00020 00021 } 00022 00023 // ###################################################################### 00024 void BasicBrainComponentI::registerTopics() 00025 { 00026 /* Example of how to register as a publisher/subscriber to topics */ 00027 00028 registerPublisher("ChatMessage"); 00029 registerSubscription("ChatMessage"); 00030 } 00031 00032 // ###################################################################### 00033 void BasicBrainComponentI::evolve() 00034 { 00035 RobotSimEvents::ChatMessagePtr msg; 00036 msg = new RobotSimEvents::ChatMessage; 00037 00038 string input; 00039 cin >> input; 00040 00041 msg->text = input; 00042 msg->from = "John"; 00043 00044 00045 00046 publish("ChatMessage",msg); 00047 00048 00049 00050 // evolve() loops forever. Do stuff here... 00051 } 00052 00053 // ###################################################################### 00054 void BasicBrainComponentI::updateMessage(const RobotSimEvents::EventMessagePtr& eMsg, 00055 const Ice::Current&) 00056 { 00057 /* Example of how to parse received message. */ 00058 00059 if(eMsg->ice_isA("::RobotSimEvents::ChatMessage")) 00060 { 00061 RobotSimEvents::ChatMessagePtr msg = RobotSimEvents::ChatMessagePtr::dynamicCast(eMsg); 00062 00063 LINFO("%s: %s", msg->from.c_str(), msg->text.c_str()); 00064 00065 } 00066 } 00067 00068 #endif