From 21834035950feaadac9d4c7cad82b90ee624c984 Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期一, 17 八月 2020 19:30:06 +0800 Subject: [PATCH] 传感器变更 --- lib/src/main/cpp/test_common/car_sensor.cpp | 69 ++++++++++++++++++++++++++++++++++ 1 files changed, 68 insertions(+), 1 deletions(-) diff --git a/lib/src/main/cpp/test_common/car_sensor.cpp b/lib/src/main/cpp/test_common/car_sensor.cpp index ea4c242..8e35440 100644 --- a/lib/src/main/cpp/test_common/car_sensor.cpp +++ b/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; +} -- Gitblit v1.8.0