HawkNavigator.C

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 }
Generated on Sun May 8 08:05:38 2011 for iLab Neuromorphic Vision Toolkit by  doxygen 1.6.3