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