From 7c5b25c8617807635e9f272ebe9e98304d07cf2f Mon Sep 17 00:00:00 2001 From: fctom1215 <fctom1215@outlook.com> Date: 星期五, 14 二月 2020 14:28:25 +0800 Subject: [PATCH] 增加单片机信息传递。 --- lib/src/main/cpp/test_items/stop_and_start.cpp | 28 ++++++++++++---------------- 1 files changed, 12 insertions(+), 16 deletions(-) diff --git a/lib/src/main/cpp/test_items/stop_and_start.cpp b/lib/src/main/cpp/test_items/stop_and_start.cpp index 1398ee5..9c0c69e 100644 --- a/lib/src/main/cpp/test_items/stop_and_start.cpp +++ b/lib/src/main/cpp/test_items/stop_and_start.cpp @@ -16,12 +16,6 @@ using namespace std; -enum -{ - STOP_CAR, - START_CAR -}; - const double STOP_DISTANCE_THRESHOLD_RED = 0.5; const double EDGE_DISTANCE_THRESHOLD_RED = 0.5; const double EDGE_DISTANCE_THRESHOLD_YELLOW = 0.3; @@ -38,7 +32,7 @@ static PointF stopPoint; static int prevMoveDirect; -static uint64_t stopTimepoint = 0; +static uint32_t stopTimepoint = 0; static bool stopCar = false; static uint32_t stopCarTime; static bool occurCrashRedLine = false; @@ -61,9 +55,7 @@ prevMoveDirect = moveDirect; if (moveDirect == 0) { - stopTimepoint = TimeMakeComposite(2000 + rtkTime->YY, rtkTime->MM, rtkTime->DD, rtkTime->hh, - rtkTime->mm, rtkTime->ss); - stopTimepoint = stopTimepoint * 1000 + rtkTime->mss * 10; + stopTimepoint = TimeMakeComposite(rtkTime->hh, rtkTime->mm, rtkTime->ss, rtkTime->mss*10); } occurCrashRedLine = false; @@ -96,18 +88,16 @@ if (prevMoveDirect != moveDirect) { if (moveDirect == 0) { - stopTimepoint = TimeMakeComposite(2000 + rtkTime->YY, rtkTime->MM, rtkTime->DD, rtkTime->hh, rtkTime->mm, rtkTime->ss); - stopTimepoint = stopTimepoint * 1000 + rtkTime->mss*10; + stopTimepoint = TimeMakeComposite(rtkTime->hh, rtkTime->mm, rtkTime->ss, rtkTime->mss*10); } prevMoveDirect = moveDirect; } else if (moveDirect == 0) { - uint64_t tp = TimeMakeComposite(2000 + rtkTime->YY, rtkTime->MM, rtkTime->DD, rtkTime->hh, rtkTime->mm, rtkTime->ss); - tp = tp * 1000 + rtkTime->mss * 10; + uint32_t tp = TimeMakeComposite(rtkTime->hh, rtkTime->mm, rtkTime->ss, rtkTime->mss*10); if (tp - stopTimepoint >= STOP_CAR_TIME && !stopCar) { // 杩欓噷鍒ゆ柇鍋滆溅鐘舵�� stopCar = true; - stopCarTime = TimeMakeComposite(2000 + rtkTime->YY, rtkTime->MM, rtkTime->DD, rtkTime->hh, rtkTime->mm, rtkTime->ss); + stopCarTime = TimeMakeComposite(rtkTime->hh, rtkTime->mm, rtkTime->ss, rtkTime->mss*10); stopPoint = car->carXY[car->body[0]]; @@ -161,9 +151,10 @@ } } + if (!reportStartTimeout && (IntersectionOfLine(map->point[4], stopPoint, car->carXY[car->axial[AXIAL_FRONT]]) != -1 || DistanceOf(stopPoint, car->carXY[car->axial[AXIAL_FRONT]]) < 0.1)) { - if (TimeMakeComposite(2000 + rtkTime->YY, rtkTime->MM, rtkTime->DD, rtkTime->hh, rtkTime->mm, rtkTime->ss) - stopCarTime > CAR_START_TIMEOUT) { + if (TimeMakeComposite(rtkTime->hh, rtkTime->mm, rtkTime->ss, rtkTime->mss*10) - stopCarTime > CAR_START_TIMEOUT) { // 璧锋鏃堕棿瓒呰繃30绉掞紝涓嶅悎鏍� AddExamFault(15, rtkTime); DEBUG("璧锋鏃堕棿瓒呰繃30绉�"); @@ -217,6 +208,9 @@ int rel1 = IntersectionOfLine(map->point[4], map->point[3], car->carXY[car->body[0]]); int rel2 = IntersectionOfLine(map->point[5], map->point[6], car->carXY[car->body[0]]); + DEBUG("%d %d %f, %f", car->body[0], car->axial[AXIAL_FRONT], car->carXY[car->body[0]].X, car->carXY[car->body[0]].Y); + DEBUG("rel1 %d rel2 %d", rel1, rel2); + if (rel1 == 1) { Line line1; @@ -231,6 +225,8 @@ dis = DistanceOf(car->carXY[car->body[0]], line2); } + DEBUG("DistanceOfHead2Stopline dis %f", dis); + return dis; } -- Gitblit v1.8.0