From 87156fa3adfa2e3232a6f6e612584aa8a4ebaea1 Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期二, 19 一月 2021 18:40:25 +0800 Subject: [PATCH] 添加模拟灯光 --- lib/src/main/cpp/test_common/car_sensor.cpp | 27 +++++++++++---------------- 1 files changed, 11 insertions(+), 16 deletions(-) diff --git a/lib/src/main/cpp/test_common/car_sensor.cpp b/lib/src/main/cpp/test_common/car_sensor.cpp index 8caa027..1a1a20b 100644 --- a/lib/src/main/cpp/test_common/car_sensor.cpp +++ b/lib/src/main/cpp/test_common/car_sensor.cpp @@ -16,7 +16,6 @@ static uint16_t gpioStore; static int left_turn_signal, right_turn_signal; -static int flashMainBeamCnt; enum { SENSOR_SEATBELT, @@ -67,7 +66,7 @@ static void ChangeLRLight(int light); static void ConfirmTurnSigalLater(union sigval sig); static void flashBeamLightClose(union sigval sig); -static void confirmFlashBeamLightLater(union sigval sig); + static void SensorChanged(int id, int value); void CarSensorInit(void) @@ -83,7 +82,6 @@ memset(&Sensor, 0, sizeof(Sensor)); left_turn_signal = right_turn_signal = 0; - flashMainBeamCnt = 0; pthread_mutex_init(&sonser_mutex, NULL); pthread_mutex_init(&status_rw_mutex, NULL); @@ -272,15 +270,9 @@ WriteCarStatus(FLASH_BEAM_LAMP, OFF_LIGHT); } -static void confirmFlashBeamLightLater(union sigval sig) -{ - AppTimer_delete(confirmFlashBeamLightLater); - flashMainBeamCnt = 0; -} - static void SensorChanged(int id, int value) { -// DEBUG("鐘舵�佹敼鍙� %d = %d", id, value); + DEBUG("鐘舵�佹敼鍙� %d = %d", id, value); switch (id) { case SENSOR_LEFT_TURN_SIGNAL: { left_turn_signal = value; @@ -335,21 +327,24 @@ break; } case SENSOR_MAIN_BEAM_LIGHT: { + static uint32_t t1 = 0; + if (value == 0) { WriteCarStatus(MAIN_BEAM_LAMP, OFF_LIGHT); } else { WriteCarStatus(MAIN_BEAM_LAMP, MAIN_BEAM_LIGHT); } - if (++flashMainBeamCnt > 3) { // 浜�-鐏�-浜�-鐏� - WriteCarStatus(FLASH_BEAM_LAMP, FLASH_BEAM_LIGHT); - + if (value != 0) { + t1 = AppTimer_GetTickCount(); + } else if (AppTimer_GetTickCount() - t1 < D_SEC(3)) { + // 3绉掑唴瀹屾垚浜伃锛岄棯鐏� + if (ReadCarStatus(FLASH_BEAM_LAMP) != FLASH_BEAM_LIGHT) { + WriteCarStatus(FLASH_BEAM_LAMP, FLASH_BEAM_LIGHT); + } AppTimer_delete(flashBeamLightClose); AppTimer_add(flashBeamLightClose, D_SEC(2)); } - - AppTimer_delete(confirmFlashBeamLightLater); - AppTimer_add(confirmFlashBeamLightLater, D_SEC(3)); break; } case SENSOR_SEATBELT: { -- Gitblit v1.8.0