yy1717
2020-08-17 21834035950feaadac9d4c7cad82b90ee624c984
lib/src/main/cpp/test_common/car_sensor.cpp
@@ -56,9 +56,11 @@
} SensorConfig[MAX_SENSOR_NUM];
static int SensorNum = 0;
static car_sensor_t Sensor;
static pthread_mutex_t sonser_mutex = PTHREAD_MUTEX_INITIALIZER;
static pthread_mutex_t status_rw_mutex = PTHREAD_MUTEX_INITIALIZER;
inline static int BX(int value);
static void WriteCarStatus(uint16_t id, int value);
static void LRLightTimeout(union sigval sig);
static void ChangeLRLight(int light);
@@ -74,6 +76,8 @@
    memset(SensorConfig, 0, sizeof(SensorConfig));
    memset(CarStatus, 0, sizeof(CarStatus));
    memset(&Sensor, 0, sizeof(Sensor));
    left_turn_signal = right_turn_signal = 0;
    flashMainBeamCnt = 0;
@@ -143,6 +147,66 @@
            }
        }
    }
}
void UpdateSensor(const car_sensor_t *s)
{
    WriteCarStatus(OBD_SPEED, s->speed);
    WriteCarStatus(ENGINE_RPM, s->engine);
    if (s->leftTurnLamp != Sensor.leftTurnLamp && s->leftTurnLamp != '#') {
        SensorChanged(SENSOR_LEFT_TURN_SIGNAL, BX(s->leftTurnLamp));
    }
    if (s->rightTurnLamp != Sensor.leftTurnLamp && s->rightTurnLamp != '#') {
        SensorChanged(SENSOR_RIGHT_TURN_SIGNAL, BX(s->rightTurnLamp));
    }
    if (s->fogLamp != Sensor.fogLamp && s->fogLamp != '#') {
        SensorChanged(SENSOR_FOG_LIGHT, BX(s->fogLamp));
    }
    if (s->clearanceLamp != Sensor.clearanceLamp && s->clearanceLamp != '#') {
        SensorChanged(SENSOR_CLEARANCE_LIGHT, BX(s->clearanceLamp));
    }
    if (s->dippedBeamLamp != Sensor.dippedBeamLamp && s->dippedBeamLamp != '#') {
        SensorChanged(SENSOR_DIPPED_BEAM_LIGHT, BX(s->dippedBeamLamp));
    }
    if (s->mainBeamLamp != Sensor.leftTurnLamp && s->mainBeamLamp != '#') {
        SensorChanged(SENSOR_MAIN_BEAM_LIGHT, BX(s->mainBeamLamp));
    }
    if (s->seatBelt != Sensor.seatBelt && s->seatBelt != '#') {
        SensorChanged(SENSOR_SEATBELT, BX(s->seatBelt));
    }
    if (s->key != Sensor.key && s->key != '#') {
        SensorChanged(SENSOR_ENGINE_START, s->key == 3? 1 : 0);
    }
    if (s->mainBreak != Sensor.mainBreak && s->mainBreak != '#') {
        SensorChanged(SENSOR_BREAK, BX(s->mainBreak));
    }
    if (s->assBreak != Sensor.assBreak && s->assBreak != '#') {
        SensorChanged(SENSOR_BREAK2, BX(s->assBreak));
    }
    if (s->handBreak != Sensor.handBreak && s->handBreak != '#') {
        SensorChanged(SENSOR_HANDBREAK, BX(s->handBreak));
    }
    if (s->lock != Sensor.lock && s->lock != '#') {
        SensorChanged(SENSOR_DOOR, BX(s->lock));
    }
    if (s->surround1 != Sensor.surround1 && s->surround1 != '#') {
        SensorChanged(SENSOR_SURROUND_CAR_1, BX(s->surround1));
    }
    if (s->surround2 != Sensor.surround2 && s->surround2 != '#') {
        SensorChanged(SENSOR_SURROUND_CAR_2, BX(s->surround2));
    }
    if (s->surround3 != Sensor.surround3 && s->surround3 != '#') {
        SensorChanged(SENSOR_SURROUND_CAR_3, BX(s->surround3));
    }
    if (s->surround4 != Sensor.surround4 && s->surround4 != '#') {
        SensorChanged(SENSOR_SURROUND_CAR_4, BX(s->surround4));
    }
    if (s->gear != Sensor.gear && s->gear != '#') {
        SensorChanged(GEAR, GEAR_N + s->gear);
    }
    Sensor = *s;
}
int ReadCarStatus(uint16_t id)
@@ -368,4 +432,7 @@
    }
}
inline static int BX(int value)
{
    return (value == 1) ? 1 : 0;
}