Example #1
0
        protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor)
        {
            if (!sensor.OutlineLight)
            {
                return(false);
            }
            if (sensor.HighBeam)
            {
                return(false);
            }
            //if (sensor.LowBeam)
            //    return false;
            if (sensor.FogLight)
            {
                return(false);
            }
            if (sensor.LeftIndicatorLight)
            {
                return(false);
            }
            if (sensor.RightIndicatorLight)
            {
                return(false);
            }

            return(true);
        }
Example #2
0
        protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor)
        {
            if (IsLightFinish)
            {
                return(IsLightFinish);
            }
            if (sensor.LeftIndicatorLight)
            {
                Left = true;
                // LogManager.WriteSystemLog("FogDrivingLightRulesensor.LeftIndicatorLight");
                // Logger.Info("FogDrivingLightRule", "sensor.LeftIndicatorLight");
            }
            if (sensor.RightIndicatorLight)
            {
                Right = true;
                // LogManager.WriteSystemLog("FogDrivingLightRulesensorRightIndicatorLight");
                //  Logger.Info("FogDrivingLightRule","sensor.RightIndicatorLight");
            }
            if (sensor.CautionLight)
            {
                Left = Right = true;
                // LogManager.WriteSystemLog("FogDrivingLightRulesensorCautionLight");
                //Logger.Info("FogDrivingLightRule","sensor.CautionLight");
            }
            //内裹
            if (sensor.FogLight && Right && Left)
            {
                IsLightFinish = true;
                // LogManager.WriteSystemLog("雾天行驶已经合格");
                Logger.Info("雾天行驶已经合格");
                return(true);
            }

            return(false);
        }
        protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor)
        {
            if (sensor.LeftIndicatorLight)
            {
                _isLeft = true;
            }
            if (sensor.RightIndicatorLight ||
                sensor.CautionLight ||
                sensor.FogLight)
            {
                return(false);
            }

            if (!sensor.LowBeam ||
                !sensor.OutlineLight)
            {
                return(false);
            }

            double timeout = LightTimeout;
            ////作对就通过,不能检测7秒前的,不然会检测到上一次操作的远光(中控还没有配置时间和操作)
            //if (Settings.SimulationLightPassway == 1)
            //    timeout = 3;

            var result = AdvancedSignal.CheckHighBeam(timeout, 1) && _isLeft;

            return(result);
        }
        protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor)
        {
            if (IsLightFinish)
            {
                return(IsLightFinish);
            }
            if (sensor.LeftIndicatorLight)
            {
                Left = true;
            }
            if (sensor.RightIndicatorLight)
            {
                Right = true;
            }
            if (sensor.CautionLight)
            {
                Left  = true;
                Right = true;
            }
            if (sensor.CautionLight || (Left && Right))
            {
                Logger.Info("难以移动已经合格");
                IsLightFinish = true;
                return(true);
            }

            return(false);
        }
Example #5
0
        protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor)
        {
            if (!sensor.OutlineLight)
            {
                return(false);
            }
            if (!sensor.CautionLight)
            {
                return(false);
            }
            //开不开近光都合格//沪州要求开近光不合格
            //没有开近光则不合格
            if (!sensor.LowBeam)
            {
                return(false);
            }
            if (sensor.FogLight)
            {
                return(false);
            }
            if (sensor.LeftIndicatorLight)
            {
                return(false);
            }
            if (sensor.RightIndicatorLight)
            {
                return(false);
            }

            return(true);
        }
Example #6
0
        protected void ProcessCautionLight(CarSensorInfo sensor, List <int[]> reversedHistoryInputs)
        {
            //if (reversedHistoryInputs.Count < LeftIndicatorLightAddress ||
            //    reversedHistoryInputs.Count < RightIndicatorLightAddress)
            //{
            //    sensor.LeftIndicatorLight = false;
            //    sensor.RightIndicatorLight = false;
            //    return;
            //}


            var isCaution = false;

            foreach (var inputs in reversedHistoryInputs)
            {
                if (inputs[LeftIndicatorLightAddress] != inputs[RightIndicatorLightAddress])
                {
                    break;
                }

                if (inputs[LeftIndicatorLightAddress] == IndicatorValue)
                {
                    isCaution = true;
                    break;
                }
            }

            sensor.CautionLight = isCaution;
            if (sensor.CautionLight)
            {
                sensor.LeftIndicatorLight      =
                    sensor.RightIndicatorLight = false;
                return;
            }

            bool hasIndicatorLight = false;

            foreach (var items in reversedHistoryInputs)
            {
                if (items[LeftIndicatorLightAddress] == IndicatorValue)
                {
                    sensor.LeftIndicatorLight  = true;
                    sensor.RightIndicatorLight = false;
                    hasIndicatorLight          = true;
                    break;
                }
                if (items[RightIndicatorLightAddress] == IndicatorValue)
                {
                    sensor.LeftIndicatorLight  = false;
                    sensor.RightIndicatorLight = true;
                    hasIndicatorLight          = true;
                    break;
                }
            }

            if (!hasIndicatorLight)
            {
                sensor.LeftIndicatorLight = sensor.RightIndicatorLight = false;
            }
        }
 protected override bool TimeoutRuleCheck(CarSensorInfo signalInfo)
 {
     if (signalInfo.CautionLight)
     {
         return(false);
     }
     return(true);
 }
