CIS441 Proj MS 2b

Dependencies:   TextLCD MQTT

Committer:
kchen7
Date:
Fri Dec 13 22:14:27 2019 +0000
Revision:
16:cb7cbf2cc23b
Parent:
9:f5981ced0b47
final version;

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;
kchen7 16:cb7cbf2cc23b 18 int wait_counter;
mwgold 4:ef8866873df5 19 static Road* road_in_use(Road* new_road);
mwgold 4:ef8866873df5 20 static int ready(int new_ready);
mwgold 0:ca7cb51e9fd1 21
mwgold 4:ef8866873df5 22 Road();
mwgold 0:ca7cb51e9fd1 23 int try_enter_car(int time);
mwgold 0:ca7cb51e9fd1 24 void let_cars_update();
mwgold 0:ca7cb51e9fd1 25 void wait_for_car_update();
mwgold 4:ef8866873df5 26 int check_exit_cars(int cars[]);
mwgold 4:ef8866873df5 27 void update_car_speed(int id, int speed);
kchen7 16:cb7cbf2cc23b 28 void update_wait_counter();
mwgold 0:ca7cb51e9fd1 29
mwgold 0:ca7cb51e9fd1 30 void print_status();
mwgold 8:c40e805eecba 31 void publish_car_info();
mwgold 9:f5981ced0b47 32 void wait_for_sync();
mwgold 0:ca7cb51e9fd1 33
mwgold 0:ca7cb51e9fd1 34
mwgold 0:ca7cb51e9fd1 35 private:
mwgold 0:ca7cb51e9fd1 36 AccCar* last_car;
mwgold 0:ca7cb51e9fd1 37 AccCar* cars[MAX_CARS];
mwgold 0:ca7cb51e9fd1 38
mwgold 0:ca7cb51e9fd1 39 AccCar* pending_car;
mwgold 0:ca7cb51e9fd1 40 int next_release;
mwgold 0:ca7cb51e9fd1 41 int num_cars;
mwgold 0:ca7cb51e9fd1 42 };
mwgold 0:ca7cb51e9fd1 43 #endif