fctom1215
2020-02-19 dc2a01d4764efd33a23afcaf4f1d7543dc35c4fa
lib/src/main/cpp/test_items/park_edge.cpp
@@ -27,6 +27,7 @@
static int parkStatus;
static bool occurMoveBack, parkSuccess;
static uint32_t moveBackTimePoint;
static bool testing = false;
static bool CrashRedLine1(const Polygon *map, const car_model *car);
static bool CrashRedLine2(const Polygon *map, const car_model *car);
@@ -36,6 +37,10 @@
void StartParkEdge(int moveStatus, const struct RtkTime *rtkTime)
{
    DEBUG("进入侧方停车场地");
    testing = true;
    occurCrashRedLine1 = occurCrashRedLine2 = false;        // 这个科目规定特殊点,发生一次扣10分,而不直接淘汰
    reportExamTimeout = false;
@@ -47,14 +52,10 @@
        occurMoveBack = true;
        moveBackTimePoint = TimeMakeComposite(rtkTime->hh, rtkTime->mm, rtkTime->ss, rtkTime->mss*10);
    }
    DEBUG("进入侧方停车场地");
}
int TestParkEdge(const Polygon *map, const car_model *car, const car_model *carPrev, double speed, int moveStatus, const struct RtkTime *rtkTime)
{
    int status = 0;
    if (CrashRedLine1(map, car)) {
        if (!occurCrashRedLine1) {
            // 车轮压边线,每次扣10分
@@ -83,7 +84,8 @@
            AddExamFault(21, rtkTime);
            DEBUG("直接驶离测试区,移库不入");
        }
        status = 1;
        testing = false;
        goto TEST_END;
    }
    if (occurMoveBack) {
@@ -121,7 +123,10 @@
                // 倒车切换到前进
                if (moveStatus == 1 && tp - stopTimepoint >= STOP_CAR_TIME) {
                    if (parkStatus == 0) {
                        if (EnterParking(map, car)) {
                            parkStatus = 1;
                            parkSuccess = true;
                        }
                    }
                    if (!parkSuccess) {
@@ -149,7 +154,6 @@
        prevMoveStatus = moveStatus;
    } else if (moveStatus == 0 && parkStatus == 0) {
        uint32_t tp = TimeMakeComposite(rtkTime->hh, rtkTime->mm, rtkTime->ss, rtkTime->mss*10);
        tp = tp * 1000 + rtkTime->mss * 10;
        if (tp - stopTimepoint >= STOP_CAR_TIME) {
            if (EnterParking(map, car)) {
@@ -160,8 +164,8 @@
            }
        }
    }
    return status;
TEST_END:
    return testing ? 0 : 1;
}
// 车轮是否压道路边线