function wiperFrequency (var sigFrntWiperParkSts)
{
double wiperEventLastTime = -1, wiperEventLastTimeFake = -1;
double f;
double thisDeltTime,thisDeltTime_l,lastDeltTime = -1;
double keyEventValue=-1;
double timeNow;
double wiperStopTimeThd = 12;
timeNow = time(sigFrntWiperParkSts);
f = 0;
if (keyEventValue < 0)
{
//说明还没有捕捉到关键事件
thisDeltTime = timeNow - wiperEventLastTimeFake;
if (wiperEventLastTimeFake < 0)
{
if (sigFrntWiperParkSts == 1)
{
//说明雨刮正在工作
wiperEventLastTimeFake = timeNow;
thisDeltTime = wiperStopTimeThd;
}
}
else
{
if (lastDeltTime < 0)
{
thisDeltTime = wiperStopTimeThd - thisDeltTime;
}
else
{
thisDeltTime = max(thisDeltTime,lastDeltTime);
}
}
//捕捉关键事件
if ((sigFrntWiperParkSts[-1] == 0 && sigFrntWiperParkSts == 1) || (sigFrntWiperParkSts[-1] == 1 && sigFrntWiperParkSts == 0))
{
//计算并记录事件值
keyEventValue = sigFrntWiperParkSts[-1] * 10 + sigFrntWiperParkSts;
wiperEventLastTime = timeNow;
lastDeltTime = thisDeltTime;
}
}
else
{
//关键事件值存在
if (wiperEventLastTimeFake < 0)
{
thisDeltTime = timeNow - wiperEventLastTime;
if (wiperEventLastTime < 0)
{
thisDeltTime = wiperStopTimeThd;
}
}
else
{
thisDeltTime = timeNow - wiperEventLastTimeFake;
}
if (sigFrntWiperParkSts[-1] * 10 + sigFrntWiperParkSts == keyEventValue)
{
//发生了关键事件
if (wiperEventLastTime > 0)
{
if (thisDeltTime < wiperStopTimeThd)
{
lastDeltTime = thisDeltTime;
wiperEventLastTime = timeNow;
}
else
{
thisDeltTime = lastDeltTime;
wiperEventLastTime = timeNow - lastDeltTime;
}
}
else
{
lastDeltTime = -1;
wiperEventLastTime = timeNow;
}
wiperEventLastTimeFake = -1;
}
else
{
//没有发生关键事件
if (wiperEventLastTimeFake < 0)
{
if (sigFrntWiperParkSts == 0)
{
thisDeltTime = max(thisDeltTime,lastDeltTime);
}
else
{
thisDeltTime = thisDeltTime_l;
}
}
else
{
thisDeltTime = wiperStopTimeThd - thisDeltTime;
}
}
}
thisDeltTime = max(thisDeltTime, 0);
if (thisDeltTime > wiperStopTimeThd)
{
thisDeltTime = 0;
keyEventValue = -1;
lastDeltTime = -1;
}
if (thisDeltTime < 0.5)
{
f = 0;
}
else
{
f = 1/thisDeltTime;
}
thisDeltTime_l = thisDeltTime;
return f;
}
CASL 根据雨刮器的状态判断频度
最新推荐文章于 2024-08-27 08:07:17 发布