Example #8
0
        protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor)
        {
            if (sensor.HighBeam)
            {
                return(false);
            }

            return(sensor.LowBeam && sensor.OutlineLight && sensor.RightIndicatorLight);
        }
Example #9
0
        //protected override bool CheckLights(IList<string> propertyNames, CarSensorInfo sensor)
        //{
        //    return false;
        //}

        protected override bool TimeoutRuleCheck(CarSensorInfo signalInfo)
        {
            if (signalInfo.HighBeam ||
                signalInfo.LowBeam ||
                signalInfo.OutlineLight)
            {
                return(false);
            }

            return(true);
        }
Example #10
0
        protected override bool TimeoutRuleCheck(CarSensorInfo sensor)
        {
            if (sensor.LeftIndicatorLight ||
                sensor.RightIndicatorLight ||
                sensor.CautionLight ||
                sensor.FogLight ||
                sensor.HighBeam)
            {
                return(false);
            }

            return(sensor.LowBeam && sensor.OutlineLight);
        }
Example #11
0
        protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor)
        {
            if (sensor.HighBeam)
            {
                return(false);
            }
            if (sensor.LowBeam)
            {
                hasLowlighted = true;
            }

            return(hasLowlighted && sensor.OutlineLight);
        }
Example #12
0
        protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor)
        {
            //if (sensor.HighBeam)
            //    return false;

            if (sensor.FogLight &&
                sensor.CautionLight &&
                sensor.OutlineLight)
            {
                return(true);
            }

            return(false);
        }
Example #13
0
        protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor)
        {
            if (sensor.HighBeam || sensor.LeftIndicatorLight || sensor.FogLight || sensor.CautionLight)
            {
                return(false);
            }

            if (sensor.RightIndicatorLight)
            {
                isOpenRightIndicatorLight = true;
            }

            return(sensor.LowBeam && sensor.OutlineLight && isOpenRightIndicatorLight);
        }
        protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor)
        {
            if (sensor.LowBeam)
            {
                isOpenLowBem = true;
            }

            var result = AdvancedSignal.CheckHighBeam(LightTimeout, 1);

            if (result && isOpenLowBem)
            {
                return(true);
            }
            return(false);
        }
        protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor)
        {
            if (!sensor.OutlineLight)
            {
                return(false);
            }


            if (sensor.HighBeam)
            {
                return(false);
            }

            if (sensor.LowBeam == false)
            {
                return(false);
            }


            if (sensor.FogLight)
            {
                return(false);
            }

            if (_hasLeft && _hasRight)
            {
                return(true);
            }

            if (sensor.LeftIndicatorLight)
            {
                _hasLeft = true;
            }
            if (sensor.RightIndicatorLight)
            {
                _hasRight = true;
            }
            if (sensor.CautionLight)
            {
                _hasLeft = _hasRight = true;
            }

            return(false);
        }
        protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor)
        {
            if (sensor.LeftIndicatorLight ||
                sensor.RightIndicatorLight ||
                sensor.CautionLight ||
                sensor.FogLight)
            {
                return(false);
            }


            var result = AdvancedSignal.CheckHighBeam(LightTimeout, 2);

            if (result && sensor.LowBeam)
            {
                return(true);
            }
            return(false);
        }
Example #17
0
        protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor)
        {
            if (sensor.LeftIndicatorLight)
            {
                isOpenLeftIndicatorLight = true;
            }
            if (sensor.RightIndicatorLight)
            {
                isOpenRightIndicatorLight = true;
            }
            //远近光交替
            var result = AdvancedSignal.CheckHighBeam(LightTimeout, 1);

            if (result && isOpenLeftIndicatorLight && isOpenRightIndicatorLight)
            {
                return(true);
            }

            return(false);
        }
        protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor)
        {
            if (sensor.LeftIndicatorLight ||
                sensor.RightIndicatorLight ||
                sensor.FogLight)
            {
                return(false);
            }

            if (!sensor.LowBeam ||
                !sensor.OutlineLight)
            {
                return(false);
            }
            //由于程序检测语音播完时,可能第一次闪光都已经操作过了,所以时间往前推1秒,20160801,李
            double LightTimeout_new = LightTimeout + 1;
            var    result           = AdvancedSignal.CheckHighBeam(LightTimeout_new, 2) && !sensor.HighBeam;

            return(result);
        }
