From 89939cf1e10d8889a366deffd5ff48c515f82e07 Mon Sep 17 00:00:00 2001
From: "DESKTOP-KQHDCM4\\97555" <975559679@qq.com>
Date: Mon, 3 Nov 2025 16:44:59 +0800
Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E5=A4=8D=E4=BA=86=E4=B8=8A?=
=?UTF-8?q?=E7=8F=AD=E5=8E=BB=E4=BC=A0=E6=84=9F=E5=99=A8=E7=81=B5=E6=95=8F?=
=?UTF-8?q?=E5=BA=A6=E4=BD=8E=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Project/HC32F460/MDK/HC32F460.uvoptx | 7 +-
Project/HC32F460/source/User/Inc/main.h | 4 +-
Project/HC32F460/source/User/Src/main.c | 115 ++++++++++++------------
3 files changed, 64 insertions(+), 62 deletions(-)
diff --git a/Project/HC32F460/MDK/HC32F460.uvoptx b/Project/HC32F460/MDK/HC32F460.uvoptx
index 10a7be7..175c4ce 100644
--- a/Project/HC32F460/MDK/HC32F460.uvoptx
+++ b/Project/HC32F460/MDK/HC32F460.uvoptx
@@ -120,7 +120,7 @@
0
JL2CM3
- -U4294967295 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD1FFF8000 -FC1000 -FN2 -FF0HC32F460_512K.FLM -FS00 -FL080000 -FP0($$Device:HC32F460JETA$FlashARM\HC32F460_512K.FLM) -FF1HC32F460_otp.FLM -FS13000C00 -FL13FC -FP1($$Device:HC32F460JETA$FlashARM\HC32F460_otp.FLM)
+ -U2147483647 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -TO18 -TC10000000 -TP21 -TDS8027 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD1FFF8000 -FC1000 -FN2 -FF0HC32F460_512K.FLM -FS00 -FL080000 -FP0($$Device:HC32F460JETA$FlashARM\HC32F460_512K.FLM) -FF1HC32F460_otp.FLM -FS13000C00 -FL13FC -FP1($$Device:HC32F460JETA$FlashARM\HC32F460_otp.FLM)
0
@@ -215,6 +215,11 @@
1
App.EmergencyDelay1mSCnt,0x0A
+
+ 12
+ 1
+ App.ADTrack.LeftLowShieldVPT,0x0A
+
0
diff --git a/Project/HC32F460/source/User/Inc/main.h b/Project/HC32F460/source/User/Inc/main.h
index 0a236c8..8707242 100644
--- a/Project/HC32F460/source/User/Inc/main.h
+++ b/Project/HC32F460/source/User/Inc/main.h
@@ -12,12 +12,12 @@
#define SLOPE_VPT 1000
#define FOLLOW_VPT 20
-#define SHIELD_VPT 10000
+#define SHIELD_VPT 4000
#define EME_STOP_VPT 4000
#define STOP_TIME_MS 0
#define RUN_TIME_MS 0
-#define EME_START_MS 1000
+#define EME_START_MS 2000
#define EME_STOP_MS 2000
#define SLOPE_START_MS 3000
diff --git a/Project/HC32F460/source/User/Src/main.c b/Project/HC32F460/source/User/Src/main.c
index de7597d..4de1d89 100644
--- a/Project/HC32F460/source/User/Src/main.c
+++ b/Project/HC32F460/source/User/Src/main.c
@@ -266,8 +266,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
if(abs(Oll_diff1) > abs(Orl_diff1))
{
App.LeftRunFalg = true;
-
- if((Oll_diff1+Orl_diff1) < -(App.ADTrack.LeftLowVPT/(App.Para.Layout.ControlLevel+1)))
+ if((Oll_diff1+Orl_diff1) < -(App.ADTrack.Stop_VPT))
{
BDC_UP();
App.UpFlag = true;
@@ -275,9 +274,8 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.DownFlag = false;
App.EmeFlag = false;
App.RunCollDelay1mSCnt = RUN_TIME_MS;
- App.EmergencyDelay1mSCnt = EME_START_MS;
}
- if((Oll_diff1+Orl_diff1) > App.ADTrack.LeftLowVPT/(App.Para.Layout.ControlLevel+1))
+ if((Oll_diff1+Orl_diff1) > (App.ADTrack.Stop_VPT))
{
BDC_DOWN();
App.UpFlag = false;
@@ -285,13 +283,12 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.DownFlag = true;
App.EmeFlag = false;
App.RunCollDelay1mSCnt = RUN_TIME_MS;
- App.EmergencyDelay1mSCnt = EME_START_MS;
}
}
else if(abs(Oll_diff1) < abs(Orl_diff1))
{
App.RightRunFalg = true;
- if((Oll_diff1+Orl_diff1) < -(App.ADTrack.RightLowVPT/(App.Para.Layout.ControlLevel+1)))
+ if((Oll_diff1+Orl_diff1) < -(App.ADTrack.Stop_VPT))
{
BDC_UP();
App.UpFlag = true;
@@ -299,9 +296,8 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.DownFlag = false;
App.EmeFlag = false;
App.RunCollDelay1mSCnt = RUN_TIME_MS;
- App.EmergencyDelay1mSCnt = EME_START_MS;
}
- if((Oll_diff1+Orl_diff1) > App.ADTrack.RightLowVPT/(App.Para.Layout.ControlLevel+1))
+ if((Oll_diff1+Orl_diff1) > (App.ADTrack.Stop_VPT))
{
BDC_DOWN();
App.UpFlag = false;
@@ -309,7 +305,6 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.DownFlag = true;
App.EmeFlag = false;
App.RunCollDelay1mSCnt = RUN_TIME_MS;
- App.EmergencyDelay1mSCnt = EME_START_MS;
}
}
}
@@ -323,16 +318,11 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
&& (App.LeftLowCS1237_SlopeArray[1] >= App.ADTrack.Slope_VPT)
&& (App.LeftLowCS1237_SlopeArray[2] >= App.ADTrack.Slope_VPT)
&& (App.SlopeCollDelay1mSCnt <= 0))
- || (
- (Olu_diff1 >= App.ADTrack.LeftUpVPT*5/6)
- && (Olu_diff2 >= App.ADTrack.LeftUpVPT*5/6)
- && (Olu_diff3 >= App.ADTrack.LeftUpVPT*5/6)
- && (Oll_diff1 <= -(App.ADTrack.LeftLowVPT*5/6))
+ || ((Oll_diff1 <= -(App.ADTrack.LeftLowVPT*5/6))
&& (Oll_diff2 <= -(App.ADTrack.LeftLowVPT*5/6))
&& (Oll_diff3 <= -(App.ADTrack.LeftLowVPT*5/6))))
{
- if((abs(Oll_diff1) > abs(Oru_diff1) + App.ADTrack.LeftLowShieldVPT)
- && (abs(Olu_diff1) > abs(Orl_diff1) + App.ADTrack.LeftUpShieldVPT)
+ if((abs(Oll_diff1) > abs(Orl_diff1) + App.ADTrack.LeftLowShieldVPT)
)
{
BDC_UP();
@@ -341,7 +331,6 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.DownFlag = false;
App.EmeFlag = false;
App.RunCollDelay1mSCnt = RUN_TIME_MS;
- App.EmergencyDelay1mSCnt = EME_START_MS;
}
}
else if(((App.LeftUpCS1237_SlopeArray[0] >= App.ADTrack.Slope_VPT)
@@ -351,16 +340,11 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
&& (App.LeftLowCS1237_SlopeArray[1] <= -App.ADTrack.Slope_VPT)
&& (App.LeftLowCS1237_SlopeArray[2] <= -App.ADTrack.Slope_VPT)
&& ((App.SlopeCollDelay1mSCnt <= 0)))
- || (
- (Olu_diff1 <= -App.ADTrack.LeftUpVPT)
- && (Olu_diff1 <= -App.ADTrack.LeftUpVPT)
- && (Olu_diff1 <= -App.ADTrack.LeftUpVPT)
- && (Oll_diff1 >= App.ADTrack.LeftLowVPT)
+ || ((Oll_diff1 >= App.ADTrack.LeftLowVPT)
&& (Oll_diff1 >= App.ADTrack.LeftLowVPT)
&& (Oll_diff1 >= App.ADTrack.LeftLowVPT)))
{
- if((abs(Oll_diff1) > abs(Oru_diff1) + App.ADTrack.LeftLowShieldVPT)
- && (abs(Olu_diff1) > abs(Orl_diff1) + App.ADTrack.LeftUpShieldVPT)
+ if((abs(Oll_diff1) > abs(Orl_diff1) + App.ADTrack.LeftLowShieldVPT)
)
{
BDC_DOWN();
@@ -369,7 +353,6 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.StopFlag = false;
App.EmeFlag = false;
App.RunCollDelay1mSCnt = RUN_TIME_MS;
- App.EmergencyDelay1mSCnt = EME_START_MS;
}
}
}
@@ -383,15 +366,11 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
&& (App.RightLowCS1237_SlopeArray[1] >= App.ADTrack.Slope_VPT)
&& (App.RightLowCS1237_SlopeArray[2] >= App.ADTrack.Slope_VPT)
&& (App.SlopeCollDelay1mSCnt <= 0))
- || ((Oru_diff1 >= App.ADTrack.RightUpVPT*5/6)
- && (Oru_diff2 >= App.ADTrack.RightUpVPT*5/6)
- && (Oru_diff3 >= App.ADTrack.RightUpVPT*5/6)
- && (Orl_diff1 <= -(App.ADTrack.RightLowVPT*5/6))
+ || ((Orl_diff1 <= -(App.ADTrack.RightLowVPT*5/6))
&& (Orl_diff2 <= -(App.ADTrack.RightLowVPT*5/6))
&& (Orl_diff3 <= -(App.ADTrack.RightLowVPT*5/6))))
{
- if((abs(Orl_diff1) > abs(Olu_diff1) + App.ADTrack.RightLowShieldVPT)
- && (abs(Oru_diff1) > abs(Oll_diff1) + App.ADTrack.RightUpShieldVPT)
+ if((abs(Orl_diff1) > abs(Oll_diff1) + App.ADTrack.RightLowShieldVPT)
)
{
BDC_UP();
@@ -400,7 +379,6 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.DownFlag = false;
App.EmeFlag = false;
App.RunCollDelay1mSCnt = RUN_TIME_MS;
- App.EmergencyDelay1mSCnt = EME_START_MS;
}
}
else if(((App.RightUpCS1237_SlopeArray[0] >= App.ADTrack.Slope_VPT)
@@ -410,16 +388,12 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
&& (App.RightLowCS1237_SlopeArray[1] <= -App.ADTrack.Slope_VPT)
&& (App.RightLowCS1237_SlopeArray[2] <= -App.ADTrack.Slope_VPT)
&& (App.SlopeCollDelay1mSCnt <= 0))
- || ((Oru_diff1 <= -App.ADTrack.RightUpVPT)
- && (Oru_diff2 <= -App.ADTrack.RightUpVPT)
- && (Oru_diff3 <= -App.ADTrack.RightUpVPT)
- && (Orl_diff1 >= App.ADTrack.RightLowVPT)
+ || ((Orl_diff1 >= App.ADTrack.RightLowVPT)
&& (Orl_diff2 >= App.ADTrack.RightLowVPT)
&& (Orl_diff3 >= App.ADTrack.RightLowVPT))
)
{
- if((abs(Oru_diff1) > abs(Oll_diff1) + App.ADTrack.RightUpShieldVPT)
- && (abs(Orl_diff1) > abs(Olu_diff1) + App.ADTrack.RightLowShieldVPT)
+ if((abs(Oru_diff1) > abs(Olu_diff1) + App.ADTrack.RightUpShieldVPT)
)
{
BDC_DOWN();
@@ -428,7 +402,6 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.UpFlag = false;
App.EmeFlag = false;
App.RunCollDelay1mSCnt = RUN_TIME_MS;
- App.EmergencyDelay1mSCnt = EME_START_MS;
}
}
}
@@ -438,7 +411,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
if(App.LeftRunFalg == true)
{
if(((App.CentreRunFalg == false ) && (ll_slope > App.ADTrack.Slope_VPT))
- || ((App.CentreRunFalg == true ) && (App.LeftUpCS1237_SlopeArray[0] + App.RightUpCS1237_SlopeArray[0]) > App.ADTrack.Slope_VPT))
+ || ((App.CentreRunFalg == true ) && ((App.LeftUpCS1237_SlopeArray[0] + App.RightUpCS1237_SlopeArray[0]) > App.ADTrack.Slope_VPT) && (App.SlopeCollDelay1mSCnt <= 0)))
{
BDC_STOP();
App.StopFlag = true;
@@ -447,9 +420,14 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.EmeFlag = false;
App.StopCollDelay1mSCnt = STOP_TIME_MS;
App.SlopeCollDelay1mSCnt = SLOPE_START_MS;
+ App.EmergencyDelay1mSCnt = EME_START_MS;
}
else if(((App.CentreRunFalg == false ) && (Oll_diff1 < App.ADTrack.Stop_VPT))
- || ((App.CentreRunFalg == true) && ((Oll_diff1 + Orl_diff1) < (App.ADTrack.Stop_VPT))))
+ || ((App.CentreRunFalg == true)
+ && ((Oll_diff1 + Orl_diff1) < (App.ADTrack.Stop_VPT*2/3))
+ && ((Oll_diff2 + Orl_diff2) < (App.ADTrack.Stop_VPT*2/3))
+ && ((Oll_diff3 + Orl_diff3) < (App.ADTrack.Stop_VPT*2/3))
+ ))
{
BDC_STOP();
App.StopFlag = true;
@@ -458,10 +436,11 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.EmeFlag = false;
App.StopCollDelay1mSCnt = STOP_TIME_MS;
App.SlopeCollDelay1mSCnt = SLOPE_START_MS;
+ App.EmergencyDelay1mSCnt = EME_START_MS;
}
- else if((abs(Oll_diff1) - EME_STOP_VPT) < abs(Orl_diff1)
- && (abs(Oll_diff2) - EME_STOP_VPT) < abs(Orl_diff2)
- && (abs(Oll_diff3) - EME_STOP_VPT) < abs(Orl_diff3)
+ else if((abs(Oll_diff1) + EME_STOP_VPT) < abs(Orl_diff1)
+ && (abs(Oll_diff2) + EME_STOP_VPT) < abs(Orl_diff2)
+ && (abs(Oll_diff3) + EME_STOP_VPT) < abs(Orl_diff3)
&& App.EmergencyDelay1mSCnt <= 0 && App.CentreRunFalg == false)
{
BDC_STOP();
@@ -472,7 +451,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
else if(App.RightRunFalg == true)
{
if(((App.CentreRunFalg == false ) && (rl_slope > App.ADTrack.Slope_VPT))
- || ((App.CentreRunFalg == true ) && (App.LeftUpCS1237_SlopeArray[0] + App.RightUpCS1237_SlopeArray[0]) < -App.ADTrack.Slope_VPT))
+ || ((App.CentreRunFalg == true ) && ((App.LeftUpCS1237_SlopeArray[0] + App.RightUpCS1237_SlopeArray[0]) < -App.ADTrack.Slope_VPT) && (App.SlopeCollDelay1mSCnt <= 0)))
{
BDC_STOP();
App.StopFlag = true;
@@ -481,9 +460,14 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.EmeFlag = false;
App.StopCollDelay1mSCnt = STOP_TIME_MS;
App.SlopeCollDelay1mSCnt = SLOPE_START_MS;
+ App.EmergencyDelay1mSCnt = EME_START_MS;
}
else if(((App.CentreRunFalg == false ) && (Orl_diff1 < App.ADTrack.Stop_VPT))
- || ((App.CentreRunFalg == true) && ((Oll_diff1 + Orl_diff1) < (App.ADTrack.Stop_VPT))))
+ || ((App.CentreRunFalg == true)
+ && ((Oll_diff1 + Orl_diff1) < (App.ADTrack.Stop_VPT*2/3))
+ && ((Oll_diff2 + Orl_diff2) < (App.ADTrack.Stop_VPT*2/3))
+ && ((Oll_diff3 + Orl_diff3) < (App.ADTrack.Stop_VPT*2/3))
+ ))
{
BDC_STOP();
App.StopFlag = true;
@@ -492,10 +476,11 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.EmeFlag = false;
App.StopCollDelay1mSCnt = STOP_TIME_MS;
App.SlopeCollDelay1mSCnt = SLOPE_START_MS;
+ App.EmergencyDelay1mSCnt = EME_START_MS;
}
- else if(abs(Oll_diff1) > (abs(Orl_diff1) - EME_STOP_VPT)
- && abs(Oll_diff2) > (abs(Orl_diff2) - EME_STOP_VPT)
- && abs(Oll_diff3) > (abs(Orl_diff3) - EME_STOP_VPT)
+ else if(abs(Oll_diff1) > (abs(Orl_diff1) + EME_STOP_VPT)
+ && abs(Oll_diff2) > (abs(Orl_diff2) + EME_STOP_VPT)
+ && abs(Oll_diff3) > (abs(Orl_diff3) + EME_STOP_VPT)
&& App.EmergencyDelay1mSCnt <= 0 && App.CentreRunFalg == false)
{
BDC_STOP();
@@ -509,7 +494,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
if(App.LeftRunFalg == true)
{
if(((App.CentreRunFalg == false ) && (ll_slope < -App.ADTrack.Slope_VPT))
- || ((App.CentreRunFalg == true ) && (App.LeftUpCS1237_SlopeArray[0] + App.RightUpCS1237_SlopeArray[0]) > App.ADTrack.Slope_VPT))
+ || ((App.CentreRunFalg == true ) && ((App.LeftUpCS1237_SlopeArray[0] + App.RightUpCS1237_SlopeArray[0]) > App.ADTrack.Slope_VPT) && (App.SlopeCollDelay1mSCnt <= 0)))
{
BDC_STOP();
App.StopFlag = true;
@@ -518,9 +503,14 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.EmeFlag = false;
App.StopCollDelay1mSCnt = STOP_TIME_MS;
App.SlopeCollDelay1mSCnt = SLOPE_START_MS;
+ App.EmergencyDelay1mSCnt = EME_START_MS;
}
else if(((App.CentreRunFalg == false ) && (Oll_diff1 > -App.ADTrack.Stop_VPT))
- || ((App.CentreRunFalg == true) && ((Oll_diff1 + Orl_diff1) > -App.ADTrack.Stop_VPT)))
+ || ((App.CentreRunFalg == true)
+ && ((Oll_diff1 + Orl_diff1) > -(App.ADTrack.Stop_VPT*2/3))
+ && ((Oll_diff2 + Orl_diff2) > -(App.ADTrack.Stop_VPT*2/3))
+ && ((Oll_diff3 + Orl_diff3) > -(App.ADTrack.Stop_VPT*2/3))
+ ))
{
BDC_STOP();
App.StopFlag = true;
@@ -529,10 +519,11 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.EmeFlag = false;
App.StopCollDelay1mSCnt = STOP_TIME_MS;
App.SlopeCollDelay1mSCnt = SLOPE_START_MS;
+ App.EmergencyDelay1mSCnt = EME_START_MS;
}
- else if((abs(Oll_diff1) - EME_STOP_VPT) < abs(Orl_diff1)
- && (abs(Oll_diff2) - EME_STOP_VPT) < abs(Orl_diff2)
- && (abs(Oll_diff3) - EME_STOP_VPT) < abs(Orl_diff3)
+ else if((abs(Oll_diff1) + EME_STOP_VPT) < abs(Orl_diff1)
+ && (abs(Oll_diff2) + EME_STOP_VPT) < abs(Orl_diff2)
+ && (abs(Oll_diff3) + EME_STOP_VPT) < abs(Orl_diff3)
&& App.EmergencyDelay1mSCnt <= 0 && App.CentreRunFalg == false)
{
BDC_STOP();
@@ -543,7 +534,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
else if(App.RightRunFalg == true)
{
if(((App.CentreRunFalg == false ) && (rl_slope < -App.ADTrack.Slope_VPT))
- || ((App.CentreRunFalg == true ) && (App.LeftUpCS1237_SlopeArray[0] + App.RightUpCS1237_SlopeArray[0]) > App.ADTrack.Slope_VPT))
+ || ((App.CentreRunFalg == true ) && ((App.LeftUpCS1237_SlopeArray[0] + App.RightUpCS1237_SlopeArray[0]) > App.ADTrack.Slope_VPT) && (App.SlopeCollDelay1mSCnt <= 0)))
{
BDC_STOP();
App.StopFlag = true;
@@ -552,9 +543,14 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.EmeFlag = false;
App.StopCollDelay1mSCnt = STOP_TIME_MS;
App.SlopeCollDelay1mSCnt = SLOPE_START_MS;
+ App.EmergencyDelay1mSCnt = EME_START_MS;
}
else if(((App.CentreRunFalg == false ) && (Orl_diff1 > -App.ADTrack.Stop_VPT))
- || ((App.CentreRunFalg == true) && ((Oll_diff1 + Orl_diff1) > -(App.ADTrack.Stop_VPT))))
+ || ((App.CentreRunFalg == true)
+ && ((Oll_diff1 + Orl_diff1) > -(App.ADTrack.Stop_VPT*2/3))
+ && ((Oll_diff2 + Orl_diff2) > -(App.ADTrack.Stop_VPT*2/3))
+ && ((Oll_diff3 + Orl_diff3) > -(App.ADTrack.Stop_VPT*2/3))
+ ))
{
BDC_STOP();
App.StopFlag = true;
@@ -563,10 +559,11 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.EmeFlag = false;
App.StopCollDelay1mSCnt = STOP_TIME_MS;
App.SlopeCollDelay1mSCnt = SLOPE_START_MS;
+ App.EmergencyDelay1mSCnt = EME_START_MS;
}
- else if(abs(Oll_diff1) > (abs(Orl_diff1) - EME_STOP_VPT)
- && abs(Oll_diff2) > (abs(Orl_diff2) - EME_STOP_VPT)
- && abs(Oll_diff3) > (abs(Orl_diff3) - EME_STOP_VPT)
+ else if(abs(Oll_diff1) > (abs(Orl_diff1) + EME_STOP_VPT)
+ && abs(Oll_diff2) > (abs(Orl_diff2) + EME_STOP_VPT)
+ && abs(Oll_diff3) > (abs(Orl_diff3) + EME_STOP_VPT)
&& App.EmergencyDelay1mSCnt <= 0 && App.CentreRunFalg == false)
{
BDC_STOP();