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); }
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); }
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); }
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); }
protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor) { if (sensor.HighBeam) { return(false); } return(sensor.LowBeam && sensor.OutlineLight && sensor.RightIndicatorLight); }
//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); }
protected override bool TimeoutRuleCheck(CarSensorInfo sensor) { if (sensor.LeftIndicatorLight || sensor.RightIndicatorLight || sensor.CautionLight || sensor.FogLight || sensor.HighBeam) { return(false); } return(sensor.LowBeam && sensor.OutlineLight); }
protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor) { if (sensor.HighBeam) { return(false); } if (sensor.LowBeam) { hasLowlighted = true; } return(hasLowlighted && sensor.OutlineLight); }
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); }
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); }
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); }
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); }
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); }
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); }
protected override bool HasErrorLights(IList <string> propertyNames, CarSensorInfo sensor) { return(!propertyNames.All(x => _validPropertyNames.Contains(x))); }
/// <summary> /// 对超时的规则进行验证是否 /// </summary> /// <returns></returns> protected virtual bool TimeoutRuleCheck(CarSensorInfo signalInfo) { return(false); }
protected abstract bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor);
protected abstract bool HasErrorLights(IList <string> propertyNames, CarSensorInfo sensor);
protected override bool CheckLights(IList <string> propertyNames, CarSensorInfo sensor) { return(false); }
public LightChangedMessage(IList <string> propertyNames, CarSensorInfo sensor) { this.PropertyNames = propertyNames; this.Sensor = sensor; }
public PrepareDriving() { LastSensor = new CarSensorInfo(); }
protected override bool HasErrorLights(IList <string> propertyNames, CarSensorInfo sensor) { return(propertyNames.Count > 0); }