|
@@ -14,44 +14,55 @@
|
|
|
#include "math.h"
|
|
|
#include "AppFunc.h"
|
|
|
#include "Std_Types.h"
|
|
|
+#define Lock 0
|
|
|
+#define Unlock 1
|
|
|
+#define LockCtrl() PSwtDrv_Interface(_PSWT_INDEX_HBAK1_CHAN, Lock)
|
|
|
+#define UnlockCtrl() PSwtDrv_Interface(_PSWT_INDEX_HBAK1_CHAN, Unlock)
|
|
|
void LockAndUnlockCtrl()
|
|
|
{
|
|
|
- static uint16 TimerCounter = 0;
|
|
|
- TimerCounter = TimerCounter + 10;
|
|
|
-
|
|
|
+ static uint16 LockDelay = 0;
|
|
|
+ static uint8 CtrlFlg = 0;
|
|
|
if (!ebcd_flg_ebcEolDone) //下线检测模式
|
|
|
{
|
|
|
- static uint16 Delay = 0;
|
|
|
- Delay = Delay + 10;
|
|
|
- if (Delay > 5000)
|
|
|
- {
|
|
|
- PSwtDrv_Interface(_PSWT_INDEX_HBAK1_CHAN, 0);
|
|
|
- }
|
|
|
- else
|
|
|
+ if(ebcd_st_lockSensor==1)//处于锁紧状态
|
|
|
{
|
|
|
- PSwtDrv_Interface(_PSWT_INDEX_HBAK1_CHAN, 1);
|
|
|
+ LockDelay = LockDelay + 10;
|
|
|
+ if(LockDelay>5*1000)//锁紧状态超时5s,就解锁
|
|
|
+ {
|
|
|
+ Control_Times++;
|
|
|
+ LockDelay = 0;
|
|
|
+ CtrlFlg = Unlock;
|
|
|
+ }
|
|
|
}
|
|
|
- if (Delay > 10000)
|
|
|
+ else if(ebcd_st_unlockSensor==1)//处于解锁状态
|
|
|
{
|
|
|
- Control_Times++;
|
|
|
- Delay = 0;
|
|
|
+ CtrlFlg = Lock;
|
|
|
}
|
|
|
}
|
|
|
else //正常工作模式
|
|
|
{
|
|
|
if(bled_flg_lockCmd==1)
|
|
|
{
|
|
|
- PSwtDrv_Interface(_PSWT_INDEX_HBAK1_CHAN, 0);
|
|
|
+ CtrlFlg = Lock;
|
|
|
}
|
|
|
else if(bled_flg_unlockCmd==1)
|
|
|
{
|
|
|
- PSwtDrv_Interface(_PSWT_INDEX_HBAK1_CHAN, 1);
|
|
|
+ CtrlFlg = Unlock;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- PSwtDrv_Interface(_PSWT_INDEX_HBAK1_CHAN, 0);
|
|
|
+ CtrlFlg = Lock;
|
|
|
}
|
|
|
}
|
|
|
+ //锁紧解锁执行
|
|
|
+ if(CtrlFlg)
|
|
|
+ {
|
|
|
+ UnlockCtrl();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ LockCtrl();
|
|
|
+ }
|
|
|
}
|
|
|
/**
|
|
|
* @brief : 互锁检测函数
|
|
@@ -178,6 +189,7 @@ void GetAIOValue(void)
|
|
|
|
|
|
AirPressureTemp_Vol = ATDDrv_GetChanResult(_ATD_INDEX_AIRPRESSURE);
|
|
|
AirPressureTemp_Vol = (uint16)(AirPressureTemp_Vol * 1000 / 4095.0);
|
|
|
+ Test_LockPressure = AirPressureTemp_Vol;//锁紧力测试变量
|
|
|
/*气压数据转换*/
|
|
|
AirPressureTemp_Vol = MAX(AirPressureTemp_Vol, 500);
|
|
|
AirPressureTemp_Vol = MIN(AirPressureTemp_Vol, 4500);
|