コード例 #1
0
        public FlightDataEntitiesRT.Decisions.Decision[] GetFaultDecisions()
        {
            var decisions = new FlightDataEntitiesRT.Decisions.Decision[]{
                //new FlightDataEntitiesRT.Decisions.Decision(){
                //     LastTime = 1, Conditions = new FlightDataEntitiesRT.Decisions.SubCondition[]{
                //         new FlightDataEntitiesRT.Decisions.CompareSubCondition(){ ParameterID = "T6R",
                //              ParameterValue = 630 , Operator = FlightDataEntitiesRT.Decisions.CompareOperator.GreaterThan},
                //              new FlightDataEntitiesRT.Decisions.CompareSubCondition(){ ParameterID = "KG14",
                //              ParameterValue = 1 , Operator = FlightDataEntitiesRT.Decisions.CompareOperator.Equal},
                //     }},
                     new FlightDataEntitiesRT.Decisions.Decision(){
                     LastTime = 10, Conditions = new FlightDataEntitiesRT.Decisions.SubCondition[]{
                         new FlightDataEntitiesRT.Decisions.CompareSubCondition(){ ParameterID = "Vi",
                              ParameterValue = 100 , Operator = FlightDataEntitiesRT.Decisions.CompareOperator.GreaterThan},
                              new FlightDataEntitiesRT.Decisions.CompareSubCondition(){ ParameterID = "NHL",
                              ParameterValue = 99 , Operator = FlightDataEntitiesRT.Decisions.CompareOperator.GreaterThan},
                     }}
            };

            foreach (var decision in decisions)
            {
                Queue<SubCondition> conds = new Queue<SubCondition>();
                foreach (var sub in decision.Conditions)
                {
                    conds.Enqueue(sub);
                }
                while (conds.Count > 0)
                {
                    var s = conds.Dequeue();
                    s.RootDecision = decision;

                    if (s.SubConditions != null)
                    {
                        foreach (var sub in s.SubConditions)
                        {
                            conds.Enqueue(sub);
                        }
                    }
                }
            }

            return decisions;
        }
コード例 #2
0
 /// <summary>
 /// 判据封装类
 /// </summary>
 /// <param name="one">如果这个是空则说明是空判据</param>
 /// <param name="decision"></param>
 public DecisionWrap(DecisionRecord one, Decision decision)
 {
     // TODO: Complete member initialization
     this.one = one;
     this.decision = decision;
 }
コード例 #3
0
        /// <summary>
        /// 通过判据找到记录
        /// </summary>
        /// <param name="one"></param>
        /// <param name="decisionRecords"></param>
        /// <returns></returns>
        private DecisionRecord FindDecisionRecord(Decision one, DecisionRecord[] decisionRecords)
        {
            var finded = decisionRecords.FirstOrDefault(new Func<DecisionRecord, bool>(
                delegate(DecisionRecord rec)
                {
                    if (rec.DecisionID == one.DecisionID)
                        return true;
                    return false;
                }));

            return finded;
        }