yy1717
2021-01-19 87156fa3adfa2e3232a6f6e612584aa8a4ebaea1
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: {