public SimaticObject(SimaticSignal signal) { Id = signal.Id; Tag = signal.Inf["Tag"]; Archive = signal.Inf["Archive"]; AddSignal(signal); }
//Добавление сигнала public SimaticSignal AddSignal(SimaticSignal signal) { switch (signal.Inf.Get("Prop", "").ToLower()) { case "quality": return(SignalQuality = SignalQuality ?? signal); case "flags": return(SignalFlags = SignalFlags ?? signal); default: return(SignalValue = SignalValue ?? signal); } }
//Добавить сигнал в провайдер public ProviderSignal AddSignal(string signalInf, string code, DataType dataType, int idInClone = 0) { var sig = new SimaticSignal(signalInf, code, dataType, this, idInClone); if (!_objectsId.ContainsKey(sig.Id)) { var ob = new SimaticObject(sig); _objectsId.Add(sig.Id, ob); if (_parts.Count == 0 || _parts[_parts.Count - 1].Count == 500) { _parts.Add(new List <ProviderObject>()); } _parts[_parts.Count - 1].Add(ob); ProviderSignals.Add(sig.Code, sig); return(sig); } var addsig = _objectsId[sig.Id].AddSignal(sig); return(ProviderSignals.Add(addsig.Code, addsig)); }