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