yy1717
2020-09-16 611f51ed073de48e83f46d47c82cd5ebe61258d7
lib/src/main/cpp/driver_test.cpp
@@ -54,7 +54,8 @@
enum {
    TEST_TYPE_AREA = 2,
    TEST_TYPE_ROAD_DUMMY_LIGHT,
    TEST_TYPE_ROAD_TRUE_LIGHT
    TEST_TYPE_ROAD_TRUE_LIGHT,
    TEST_TYPE_ROAD_CALIBRATE
};
static bool ExamStart = false;
@@ -109,7 +110,8 @@
    RoadMap.roads.clear();
    RoadMap.specialAreas.clear();
    RoadMap.triggerLines.clear();
    RoadMap.forbidLines.clear();
    RoadMap.examScheme.clear();
    CarSensorInit();
@@ -192,18 +194,22 @@
    vector<road_t>().swap(RoadMap.roads);
    vector<special_area_t>().swap(RoadMap.specialAreas);
    vector<trigger_line_t>().swap(RoadMap.triggerLines);
    vector<forbid_line_t>().swap(RoadMap.forbidLines);
    vector<scheme_t>().swap(RoadMap.examScheme);
}
void SetRoadMap(road_exam_map &map)
void SetRoadMap(road_exam_map &map, vector<scheme_t> &scheme)
{
    if (ExamStart) return;
    RoadMap.roads.assign(map.roads.begin(), map.roads.end());
    RoadMap.specialAreas.assign(map.specialAreas.begin(), map.specialAreas.end());
    RoadMap.triggerLines.assign(map.triggerLines.begin(), map.triggerLines.end());
//    RoadMap.triggerLines.assign(map.triggerLines.begin(), map.triggerLines.end());
    RoadMap.forbidLines.assign(map.forbidLines.begin(), map.forbidLines.end());
    DEBUG("得到新的路考地图 路数量 %d 特殊区域数量 %d 触发线数量 %d 其他禁止线数量 %d", RoadMap.roads.size(), RoadMap.specialAreas.size(), RoadMap.triggerLines.size(), RoadMap.forbidLines.size());
    RoadMap.examScheme.assign(scheme.begin(), scheme.end());
    DEBUG("得到新的路考地图 路数量 %d 特殊区域数量 %d 其他禁止线数量 %d 项目数量 %d", RoadMap.roads.size(), RoadMap.specialAreas.size(), RoadMap.forbidLines.size(), RoadMap.examScheme.size());
}
void SetCarMeasurePoint(double *basePoint, int *axial, int *left_front_tire,
@@ -402,12 +408,18 @@
            if (type == TEST_TYPE_ROAD_DUMMY_LIGHT) {
                exam_dummy_light = 0;           //0
                RoadMap.calibrate = 0;
            }
            if (type == TEST_TYPE_ROAD_TRUE_LIGHT) {
                RoadMap.calibrate = 0;
                InitRoadExam(RoadMap);
            }
            if (type == TEST_TYPE_AREA) {
                InitAreaExam();
            }
            if (type == TEST_TYPE_ROAD_CALIBRATE) {
                RoadMap.calibrate = 1;
                InitRoadExam(RoadMap);
            }
        }
        MA_SendExamStatus(1, 0);
@@ -865,6 +877,27 @@
    return true;
}
void RoadChange(int road, int status)
{
    struct roadStatusBrief brief;
    brief.road_id = road;
    brief.status = status;
    MA_SendRoadStatus(&brief);
}
void CrossingChange(int road, int crossing, int status)
{
    struct crossingStatusBrief brief;
    brief.road_id = road;
    brief.crossing_index = crossing;
    brief.status = status;
    MA_SendCrossingStatus(&brief);
}
void AddExamFault(int wrong, const struct RtkTime *rtkTime)
{
    struct ExamFault fault;