public void AddOneSecondDatas(int second, ParameterRawData[] rawDatas) { foreach (var con in this.Conditions) con.AddOneSecondDatas(second, rawDatas); if (AllConditionTrue() && this.LastTime > 0 && (second - this.ActiveStartSecond >= this.LastTime)) {//所有条件都发生,并且大于等于持续时间,则认为真正发生了 this.HappenedSecond = second; HasHappened = true; } else if (this.AllConditionTrue())//所有条件都满足但是持续时间还不够长 {//先设置为Active if (this.IsActive == false) { this.ActiveStartSecond = second; this.IsActive = true; } } else {//没有Active了 if (this.IsActive) { this.IsActive = false; this.ActiveEndSecond = second; } } //如果有子条件则自身不算 return; }
public void AddOneSecondDatas(int second, ParameterRawData[] rawDatas) { Dictionary<string, List<float>> rawDataDics = new Dictionary<string, List<float>>(); foreach (var raw in rawDatas) { if (!rawDataDics.ContainsKey(raw.ParameterID)) rawDataDics.Add(raw.ParameterID, new List<float>()); rawDataDics[raw.ParameterID].AddRange(raw.Values); } foreach (var con in this.Conditions) con.AddOneSecondDatas(second, rawDataDics); if (AllConditionTrue()) {//先设置为Active,不管持续时间够不够长 if (this.IsActive == false) { this.ActiveStartSecond = second; this.IsActive = true; } } else {//没有Active了 if (this.IsActive) { this.IsActive = false; this.ActiveEndSecond = second; } } if (AllConditionTrue() && this.LastTime > 0 && (second - this.ActiveStartSecond >= this.LastTime)) {//所有条件都发生,并且大于等于持续时间,则认为真正发生了 if (HasHappened) { } else { this.HappenedSecond = second; HasHappened = true; } } else { HasHappened = false; } //如果有子条件则自身不算 return; }
public void AddOneSecondDatas(int second, ParameterRawData[] rawDatas) { if (this.SubConditions != null && this.SubConditions.Length > 0) { foreach (var con in this.SubConditions) con.AddOneSecondDatas(second, rawDatas); //如果有子条件则自身不算 return; } else { if (this.IsConditionMatch(second, rawDatas)) { this.SelfCondition = true; } else { this.SelfCondition = false; } } }
private bool IsConditionMatch(int second, ParameterRawData[] rawDatas) { throw new NotImplementedException(); }