Project

General

Profile

Statistics
| Branch: | Revision:

root / scout / libscout / src / behaviors / Scheduler.h @ 30a3768e

History | View | Annotate | Download (853 Bytes)

1 97b6298e unknown
#ifndef _SCHEDULER_
2
#define _SCHEDULER_
3
4 76cefba1 Priya
#include "../helper_classes/PQWrapper.h"
5
#include "../helper_classes/Order.h"
6
#include "../Behavior.h"
7 97b6298e unknown
8 2f025967 Priya
#define NUM_TASKS 5
9 ad5b5826 Priya
#define WAITING_ROBOT 1
10
#define NEW_ROBOT 2
11
#define ORDERED_ROBOT 3
12 2f025967 Priya
13 3f72678f Priya
typedef struct{
14
  std::string name;
15 7ac5e9bc Priya
  ros::Publisher topic;
16 ad5b5826 Priya
  int sched_status;
17 3f72678f Priya
} Robot;
18
19 76cefba1 Priya
class Scheduler : Behavior {
20 3f72678f Priya
  std::vector<Robot> robots;
21 ad5b5826 Priya
        std::queue<Robot> waitingRobots;
22
23 2f025967 Priya
  PQWrapper* unassignedOrders;
24 97b6298e unknown
        std::vector<Order> assignedOrders;
25 76cefba1 Priya
26
        void create_orders();
27
28
        void waiting_dance();
29
30 3f72678f Priya
  void msg_callback(const std_msgs::String::ConstPtr& msg);
31
32 97b6298e unknown
public:
33 d140fd71 Yuyang
  Scheduler(std::string scoutname, Sensors* sensors);
34 97b6298e unknown
        ~Scheduler();
35
        
36 3f72678f Priya
        void get_task(int robot);
37 97b6298e unknown
        
38
        void task_complete(Order o);
39
        void task_failed(Order o);
40
        
41
        
42
        Order get_next_item();
43
        
44
        void run();
45 3f72678f Priya
46 7ac5e9bc Priya
  ros::Subscriber robot_to_sched;
47 97b6298e unknown
    
48
};
49 76cefba1 Priya
#endif