下班备份

This commit is contained in:
2025-10-16 18:54:13 +08:00
parent 3b1cce2275
commit a6f4d0fb17
3 changed files with 39 additions and 21 deletions
+5
View File
@@ -225,6 +225,11 @@
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<ItemText>App.CentreRunFalg,0x0A</ItemText> <ItemText>App.CentreRunFalg,0x0A</ItemText>
</Ww> </Ww>
<Ww>
<count>14</count>
<WinNumber>1</WinNumber>
<ItemText>App.EvenRunDelay1mSCnt</ItemText>
</Ww>
</WatchWindow1> </WatchWindow1>
<MemoryWindow1> <MemoryWindow1>
<Mm> <Mm>
+1
View File
@@ -98,6 +98,7 @@ typedef struct {
uint32_t Read1mSDelayCnt; uint32_t Read1mSDelayCnt;
uint32_t Uart1Delay1mSCnt; uint32_t Uart1Delay1mSCnt;
uint32_t StopCollDelay1mSCnt; uint32_t StopCollDelay1mSCnt;
uint32_t RunCollDelay1mSCnt;
uint32_t EvenRunDelay1mSCnt; uint32_t EvenRunDelay1mSCnt;
uint8_t FeedDogDlyCnt; uint8_t FeedDogDlyCnt;
+33 -21
View File
@@ -217,10 +217,10 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.LeftRunFalg = false; App.LeftRunFalg = false;
App.RightRunFalg = false; App.RightRunFalg = false;
App.CentreRunFalg = false; App.CentreRunFalg = false;
if(((ll_ad[0] < App.ADTrack.LeftLow_Org_AdZero) if(((ll_ad[0] > App.ADTrack.LeftLow_Org_AdZero)
&& (rl_ad[0] < App.ADTrack.RightLow_Org_AdZero)) && (rl_ad[0] > App.ADTrack.RightLow_Org_AdZero))
|| ((ll_ad[0] > App.ADTrack.LeftLow_Org_AdZero) || ((ll_ad[0] < App.ADTrack.LeftLow_Org_AdZero)
&& (rl_ad[0] > App.ADTrack.RightLow_Org_AdZero))) && (rl_ad[0] < App.ADTrack.RightLow_Org_AdZero)))
{ {
App.CentreRunFalg = true; App.CentreRunFalg = true;
if(abs(Oll_diff1) > abs(Orl_diff1)) if(abs(Oll_diff1) > abs(Orl_diff1))
@@ -231,21 +231,23 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
{ {
App.RightRunFalg = true; App.RightRunFalg = true;
} }
if(Oll_diff1 < -App.ADTrack.LeftLowVPT if(((Oll_diff1 + Orl_diff1) < -(App.ADTrack.LeftLowVPT + App.ADTrack.RightLowVPT)/2)
|| Orl_diff1 < -App.ADTrack.RightLowVPT) && (((App.LeftUpCS1237_SlopeArray[0] + App.RightUpCS1237_SlopeArray[0]) < -App.ADTrack.Slope_VPT/4)))
{ {
BDC_UP(); BDC_UP();
App.UpFlag = true; App.UpFlag = true;
App.StopFlag = false; App.StopFlag = false;
App.DownFlag = false; App.DownFlag = false;
App.RunCollDelay1mSCnt = RUN_TIME_MS;
} }
else if(Oll_diff1 > App.ADTrack.LeftLowVPT else if(((Oll_diff1 + Orl_diff1) > (App.ADTrack.LeftLowVPT + App.ADTrack.RightLowVPT)/2)
|| Orl_diff1 > App.ADTrack.RightLowVPT) && (((App.LeftUpCS1237_SlopeArray[0] + App.RightUpCS1237_SlopeArray[0]) > App.ADTrack.Slope_VPT/4)))
{ {
BDC_DOWN(); BDC_DOWN();
App.UpFlag = false; App.UpFlag = false;
App.StopFlag = false; App.StopFlag = false;
App.DownFlag = true; App.DownFlag = true;
App.RunCollDelay1mSCnt = RUN_TIME_MS;
} }
} }
else if((LeftSlopeSum > RightSlopeSum && LeftDiffSum > RightDiffSum)) else if((LeftSlopeSum > RightSlopeSum && LeftDiffSum > RightDiffSum))
@@ -353,11 +355,12 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
} }
} }
} }
else if(App.DownFlag == true) else if(App.DownFlag == true && App.RunCollDelay1mSCnt <= 0)
{ {
if(App.LeftRunFalg == true) if(App.LeftRunFalg == true)
{ {
if(ll_slope > App.ADTrack.Slope_VPT) 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/3))
{ {
BDC_STOP(); BDC_STOP();
App.StopFlag = true; App.StopFlag = true;
@@ -365,7 +368,8 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.UpFlag = false; App.UpFlag = false;
App.StopCollDelay1mSCnt = STOP_TIME_MS; App.StopCollDelay1mSCnt = STOP_TIME_MS;
} }
else if(Oll_diff1 < App.ADTrack.Stop_VPT) else if(((App.CentreRunFalg == false ) && (Oll_diff1 < App.ADTrack.Stop_VPT))
|| ((App.CentreRunFalg == true) && ((Oll_diff1 + Orl_diff1) < (App.ADTrack.Stop_VPT))))
{ {
BDC_STOP(); BDC_STOP();
App.StopFlag = true; App.StopFlag = true;
@@ -376,7 +380,8 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
} }
else if(App.RightRunFalg == true) else if(App.RightRunFalg == true)
{ {
if(rl_slope > App.ADTrack.Slope_VPT) 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/3))
{ {
BDC_STOP(); BDC_STOP();
App.StopFlag = true; App.StopFlag = true;
@@ -384,7 +389,8 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.UpFlag = false; App.UpFlag = false;
App.StopCollDelay1mSCnt = STOP_TIME_MS; App.StopCollDelay1mSCnt = STOP_TIME_MS;
} }
else if(Orl_diff1 < App.ADTrack.Stop_VPT) else if(((App.CentreRunFalg == false ) && (Orl_diff1 < App.ADTrack.Stop_VPT))
|| ((App.CentreRunFalg == true) && ((Oll_diff1 + Orl_diff1) < (App.ADTrack.Stop_VPT))))
{ {
BDC_STOP(); BDC_STOP();
App.StopFlag = true; App.StopFlag = true;
@@ -394,11 +400,12 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
} }
} }
} }
else if(App.UpFlag == true) else if(App.UpFlag == true && App.RunCollDelay1mSCnt <= 0)
{ {
if(App.LeftRunFalg == true) if(App.LeftRunFalg == true)
{ {
if(ll_slope < -App.ADTrack.Slope_VPT) 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/3))
{ {
BDC_STOP(); BDC_STOP();
App.StopFlag = true; App.StopFlag = true;
@@ -406,7 +413,8 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.UpFlag = false; App.UpFlag = false;
App.StopCollDelay1mSCnt = STOP_TIME_MS; App.StopCollDelay1mSCnt = STOP_TIME_MS;
} }
else if(Oll_diff1 > -App.ADTrack.Stop_VPT) else if(((App.CentreRunFalg == false ) && (Oll_diff1 > -App.ADTrack.Stop_VPT))
|| ((App.CentreRunFalg == true) && ((Oll_diff1 + Orl_diff1)> -(App.ADTrack.Stop_VPT))))
{ {
BDC_STOP(); BDC_STOP();
App.StopFlag = true; App.StopFlag = true;
@@ -417,7 +425,8 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
} }
else if(App.RightRunFalg == true) else if(App.RightRunFalg == true)
{ {
if(rl_slope < -App.ADTrack.Slope_VPT) 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/3))
{ {
BDC_STOP(); BDC_STOP();
App.StopFlag = true; App.StopFlag = true;
@@ -425,7 +434,8 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
App.UpFlag = false; App.UpFlag = false;
App.StopCollDelay1mSCnt = STOP_TIME_MS; App.StopCollDelay1mSCnt = STOP_TIME_MS;
} }
else if(Orl_diff1 > -App.ADTrack.Stop_VPT) else if(((App.CentreRunFalg == false ) && (Orl_diff1 > -App.ADTrack.Stop_VPT))
|| ((App.CentreRunFalg == true) && ((Oll_diff1 + Orl_diff1) > -(App.ADTrack.Stop_VPT))))
{ {
BDC_STOP(); BDC_STOP();
App.StopFlag = true; App.StopFlag = true;
@@ -529,9 +539,9 @@ static void AppInit(void)
RIGHTLOW_CS1237_Init(); RIGHTLOW_CS1237_Init();
App.Status = APP_STATUS_WAIT; App.Status = APP_STATUS_WAIT;
App.Status = APP_STATUS_UP1; App.TD1mSDelayCnt = 1000;
App.TD1mSDelayCnt = TRAVEL_TIME_MS; // App.Status = APP_STATUS_UP1;
//App.TD1mSDelayCnt = 1000; // App.TD1mSDelayCnt = TRAVEL_TIME_MS;
App.RStatus = READ_STATUS_START; App.RStatus = READ_STATUS_START;
GradeControl(App.Para.Layout.ControlLevel);//等级控制 GradeControl(App.Para.Layout.ControlLevel);//等级控制
@@ -756,6 +766,8 @@ static void App1mSRoutine(void)
App.Uart1Delay1mSCnt--; App.Uart1Delay1mSCnt--;
if(App.StopCollDelay1mSCnt > 0) if(App.StopCollDelay1mSCnt > 0)
App.StopCollDelay1mSCnt--; App.StopCollDelay1mSCnt--;
if(App.RunCollDelay1mSCnt > 0)
App.RunCollDelay1mSCnt--;
if(App.EvenRunning == true) if(App.EvenRunning == true)
App.EvenRunDelay1mSCnt++; App.EvenRunDelay1mSCnt++;