HawkVisionSign.C
00001
00002
00003
00004
00005
00006 #include "Robots/BeoHawk/computer/HawkVisionSign.H"
00007
00008
00009 HawkVisionSign::HawkVisionSign(std::string myName, int argc, char* argv[])
00010 : HawkAgent(myName, argc, argv) {
00011 state = INIT;
00012 }
00013
00014
00015 void HawkVisionSign::registerTopics() {
00016 registerPublisher("RoomFinder");
00017 registerSubscription("ControlRoomVision");
00018 registerSubscription("CameraImage");
00019 }
00020
00021
00022 bool HawkVisionSign::scheduler() {
00023 if(state == INIT) {
00024
00025 return true;
00026 }
00027 else if(state == IDLE) {
00028
00029 return true;
00030 }else if(state == PROCESSING){
00031 doSignSearch();
00032 return true;
00033 }
00034
00035 return false;
00036 }
00037
00038
00039 void HawkVisionSign::catchMessage(const HawkMessages::MessagePtr& hawkMessage, const Ice::Current&) {
00040 if(hawkMessage->ice_isA("::HawkMessages::ControlDriveVision"))
00041 {
00042 HawkMessages::ControlDriveVisionMessage msg = HawkMessages::ControlDriveVisionMessage::dynamicCast(hawkMessage);
00043 std::cout << "signVisionOn" << std::endl;
00044
00045
00046 if(msg->signVisionOn) {
00047 state = IDLE;
00048 wakeUp();
00049 }
00050 }
00051 if(hawkMessage->is_A("::HawkMessages::CameraImageMessage") && state != PROCESSING)
00052 {
00053 HawkMessages::CameraImageMessage msg = HawkMessages::ControlDriveVisionMessage::dynamicCast(hawkMessage);
00054 std::cout<<"Got camera msg!"<<std::endl;
00055
00056 if(msg->cameraID == "forward"){
00057 state = PROCESSING;
00058 }
00059 }
00060 }
00061
00062
00063
00064
00065 void HawkVisionSign::doSignSearch(){
00066
00067 }
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101 int main (int argc, char* argv[]) {
00102 std::cout << "HawkVisionSign: starting..." << std::endl;
00103
00104 HawkVisionSign agent("HawkVisionSign", argc, argv);
00105 agent.start();
00106
00107 std::cout << "HawkVisionSign: all done!" << std::endl;
00108 }