protected virtual void ProcessEngine(CarSignalInfo signalInfo)
        {
            //如果发动机线的配置不是默认值则 就进行处理发动机线的函数
            if (Settings.EngineAddress != -1)
            {
                ProcessEngineLine(signalInfo);
                return;
            }

            //如果信号无效,用最后一次有效的发动机状态,不能过滤-1的情况
            if (signalInfo.Sensor == null || !signalInfo.IsSensorValid)
            {
                if (signalInfo.Sensor == null)
                {
                    Logger.WarnFormat("ProcessEngine函数,处理发动机状态时sensor==null");
                }

                var lastSignal = CarSignalSet.FirstOrDefault(d => d.IsSensorValid && d.Sensor != null);
                if (lastSignal != null)
                {
                    signalInfo.Sensor.Engine = lastSignal.Sensor.Engine;
                }
                else
                {
                }
                //处理新版0BD熄火不掉转速
                if (signalInfo.Sensor.Engine == false)
                {
                    signalInfo.EngineRpm = 0;
                }
                return;
            }


            if (signalInfo.EngineRpm > Settings.EngineStopRmp)
            {
                signalInfo.Sensor.Engine = true;
                return;
            }

            //按照连续的信号个数,基本相当于2秒,这个还是需要配置可以进行调节,发动机熄火时间。
            if (CarSignalSet.Count > 10)
            {
                int delayCount = (int)Settings.CommonExamItemsEngineTimeOut * 5;
                if (CarSignalSet.Count < delayCount)
                {
                    delayCount = CarSignalSet.Count - 3;
                }
                signalInfo.Sensor.Engine = CarSignalSet.Where(x => x.IsSensorValid).Take(delayCount).Any(x => x.EngineRpm > Settings.EngineStopRmp);

                //处理新版OBD,钥匙关了后转速20秒不掉问题,强制设0
                if (signalInfo.Sensor.Engine == false)
                {
                    signalInfo.EngineRpm = 0;
                }

                return;
            }
            //为什么不用条件编译?或者通过配置?不然很容易忘记那个版本需要修改什么;
            //todo:重庆复盛网口版是过滤15个信号,其它地方5个 //徐州是10
            //5条记录任意一条,防止转速闪烁
            signalInfo.Sensor.Engine = CarSignalSet.Where(x => x.IsSensorValid).Take(5).Any(x => x.EngineRpm > Settings.EngineStopRmp);

            //处理新版0BD熄火不掉转速
            if (signalInfo.Sensor.Engine == false)
            {
                signalInfo.EngineRpm = 0;
            }

            //表示需要进行处理发动机信号 ,如果两个同时无效 才认为发动机熄火,只要其中一个有信号就认为发动机没有熄火!
        }