//
|
// Created by YY on 2020/3/17.
|
//
|
|
#ifndef MYAPPLICATION2_ROAD_EXAM_H
|
#define MYAPPLICATION2_ROAD_EXAM_H
|
|
#include "../driver_test.h"
|
|
|
#define GENERAL_MAP 100
|
#define DRIVE_STRAIGHT_MAP 101
|
#define OP_GEAER_MAP 102
|
#define STOP_CAR_MAP 103
|
#define THROUGH_INTERSECTION_MAP 104
|
#define TURN_LEFT_MAP 105
|
#define TURN_RIGHT_MAP 106
|
#define THROUGH_ZEBRA_CROSSING_MAP 107
|
#define THROUGH_SCHOOL_MAP 108
|
#define THROUGH_BUS_STATION_MAP 109
|
#define TURN_AROUND_MAP 110
|
|
typedef struct
|
{
|
int name;
|
int value;
|
struct RtkTime time;
|
} car_sensor_value_t;
|
|
car_sensor_value_t ReadCarSensorValue(int name);
|
|
void CrossRoadCallback(road_exam_map &RoadMap, int road, int stop_line, int active, const car_model *car);
|
int ExamSchemeCrossing(road_exam_map &RoadMap, int roadIndex, int crossIndex);
|
|
void InitRoadExam(road_exam_map &RoadMap);
|
void TerminateRoadExam(void);
|
void TestRoadGeneral(road_exam_map &RoadMap, const car_model *car, LIST_CAR_MODEL &CarModelList, double speed, int moveDirect, const struct RtkTime *rtkTime);
|
|
bool CrashTheLine(Line line, const car_model *car, LIST_CAR_MODEL &CarModelList);
|
double CalcDistanceReference(PointF point, PointF refPoint, vector<edge_t> &edge);
|
PointF CalcProjectionWithRoadEdge(vector<edge_t> &edge, PointF point);
|
|
#endif //MYAPPLICATION2_ROAD_EXAM_H
|