private Controller Controller(short id, string name, params Controller[] children) { var commonInterface = new CtrlCommonInterface { Info = new CtrlInfo { CtrlId = id, Name = name, Type = "Simulated Controller", }, SoftwareConfig = new CtrlSoftwareConfig { Enable = true, Simulation = true, }, Job = new CtrlJob { EnableForcing = true, Mode = (short)ControllerMode.Auto, StateName = "cSTA_Running", SubStateName = "cSTA_Simulated", } }; var controllerTag = new Tag(name, "Simulation"); var commonInterfaceTag = new Tag(name.CommonInterface(), "Simulation", "Ctr_Int") { Value = commonInterface }; controllerTag.Childs.Add(commonInterfaceTag); var controllerTagWrapper = new ControllerTagWrapper(controllerTag); var controller = new Controller(_tagController, controllerTagWrapper); foreach (Controller child in children) { controller.AddChild(child); } controller.UpdateCommands(new[] { StopCommand() }); controller.AddActualValues(new[] { ThroughputValue() }); controller.AddConfigurations(new[] { VelocityParameter(), RunningTag() }); controller.AddInputs(new[] { RunningTag() }); controller.AddOutputs(new[] { RunningTag() }); controller.AddParameters(new[] { VelocityParameter() }); return(controller); }
/// <summary> /// Gets the commands under the controller tag. /// </summary> /// <returns>A <see cref="IEnumerable{T}"/> of <see cref="Command"/> instances.</returns> public IEnumerable <Command> GetCommands() { CtrlCommonInterface commonInterfaceValue = GetCommonInterfaceValue(); if (commonInterfaceValue == null) { yield break; } CtrlJob job = commonInterfaceValue.Job; if (job == null) { yield break; } foreach (Command command in job.Commands().Where(c => !c.Name.IsNullOrEmpty())) { yield return(command); } }