00001
00013 #ifndef PLANSYS_OBSERVATION_H
00014 #define PLANSYS_OBSERVATION_H
00015
00016 #include "Observer.h"
00017
00018 #include "observations.h"
00019 #include "waypoint.h"
00020 #include "MessageHandler.h"
00021 #include "posix_message_queue.h"
00022 #include "posix_message_config.h"
00023
00024 class PlansysObservation : public Subject {
00025 public:
00026 PlansysObservation();
00027 ai_waypoint GetPosObservation();
00028 ai_waypoint GetWaypointReachedObservation();
00029 cv_observation GetCvObservation();
00030 cv_observation GetCvColorObservation();
00031 time_message GetTimeObservation();
00032 proxy_message GetProxyMessage();
00033 collision_detection_message GetCollisionMessage();
00034 int NewObservation(pmq_message pm, int typeOfObservation);
00035 void GetAgentPriority( void );
00036 int PerformInterruptStrategy( interrupt_controll_struct *ai_interrupt_controll_struct );
00037 int PerformStrategy( controll_struct *ai_controll_struct );
00038 int ClearTheActiveStrategy();
00039 int GetAvtiveStrategy();
00040
00041 vector<int> interruptedStrategyes;
00042
00043 private:
00044 int activeStrategy;
00045 int activeStrategyValue;
00046 int strategyCandidate;
00047 int ChoseStrategy();
00048 int bottleBoxTypeOfPickUp;
00049 ai_waypoint ai_waypoint_3d, *ai_waypoint_3d_ptr;
00050 ai_waypoint last_ai_waypoint_3d_reached;
00051 cv_observation my_cv_observation;
00052 cv_observation color_cv_observation;
00053 proxy_message my_proxy_message;
00054 collision_detection_message collision_message;
00055 time_message main_time;
00056
00057 };
00058
00059 #endif