Emanuel Kuflik
/
smat_controller
Road.h
- Committer:
- micallef25
- Date:
- 2019-12-10
- Revision:
- 5:e0d8e5e922f1
- Parent:
- 4:64c6fc70ddb7
- Child:
- 7:fd8e0604faaa
File content as of revision 5:e0d8e5e922f1:
#ifndef _ROAD_H_ #define _ROAD_H_ #include "AccCar.h" #include "mbed.h" #include "mqtt.h" // no need to make it dynamic since we know our max upfront #define MAX_CARS_ON_ROAD 5 #define MAC_CAR_BITS_ON_ROAD 1 << MAX_CAR_ON_ROAD class AccCar; class Road { public: EventFlags go_flags; EventFlags done_flags; Road( int id , mqtt* mqtt_singleton); void add_acc_car(AccCar* car); void let_cars_update(); void wait_for_car_update(); bool can_car_enter(int speed); int get_new_car_id(); int get_active_cars(); AccCar* get_car(int id); AccCar* get_forward_car(int id); void DESTROY_ALL_CARS(); bool simulating(); int get_road_id(); int get_road_clock(); AccCar* get_last_car(); bool synchronize(bool simulating); road_msg_t* msg; private: // for sharing intersections int road_id; mqtt* singleton; // store our cars here we only need 5 AccCar* car_table[MAX_CARS_ON_ROAD]; // how many active cars we have int active_cars; // each car gets its own bit int active_car_bits; // int road_clock; }; #endif