Dependencies:   TextLCD MQTT

Committer:
mwgold
Date:
Thu Dec 12 22:28:02 2019 +0000
Revision:
9:f5981ced0b47
Parent:
8:c40e805eecba
Child:
16:cb7cbf2cc23b
sync with flags

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mwgold 0:ca7cb51e9fd1 1 #ifndef _ROAD_H_
mwgold 0:ca7cb51e9fd1 2 #define _ROAD_H_
mwgold 0:ca7cb51e9fd1 3
mwgold 0:ca7cb51e9fd1 4 #include "mbed.h"
mwgold 0:ca7cb51e9fd1 5 #include "AccCar.h"
mwgold 0:ca7cb51e9fd1 6
mwgold 0:ca7cb51e9fd1 7 #define MAX_CARS 5
mwgold 0:ca7cb51e9fd1 8
mwgold 0:ca7cb51e9fd1 9 class AccCar;
mwgold 4:ef8866873df5 10 class Road;
mwgold 0:ca7cb51e9fd1 11
mwgold 0:ca7cb51e9fd1 12 class Road {
mwgold 0:ca7cb51e9fd1 13 public:
mwgold 0:ca7cb51e9fd1 14 EventFlags go_flags;
mwgold 0:ca7cb51e9fd1 15 EventFlags done_flags;
mwgold 0:ca7cb51e9fd1 16 int active_cars;
mwgold 4:ef8866873df5 17 int intersection_car;
mwgold 4:ef8866873df5 18 static Road* road_in_use(Road* new_road);
mwgold 4:ef8866873df5 19 static int ready(int new_ready);
mwgold 0:ca7cb51e9fd1 20
mwgold 4:ef8866873df5 21 Road();
mwgold 0:ca7cb51e9fd1 22 int try_enter_car(int time);
mwgold 0:ca7cb51e9fd1 23 void let_cars_update();
mwgold 0:ca7cb51e9fd1 24 void wait_for_car_update();
mwgold 4:ef8866873df5 25 int check_exit_cars(int cars[]);
mwgold 4:ef8866873df5 26 void update_car_speed(int id, int speed);
mwgold 0:ca7cb51e9fd1 27
mwgold 0:ca7cb51e9fd1 28 void print_status();
mwgold 8:c40e805eecba 29 void publish_car_info();
mwgold 9:f5981ced0b47 30 void wait_for_sync();
mwgold 0:ca7cb51e9fd1 31
mwgold 0:ca7cb51e9fd1 32
mwgold 0:ca7cb51e9fd1 33 private:
mwgold 0:ca7cb51e9fd1 34 AccCar* last_car;
mwgold 0:ca7cb51e9fd1 35 AccCar* cars[MAX_CARS];
mwgold 0:ca7cb51e9fd1 36
mwgold 0:ca7cb51e9fd1 37 AccCar* pending_car;
mwgold 0:ca7cb51e9fd1 38 int next_release;
mwgold 0:ca7cb51e9fd1 39 int num_cars;
mwgold 0:ca7cb51e9fd1 40 };
mwgold 0:ca7cb51e9fd1 41 #endif