00001 // File: HawkNavigator.C 00002 // Author: Josh Villbrandt <josh.villbrandt@usc.edu> 00003 // Date: April 2010 00004 00005 #include "Robots/BeoHawk/computer/HawkNavigator.H" 00006 00007 // ###################################################################### 00008 HawkNavigator::HawkNavigator(std::string myName, int argc, char* argv[]) 00009 : HawkAgent(myName, argc, argv) { 00010 state = INIT; 00011 } 00012 00013 // ###################################################################### 00014 void HawkNavigator::registerTopics() { 00015 //registerPublisher("ExampleMessage"); 00016 registerSubscription("SlamDataMessage"); 00017 } 00018 00019 // ###################################################################### 00020 bool HawkNavigator::scheduler() { 00021 /*if(state == INIT) { 00022 actionSendFirst(); 00023 return true; 00024 } 00025 else if(state == RECEIVED_FIRST_MESSAGE) { 00026 actionSendSecond(); 00027 return true; 00028 }*/ 00029 00030 return false; 00031 } 00032 00033 // ###################################################################### 00034 void HawkNavigator::catchMessage(const HawkMessages::MessagePtr& hawkMessage, const Ice::Current&) { 00035 if(hawkMessage->ice_isA("::HawkMessages::SlamDataMessage")) 00036 { 00037 HawkMessages::SlamDataMessagePtr msg = HawkMessages::SlamDataMessagePtr::dynamicCast(hawkMessage); 00038 std::cout << "Caught a SlamDataMessage!" << std::endl; 00039 HawkMessages::Pose hawkPose = msg->hawkPose; 00040 std::cout << "The BeoHawk's current Pose is (" << hawkPose.x << ", " << hawkPose.y; 00041 std::cout << ", " << hawkPose.z << ", " << hawkPose.theta << ")" << std::endl; 00042 00043 // Update State / Wake Up Agent 00044 /*if(msg->name != itsName && msg->chatter == "Hello?") { 00045 state = RECEIVED_FIRST_MESSAGE; 00046 wakeUp(); 00047 }*/ 00048 } 00049 } 00050 00051 // ###################################################################### 00052 int main (int argc, char* argv[]) { 00053 std::cout << "HawkNavigator: starting..." << std::endl; 00054 00055 HawkNavigator agent("HawkNavigator", argc, argv); 00056 agent.start(); 00057 00058 std::cout << "HawkNavigator: all done!" << std::endl; 00059 }