Dependencies:   TextLCD MQTT

Road.h

Committer:
mwgold
Date:
2019-12-12
Revision:
9:f5981ced0b47
Parent:
8:c40e805eecba
Child:
16:cb7cbf2cc23b

File content as of revision 9:f5981ced0b47:

#ifndef _ROAD_H_
#define _ROAD_H_

#include "mbed.h"
#include "AccCar.h"

#define MAX_CARS 5

class AccCar;
class Road;

class Road {
public:
    EventFlags go_flags;
    EventFlags done_flags;
    int active_cars;
    int intersection_car;
    static Road* road_in_use(Road* new_road);
    static int ready(int new_ready);
    
    Road();
    int try_enter_car(int time);
    void let_cars_update();
    void wait_for_car_update();
    int check_exit_cars(int cars[]);
    void update_car_speed(int id, int speed);
    
    void print_status();
    void publish_car_info();
    void wait_for_sync();
    
    
private:
    AccCar* last_car;
    AccCar* cars[MAX_CARS];
    
    AccCar* pending_car;
    int next_release;
    int num_cars;
};
#endif