From 25777013517d1bd398a98504826a417236706af2 Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期二, 24 三月 2020 19:01:29 +0800
Subject: [PATCH] 车辆信号完善,路边停车完善。
---
lib/src/main/cpp/test_items2/dummy_light.cpp | 30 +++++++++++++++++++++++-------
1 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/lib/src/main/cpp/test_items2/dummy_light.cpp b/lib/src/main/cpp/test_items2/dummy_light.cpp
index 3f7298d..9c7fc71 100644
--- a/lib/src/main/cpp/test_items2/dummy_light.cpp
+++ b/lib/src/main/cpp/test_items2/dummy_light.cpp
@@ -25,6 +25,7 @@
static int checkCnt;
static bool turn_left_active, flash_beam_active;
+
static int examTtsSeq = 0;
static bool testing;
@@ -43,6 +44,8 @@
content[i].itemStatus = TTS_NOT_START;
}
testing = true;
+
+ AppTimer_delete(DummyLightCheckActive);
AppTimer_delete(ExamDummyLight);
AppTimer_add(ExamDummyLight, D_SEC(2));
}
@@ -71,9 +74,11 @@
static void DummyLightCheckActive(union sigval sig)
{
- DEBUG("DummyLightCheckActive item = %d", sig.sival_int);
+ int active = sig.sival_int;
+ AppTimer_delete(DummyLightCheckActive);
+ DEBUG("DummyLightCheckActive item = %d", active);
- switch (sig.sival_int) {
+ switch (active) {
case DRIVE_AT_NIGHT:
case TURN_ON_MAIN_BEAM_LAMP:
if (ReadCarStatus(MAIN_BEAM_LAMP) != MAIN_BEAM_LIGHT) {
@@ -95,8 +100,16 @@
case THROUGE_CROSSWALK:
case THROUGE_CURVE:
case THROUGE_CROSSROADS:
- if (ReadCarStatus(FLASH_BEAM_LAMP) != FLASH_BEAM_LIGHT) {
- AddExamFault(58, &currRtkTime);
+ if (++checkCnt < 5) {
+ if (ReadCarStatus(FLASH_BEAM_LAMP) == FLASH_BEAM_LIGHT) {
+ flash_beam_active = true;
+ }
+ AppTimer_add(DummyLightCheckActive, D_SEC(1), active);
+ return;
+ } else {
+ if (!flash_beam_active) {
+ AddExamFault(58, &currRtkTime);
+ }
}
break;
case OVERTAKE:
@@ -130,7 +143,7 @@
}
for (int i = 0; i < contentNum; ++i) {
- if (content[i].item == sig.sival_int) {
+ if (content[i].item == active) {
content[i].itemStatus = CHECK_OPERATE;
break;
}
@@ -161,8 +174,11 @@
checkCnt = 0;
turn_left_active = flash_beam_active = false;
AppTimer_add(DummyLightCheckActive, D_SEC(1), content[i].item);
- }
- else if (content[i].item >= 100)
+ } else if (content[i].item == THROUGE_CROSSWALK || content[i].item == THROUGE_CURVE || content[i].item == THROUGE_CROSSROADS) {
+ checkCnt = 0;
+ flash_beam_active = false;
+ AppTimer_add(DummyLightCheckActive, D_SEC(1), content[i].item);
+ } else if (content[i].item >= 100)
AppTimer_add(DummyLightCheckActive, D_SEC(3), content[i].item);
else
AppTimer_add(DummyLightCheckActive, D_SEC(5), content[i].item);
--
Gitblit v1.8.0