示例#1
0
 /// <summary>
 /// Add a rule that target Capability shall be unknown in case of a unknown monitoring result
 /// </summary>
 /// <param name="degrader">Degrader being used to add the rule</param>
 /// <param name="failure"></param>
 /// <param name="targetCapability"></param>
 public static void AddRuleForUnknown(
     this IDegrader degrader,
     IFailure failure,
     ICapability targetCapability)
 {
     degrader.AddRule(failure, MonitoringResult.Unknown, targetCapability, Capabilities.Unknown);
 }
示例#2
0
        private static ActuatorMonitor CreateSup(IDegrader degrader, ICapability capability, int i)
        {
            ActuatorMonitor last = null;

            for (var n = 0; n < 5; n++)
            {
                var subDegrader   = new Degrader("Sub");
                var subCapability = new Capability(subDegrader, "Sub");

                var failure = new ActuatorMonitor(subDegrader);
                subDegrader.AddDefaultRules(failure.TotalFailure, subCapability);
                degrader.AddDefaultRules(subCapability, capability);

                if (i < 5)
                {
                    last = CreateSup(subDegrader, subCapability, i + 1);
                }
                else
                {
                    last = failure;
                }

                failure.MakeOk();
            }

            return(last);
        }
示例#3
0
 /// <summary>
 /// Add a rule that target Capability shall be failed in case of a NOK monitoring result
 /// </summary>
 /// <param name="degrader">Degrader being used to add the rule</param>
 /// <param name="failure"></param>
 /// <param name="targetCapability"></param>
 public static void AddRuleForFailure(
     this IDegrader degrader,
     IFailure failure,
     ICapability targetCapability)
 {
     degrader.AddRule(failure, MonitoringResult.NOK, targetCapability, Capabilities.Failed);
 }
示例#4
0
 /// <summary>
 /// Adds a rule that the target capability shall be set to unknown in case the source capability is unknown
 /// </summary>
 /// <param name="degrader">Degrader being used to add the rule</param>
 /// <param name="sourceCapability">Source capability that is triggering the change of the targetCapability</param>
 /// <param name="targetCapability">The target capability that will be updated</param>
 public static void AddRuleForUnknown(
     this IDegrader degrader,
     ICapability sourceCapability,
     ICapability targetCapability)
 {
     degrader.AddRule(sourceCapability, Capabilities.Unknown, targetCapability, Capabilities.Unknown);
 }
示例#5
0
 /// <summary>
 /// Adds a rule, that the target Capability shall be Failed in case of a degraded source Capability
 /// </summary>
 /// <param name="degrader">Degrader being used to add the rule</param>
 /// <param name="sourceCapability"></param>
 /// <param name="targetCapability"></param>
 public static void AddRuleForFailure(
     this IDegrader degrader,
     ICapability sourceCapability,
     ICapability targetCapability)
 {
     degrader.AddRule(sourceCapability, Capabilities.Failed, targetCapability, Capabilities.Failed);
 }
示例#6
0
 /// <summary>
 /// Adds a default rule to set the target capability to Failed or Unknown depending on the failure.
 /// NOK will be mapped to Failed, Unknown will be mapped to Unknown
 /// If additional relationships need to be established, further explicit calls are necessary
 /// </summary>
 /// <param name="degrader">Degrader to be used for the rule</param>
 /// <param name="failure">The falilue whose change will have an effect on the <c>targetCapability</c></param>
 /// <param name="targetCapability">The targetcapability being used</param>
 public static void AddDefaultRules(
     this IDegrader degrader,
     IFailure failure,
     ICapability targetCapability)
 {
     AddRuleForFailure(degrader, failure, targetCapability);
     AddRuleForUnknown(degrader, failure, targetCapability);
 }
示例#7
0
 public PowerSupplyMonitor(IDegrader degrader) : base(degrader)
 {
 }
 public ActuatorMonitor(IDegrader degrader) : base(degrader)
 {
 }
示例#9
0
 public Monitor(IDegrader degrader)
 {
     Degrader = degrader;
 }
示例#10
0
 public Capability(IDegrader degrader, string name = "")
 {
     _name    = name;
     Degrader = degrader;
 }