| | |
| | | |
| | | static int checkCnt; |
| | | static bool turn_left_active, flash_beam_active; |
| | | |
| | | static int examTtsSeq = 0; |
| | | static bool testing; |
| | | |
| | |
| | | content[i].itemStatus = TTS_NOT_START; |
| | | } |
| | | testing = true; |
| | | |
| | | AppTimer_delete(DummyLightCheckActive); |
| | | AppTimer_delete(ExamDummyLight); |
| | | AppTimer_add(ExamDummyLight, D_SEC(2)); |
| | | } |
| | |
| | | |
| | | 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) { |
| | |
| | | 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: |
| | |
| | | } |
| | | |
| | | 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; |
| | | } |
| | |
| | | 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); |