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