예제 #1
0
        public spiderObjective AddObjective(string __name, string __description, spiderObjectiveEnum __tag)
        {
            spiderObjective obj = new spiderObjective();

            obj.name        = __name;
            obj.description = __description;
            obj.codename    = __tag.ToString();
            obj.tag         = __tag;
            obj.supervisor  = spiderObjectiveModeEnum.controlRule;
            objectives.Add(obj);
            return(obj);
        }
예제 #2
0
        public bool operation_executeObjectiveSolutionSet(spiderObjectiveSolutionSet solutionSet, modelSpiderSiteRecord wRecord)
        {
            bool leave = false;

            foreach (spiderObjectiveSolution sol in solutionSet)
            {
                if (sol.status != spiderObjectiveStatus.unknown)
                {
                    switch (sol.type)
                    {
                    case spiderObjectiveType.dropOutControl:

                        break;

                    case spiderObjectiveType.flowControl:

                        List <spiderObjectiveEnum> targets = sol.targetedObjective.getEnumListFromFlags <spiderObjectiveEnum>();
                        foreach (spiderObjectiveEnum target in targets)
                        {
                            spiderObjective selObjective = objectives.FirstOrDefault <spiderObjective>(x => x.tag == target);
                            if (selObjective != null)
                            {
                                resolveObjective(selObjective, sol, wRecord);
                            }
                        }
                        break;
                    }
                }
            }

            leave = true;

            foreach (spiderObjective obj in objectives)
            {
                if (obj.status == spiderObjectiveStatus.notSolved)
                {
                    leave = false;
                }
            }
            if (leave)
            {
                wRecord.logBuilder.log("All objectives solved/avoided/aborted. Leaving the stage [" + name + "]");
            }

            return(leave);
        }
예제 #3
0
        protected void resolveObjective(spiderObjective obj, spiderObjectiveSolution sol, modelSpiderSiteRecord wRecord)
        {
            switch (sol.status)
            {
            case spiderObjectiveStatus.notSolved:
                break;

            case spiderObjectiveStatus.avoided:
            case spiderObjectiveStatus.aborted:
                obj.status = sol.status;
                wRecord.logBuilder.log("Objective [" + obj.name + "] updated status: " + obj.status);
                aceTerminalInput.doBeepViaConsole(1200, 100, 2);
                break;

            case spiderObjectiveStatus.solved:
                obj.status = sol.status;
                wRecord.logBuilder.log("Objective [" + obj.name + "] updated status: " + obj.status);
                aceTerminalInput.doBeepViaConsole(1600, 100, 2);
                break;
            }
        }