00001 #ifndef BOTTLE_BOX_SORT_H
00002 #define BOTTLE_BOX_SORT_H
00003
00018 #include <math.h>
00019
00020 #include "Observer.h"
00021 #include "PlansysObservation.h"
00022 #include "mainplansys.h"
00023 #include "waypoint.h"
00024 #include "posix_message_config.h"
00025 #include "observations.h"
00026 #include "init.h"
00027
00028
00029 class BottleBoxSort: public Observer {
00030 public:
00031 BottleBoxSort( PlansysObservation * , int theTeamColor );
00032 ~BottleBoxSort();
00033 void Update( Subject *, int typeOfObservation);
00034 int GetPriority();
00035 int AgentGlobalPriority();
00036 int GetAction( controll_struct *ai_controll_struct );
00037 int SetAgentActive( int active );
00038 int StrategyInterrupted();
00039 int GetInterruptAction(interrupt_controll_struct *interrupt_controll);
00040
00041 private:
00046 int agentPriority;
00047 int inAction;
00048 int activeStrategy;
00049 int bottleBoxRelease;
00050 int bottleBoxReleased;
00051 int waitForBottleBoxReleased;
00052 int lastWaypointReached;
00053 bool changeTheObservationType;
00054 bool lastWaypointSendt;
00055 bool turnAgainstBottlesAndBoxes;
00056 short lastWaypointId;
00057 bool pickUpWaypointReached;
00058 short pickUpWaypointId;
00059 bool pickUpMessageSendt;
00060 int typeOfPickUp;
00061 bool pickUpMessageRecieved;
00062
00063 PlansysObservation *_subject;
00064
00065 ai_waypoint ai_waypoint_3d;
00066 ai_waypoint red_bottle_bin_ai_waypoint;
00067 ai_waypoint red_box_bin_ai_waypoint;
00068 ai_waypoint blue_bottle_bin_ai_waypoint;
00069 ai_waypoint blue_box_bin_ai_waypoint;
00070 ai_waypoint current_bin_ai_waypoint;
00071 ai_waypoint pick_up_waypoint;
00072 ai_waypoint local_ai_waypoint;
00073 proxy_message my_proxy_message;
00074 cv_observation my_cv_observation;
00075 cv_observation color_cv_observation;
00076 controll_struct local_controll_struct;
00077
00078
00079 };
00080
00081 #endif