From cea2a94fc97e79897cdfd217be8250c075974a1a Mon Sep 17 00:00:00 2001
From: yy1717 <fctom1215@outlook.com>
Date: 星期日, 07 二月 2021 17:55:42 +0800
Subject: [PATCH] 坡起限制条件和手刹起步全阶段生效.
---
lib/src/main/cpp/test_common/car_sensor.cpp | 90 +++++++++++----------------------------------
1 files changed, 22 insertions(+), 68 deletions(-)
diff --git a/lib/src/main/cpp/test_common/car_sensor.cpp b/lib/src/main/cpp/test_common/car_sensor.cpp
index 173a1e5..3c462b4 100644
--- a/lib/src/main/cpp/test_common/car_sensor.cpp
+++ b/lib/src/main/cpp/test_common/car_sensor.cpp
@@ -15,7 +15,7 @@
#define MAX_SENSOR_NUM 32
static uint16_t gpioStore;
-static int left_turn_signal, right_turn_signal;
+static bool left_turn_signal, right_turn_signal;
enum {
SENSOR_SEATBELT,
@@ -62,8 +62,7 @@
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);
+
static void ConfirmTurnSigalLater(union sigval sig);
static void flashBeamLightClose(union sigval sig);
@@ -81,7 +80,7 @@
memset(&Sensor, 0, sizeof(Sensor));
- left_turn_signal = right_turn_signal = 0;
+ left_turn_signal = right_turn_signal = false;
pthread_mutex_init(&sonser_mutex, NULL);
pthread_mutex_init(&status_rw_mutex, NULL);
@@ -245,42 +244,21 @@
}
}
-static void LRLightTimeout(union sigval sig)
-{
- AppTimer_delete(LRLightTimeout);
- if (!left_turn_signal && !right_turn_signal) {
- WriteCarStatus(TURN_SIGNAL_LAMP, OFF_LIGHT);
- } else if (left_turn_signal && right_turn_signal) {
- WriteCarStatus(TURN_SIGNAL_LAMP, HAZARD_LIGHTS);
- } else if (left_turn_signal) {
- WriteCarStatus(TURN_SIGNAL_LAMP, LEFT_TURN_LIGHT);
- } else {
- WriteCarStatus(TURN_SIGNAL_LAMP, RIGHT_TURN_LIGHT);
- }
-}
-
-static void ChangeLRLight(int light)
-{
- DEBUG("ChangeLRLight %d %d", left_turn_signal, right_turn_signal);
- if (!left_turn_signal && !right_turn_signal) {
- WriteCarStatus(TURN_SIGNAL_LAMP, OFF_LIGHT);
- } else if (left_turn_signal && right_turn_signal) {
- WriteCarStatus(TURN_SIGNAL_LAMP, HAZARD_LIGHTS);
- } else if (left_turn_signal) {
- WriteCarStatus(TURN_SIGNAL_LAMP, LEFT_TURN_LIGHT);
- } else {
- WriteCarStatus(TURN_SIGNAL_LAMP, RIGHT_TURN_LIGHT);
- }
-
- AppTimer_delete(LRLightTimeout);
- AppTimer_add(LRLightTimeout, 1500);
-}
-
static void ConfirmTurnSigalLater(union sigval sig)
{
AppTimer_delete(ConfirmTurnSigalLater);
- ChangeLRLight(sig.sival_int);
+ DEBUG("纭杞悜鐏� 宸� %d 鍙� %d", left_turn_signal, right_turn_signal);
+
+ if (!left_turn_signal && !right_turn_signal) {
+ WriteCarStatus(TURN_SIGNAL_LAMP, OFF_LIGHT);
+ } else if (left_turn_signal && right_turn_signal) {
+ WriteCarStatus(TURN_SIGNAL_LAMP, HAZARD_LIGHTS);
+ } else if (left_turn_signal) {
+ WriteCarStatus(TURN_SIGNAL_LAMP, LEFT_TURN_LIGHT);
+ } else {
+ WriteCarStatus(TURN_SIGNAL_LAMP, RIGHT_TURN_LIGHT);
+ }
}
static void flashBeamLightClose(union sigval sig)
@@ -293,43 +271,19 @@
DEBUG("鐘舵�佹敼鍙� %d = %d", id, value);
switch (id) {
case SENSOR_LEFT_TURN_SIGNAL: {
- left_turn_signal = value;
+ left_turn_signal = (bool) (value > 0);
- if (left_turn_signal) {
- AppTimer_delete(ConfirmTurnSigalLater);
- if (right_turn_signal) {
- // 鍒ゅ畾涓哄弻闂�
- AppTimer_add(ConfirmTurnSigalLater, 500, HAZARD_LIGHTS);
- } else {
- AppTimer_add(ConfirmTurnSigalLater, 200, LEFT_TURN_LIGHT);
- }
- } else {
- AppTimer_delete(ConfirmTurnSigalLater);
- if (right_turn_signal)
- AppTimer_add(ConfirmTurnSigalLater, 1500, RIGHT_TURN_LIGHT);
- else
- AppTimer_add(ConfirmTurnSigalLater, 1500, OFF_LIGHT);
- }
+ AppTimer_delete(ConfirmTurnSigalLater);
+
+ AppTimer_add(ConfirmTurnSigalLater, left_turn_signal? 100 : 1100);
break;
}
case SENSOR_RIGHT_TURN_SIGNAL: {
- right_turn_signal = value;
+ right_turn_signal = (bool) (value > 0);
- if (right_turn_signal) {
- AppTimer_delete(ConfirmTurnSigalLater);
- if (left_turn_signal) {
- // 鍒ゅ畾涓哄弻闂�
- AppTimer_add(ConfirmTurnSigalLater, 500, HAZARD_LIGHTS);
- } else {
- AppTimer_add(ConfirmTurnSigalLater, 200, RIGHT_TURN_LIGHT);
- }
- } else {
- AppTimer_delete(ConfirmTurnSigalLater);
- if (left_turn_signal)
- AppTimer_add(ConfirmTurnSigalLater, 1500, LEFT_TURN_LIGHT);
- else
- AppTimer_add(ConfirmTurnSigalLater, 1500, OFF_LIGHT);
- }
+ AppTimer_delete(ConfirmTurnSigalLater);
+
+ AppTimer_add(ConfirmTurnSigalLater, right_turn_signal? 100 : 1100);
break;
}
case SENSOR_FOG_LIGHT: {
--
Gitblit v1.8.0