/// <summary> /// Добавить системный параметр объекта /// </summary> /// <param name="luaName">Lua-имя</param> /// <param name="name">Отображаемое название</param> /// <param name="value">Значение</param> /// <param name="meter">Единица измерения</param> public void AddSystemParameter(string luaName, string name, double value, string meter) { var param = new SystemParam(SystemParams.GetIdx, name, value, meter, luaName); SystemParams.AddParam(param); }
public void SetUpFromBaseTechObject(SystemParams systemParams) { parameters.Clear(); var insertingParameters = systemParams.parameters; foreach (var parameter in insertingParameters) { parameters.Add(parameter); } }
public BaseTechObject(TechObject owner = null) { Name = string.Empty; EplanName = string.Empty; S88Level = 0; BaseOperations = new List <BaseOperation>(); BasicName = string.Empty; Owner = owner; Equipment = new List <BaseParameter>(); AggregateParameters = new List <BaseParameter>(); BindingName = string.Empty; SystemParams = new SystemParams(); objectGroups = new List <AttachedObjects>(); }
/// <summary> /// Создание технологического объекта. /// </summary> /// <param name="name">Имя.</param> /// <param name="getN">Функция получения порядкового локального номера. /// </param> /// <param name="technologicalNumber">Технологический номер.</param> /// <param name="nameEplan">ОУ объекта в Eplan'е.</param> /// <param name="cooperParamNumber">Время совместного перехода шагов /// (параметр).</param> /// <param name="attachedObjects">Привязанные объекты</param> /// <param name="baseTechObject">Базовый технологический объект</param> /// <param name="NameBC">Имя объекта Monitor</param> /// <param name="techType">Номер типа</param> public TechObject(string name, GetN getLocalNum, int technologicalNumber, int techType, string nameEplan, int cooperParamNumber, string NameBC, string attachedObjects, BaseTechObject baseTechObject) { this.name = name; this.getLocalNum = getLocalNum; this.techNumber = new TechObjectN(this, technologicalNumber); this.techType = new ObjectProperty("Тип", techType); this.nameBC = new ObjectProperty("Имя объекта Monitor", NameBC); this.nameEplan = new NameInEplan(nameEplan, this); this.cooperParamNumber = new ObjectProperty( "Время совместного перехода шагов (параметр)", cooperParamNumber, -1); var allowedObjects = new List <BaseTechObjectManager.ObjectType>() { BaseTechObjectManager.ObjectType.Aggregate }; string attachObjectsName = "Привязанные агрегаты"; string attachObjectsLuaName = "attached_objects"; this.attachedObjects = new AttachedObjects(attachedObjects, this, new AttachedObjectStrategy.AttachedWithInitStrategy( attachObjectsName, attachObjectsLuaName, allowedObjects)); modes = new ModesManager(this); paramsManager = new ParamsManager(); paramsManager.Parent = this; string sysParName = "Системные параметры"; string sysParLuName = "system_parameters"; systemParams = new SystemParams(sysParName, sysParLuName); systemParams.Parent = this; equipment = new Equipment(this); InitBaseTechObject(baseTechObject); SetItems(); }
/// <summary> /// Копия объекта /// </summary> /// <returns></returns> public BaseTechObject Clone() { var cloned = new BaseTechObject(Owner); cloned.Name = Name; var aggregateParameters = new List <BaseParameter>(); foreach (var aggrPar in AggregateParameters) { aggregateParameters.Add(aggrPar.Clone()); } cloned.AggregateParameters = aggregateParameters; if (MainAggregateParameter != null) { cloned.MainAggregateParameter = MainAggregateParameter.Clone() as MainAggregateParameter; } var baseOperations = new List <BaseOperation>(); foreach (var baseOperation in BaseOperations) { baseOperations.Add(baseOperation.Clone()); } cloned.BaseOperations = baseOperations; cloned.BasicName = BasicName; cloned.EplanName = EplanName; var equipment = new List <BaseParameter>(); foreach (var equip in Equipment) { var newEquip = equip.Clone(); newEquip.Owner = this; equipment.Add(newEquip); } cloned.Equipment = equipment; cloned.S88Level = S88Level; cloned.BindingName = BindingName; cloned.IsPID = IsPID; cloned.objectGroups = new List <AttachedObjects>(); foreach (var objectGroup in objectGroups) { var clonedStrategy = new AttachedObjectStrategy .AttachedWithoutInitStrategy( objectGroup.WorkStrategy.Name, objectGroup.WorkStrategy.LuaName, objectGroup.WorkStrategy.AllowedObjects); var clonedGroup = new AttachedObjects(objectGroup.Value, objectGroup.Owner, clonedStrategy); cloned.objectGroups.Add(clonedGroup); } cloned.SystemParams = SystemParams.Clone(); cloned.Parameters = Parameters.Clone(); cloned.LuaModuleName = LuaModuleName; cloned.MonitorName = MonitorName; return(cloned); }