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); }
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); }
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; } }