Example #19
0
        protected IList <string> GetLightChangedProperties(CarSensorInfo oldSensor, CarSensorInfo newSensor)
        {
            List <string> propertyNames = new List <string>();

            if (oldSensor == null)
            {
                return(propertyNames);
            }

            //灯光被改变
            if (oldSensor.CautionLight != newSensor.CautionLight && newSensor.CautionLight)
            {
                propertyNames.Add("CautionLight");
            }
            if (oldSensor.LeftIndicatorLight != newSensor.LeftIndicatorLight && newSensor.LeftIndicatorLight)
            {
                propertyNames.Add("LeftIndicatorLight");
            }
            if (oldSensor.RightIndicatorLight != newSensor.RightIndicatorLight && newSensor.RightIndicatorLight)
            {
                propertyNames.Add("RightIndicatorLight");
            }
            if (oldSensor.FogLight != newSensor.FogLight && newSensor.FogLight)
            {
                propertyNames.Add("FogLight");
            }
            if (oldSensor.HighBeam != newSensor.HighBeam && newSensor.HighBeam)
            {
                propertyNames.Add("HighBeam");
            }
            if (oldSensor.LowBeam != newSensor.LowBeam && newSensor.LowBeam)
            {
                propertyNames.Add("LowBeam");
            }
            if (oldSensor.OutlineLight != newSensor.OutlineLight && newSensor.OutlineLight)
            {
                propertyNames.Add("OutlineLight");
            }

            return(propertyNames);
        }
        protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor)
        {
            if (sensor.LeftIndicatorLight ||
                sensor.RightIndicatorLight ||
                sensor.CautionLight ||
                sensor.FogLight)
            {
                return(false);
            }

            if (!sensor.LowBeam ||
                !sensor.OutlineLight)
            {
                return(false);
            }
            //var result = AdvancedSignal.CheckHighBeam(LightTimeout, 1);
            //由于设定7秒,会检测到上一个远光操作,如果连续几个远近光一次,会出现第2次不操作也会算对的情况,改为3秒
            var result = AdvancedSignal.CheckHighBeam(3, 1);

            return(result);
        }
Example #21
0
        protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor)
        {
            if (sensor.LeftIndicatorLight)
            {
                Left = true;
            }
            if (sensor.RightIndicatorLight)
            {
                Right = true;
            }

            if (sensor.HighBeam)
            {
                return(false);
            }

            if (sensor.FogLight && sensor.OutlineLight && (sensor.CautionLight || (Left && Right)))
            {
                return(true);
            }

            return(false);
        }
Example #22
0
        protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor)
        {
            if (sensor.LeftIndicatorLight ||
                sensor.RightIndicatorLight ||
                sensor.CautionLight ||
                sensor.FogLight)
            {
                return(false);
            }

            if (!sensor.LowBeam ||
                !sensor.OutlineLight)
            {
                return(false);
            }

            //Light
            //
            //
            //LightTimeout = 3;
            var result = AdvancedSignal.CheckHighBeam(LightTimeout, 1);

            return(result);
        }
Example #23
0
 protected override bool HasErrorLights(IList <string> propertyNames, CarSensorInfo sensor)
 {
     return(!propertyNames.All(x => _validPropertyNames.Contains(x)));
 }
Example #24
0
 /// <summary>
 /// 对超时的规则进行验证是否
 /// </summary>
 /// <returns></returns>
 protected virtual bool TimeoutRuleCheck(CarSensorInfo signalInfo)
 {
     return(false);
 }
Example #25
0
 protected abstract bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor);
Example #26
0
 protected abstract bool HasErrorLights(IList <string> propertyNames, CarSensorInfo sensor);
Example #27
0
 protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor)
 {
     return(false);
 }
 public LightChangedMessage(IList <string> propertyNames, CarSensorInfo sensor)
 {
     this.PropertyNames = propertyNames;
     this.Sensor        = sensor;
 }
Example #29
0
 public PrepareDriving()
 {
     LastSensor = new CarSensorInfo();
 }
Example #30
0
 protected override bool HasErrorLights(IList <string> propertyNames, CarSensorInfo sensor)
 {
     return(propertyNames.Count > 0);
 }