Project

General

Profile

Statistics
| Branch: | Revision:

scoutos / scout / libscout / src / behaviors / Scheduler.h @ 7ac5e9bc

History | View | Annotate | Download (746 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
10 3f72678f Priya
typedef struct{
11
  std::string name;
12 7ac5e9bc Priya
  ros::Publisher topic;
13 3f72678f Priya
} Robot;
14
15 76cefba1 Priya
class Scheduler : Behavior {
16 3f72678f Priya
  std::vector<Robot> robots;
17 2f025967 Priya
  PQWrapper* unassignedOrders;
18 97b6298e unknown
        std::vector<Order> assignedOrders;
19 3f72678f Priya
        std::queue<Robot> waitingRobots;
20 76cefba1 Priya
21
        void create_orders();
22
23
        void waiting_dance();
24
25 3f72678f Priya
  void msg_callback(const std_msgs::String::ConstPtr& msg);
26
27 97b6298e unknown
public:
28 2f025967 Priya
  Scheduler(std::string scoutname);
29 97b6298e unknown
        ~Scheduler();
30
        
31 3f72678f Priya
        void get_task(int robot);
32 97b6298e unknown
        
33
        void task_complete(Order o);
34
        void task_failed(Order o);
35
        
36
        
37
        Order get_next_item();
38
        
39
        void run();
40 3f72678f Priya
41 7ac5e9bc Priya
  ros::Subscriber robot_to_sched;
42 97b6298e unknown
    
43
};
44 76cefba1 Priya
#endif