yy1717
2021-02-07 cea2a94fc97e79897cdfd217be8250c075974a1a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//
// 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