//Добавить сигнал в источник public ProviderSignal AddSignal(string signalInf, string code, DataType dataType, int idInClone = 0) { var sig = new ProviderSignal(signalInf, code, dataType, this, idInClone); ProviderSignals.Add(code, sig); string tableName = sig.Inf["TableName"]; int nodeId = sig.Inf.GetInt("NodeId"); string prop = sig.Inf["Prop"]; if (prop.IsEmpty()) { if (!_objects.ContainsKey(tableName)) { _objects.Add(tableName, new DicI <ObjectProlog>()); } var ob = _objects[tableName].Add(nodeId, new ObjectProlog(tableName, nodeId, prop)); _objectsId.Add(nodeId, ob); return(ob.AddSignal(sig)); } if (!_totals.ContainsKey(tableName)) { _totals.Add(tableName, new DicI <ObjectProlog>()); } var obt = _totals[tableName].Add(nodeId, new ObjectProlog(tableName, nodeId, prop)); _totalsId.Add(nodeId, obt); return(obt.AddSignal(sig)); }
//Добавить сигнал в провайдер public ProviderSignal AddSignal(string signalInf, string code, DataType dataType, int idInClone = 0) { var signal = new AlphaSignal(signalInf, code, dataType, this, idInClone); _signalsById.Add(signal.NodeId, signal); return(ProviderSignals.Add(code, signal)); }
//Добавление сигнала public ProviderSignal AddSignal(string signalInf, string code, DataType dataType, int idInClone = 0) { if (!ProviderSignals.ContainsKey(code)) { var sig = new ProviderSignal(signalInf, code, dataType, this, idInClone) { Value = new SingleValue(SingleType.List) }; ProviderSignals.Add(code, sig); return(sig); } return(ProviderSignals[code]); }
//Добавляет один сигнал в список public ProviderSignal AddSignal(string signalInf, string code, DataType dataType, int idInClone = 0) { var sig = new ProviderSignal(signalInf, code, dataType, this, idInClone); //Заполнение SignalsLists var ind = new ObjectIndex { Sn = sig.Inf.GetInt("SysNum"), NumType = sig.Inf.GetInt("NumType"), Appartment = sig.Inf.GetInt("Appartment"), Out = sig.Inf.GetInt("NumOut") }; ObjectKosm obj; if (ind.Out == 1 && (ind.NumType == 1 || ind.NumType == 3 || ind.NumType == 32)) { if (_analogs.ContainsKey(ind)) { obj = _analogs[ind]; } else { obj = new ObjectKosm(ind, sig.Code); _analogs.Add(ind, obj); } } else { if (_outs.ContainsKey(ind)) { obj = _outs[ind]; } else { obj = new ObjectKosm(ind, sig.Code); _outs.Add(ind, obj); } } var nsig = obj.AddSignal(sig); if (nsig == sig) { ProviderSignals.Add(sig.Code, nsig); } return(nsig); }
//Добавить сигнал в провайдер 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)); }
//Добавить сигнал public ProviderSignal AddSignal(string signalInf, string code, DataType dataType, int idInClone) { var sig = new SignalOvation(signalInf, code, dataType, this, idInClone); ObjectOvation ob; if (!_objectsId.ContainsKey(sig.Id)) { ob = new ObjectOvation(sig.Id, code); _objectsId.Add(sig.Id, ob); if (_parts.Count == 0 || _parts[_parts.Count - 1].Count == 200) { _parts.Add(new List <ProviderObject>()); } _parts[_parts.Count - 1].Add(_objectsId[sig.Id]); } ob = _objectsId[sig.Id]; if (sig.IsState) //Слово состояния { if (ob.StateSignal == null) { ProviderSignals.Add(sig.Code, sig); } return(ob.StateSignal ?? (ob.StateSignal = sig)); } if (sig.Bit == -1)//Аналоговый или дискретный { if (ob.ValueSignal == null) { ProviderSignals.Add(sig.Code, sig); } return(ob.ValueSignal ?? (ob.ValueSignal = sig)); } if (!ob.BitSignals.ContainsKey(sig.Bit))//Бит упакованного { ProviderSignals.Add(sig.Code, sig); ob.BitSignals.Add(sig.Bit, sig); } return(ob.BitSignals[sig.Bit]); }
//Добавить сигнал public ProviderSignal AddSignal(string signalInf, string code, DataType dataType, int idInClone = 0) { var dic = signalInf.ToPropertyDicS(); var proj = dic["Project"]; var ocode = dic["CodeObject"]; var itype = dic["IntervalType"].ToIntervalType(); var sp = dic["SuperProcessType"].ToSuperProcess(); if (!_intervalTypes.Contains(itype)) { _intervalTypes.Add(itype); } if (!_signalsDic.ContainsKey(proj)) { _signalsDic.Add(proj, new DicS <Dictionary <IntervalType, ProviderSignal> >()); _reportParams.Add(proj, new DicS <ArchiveReportParam>()); } var projdic = _signalsDic[proj]; var repdic = _reportParams[proj]; if (!projdic.ContainsKey(ocode)) { projdic.Add(ocode, new Dictionary <IntervalType, ProviderSignal>()); repdic.Add(ocode, new ArchiveReportParam(ocode, proj, dataType, sp, CalcParamType.Class, new List <IntervalType>())); } if (projdic[ocode].ContainsKey(itype)) { return(projdic[ocode][itype]); } var sig = new ProviderSignal(signalInf, code, dataType, this, idInClone) { Value = new SingleValue(SingleType.List) }; projdic[ocode].Add(itype, sig); ProviderSignals.Add(code, sig); repdic[ocode].Queries.Add(itype, new ArchiveQueryValues()); return(sig); }
//Добавить сигнал в провайдер public ProviderSignal AddSignal(string signalInf, string code, DataType dataType, int idInClone = 0) { var sig = new SignalWonderware(signalInf, code, dataType, this, idInClone); if (!_objects.ContainsKey(sig.TagName)) { var ob = new ObjectWonderware(sig.TagName); _objects.Add(sig.TagName, ob); if (_parts.Count == 0 || _parts[_parts.Count - 1].Count == 500) { _parts.Add(new List <ProviderObject>()); } _parts[_parts.Count - 1].Add(ob); } var ret = _objects[sig.TagName].AddSignal(sig); if (ret == sig) { ProviderSignals.Add(sig.Code, sig); } return(ret); }
//Добавить сигнал в провайдер public ProviderSignal AddSignal(string signalInf, string code, DataType dataType, int idInClone = 0) { return(ProviderSignals.Add(code, new SignalMir(signalInf, code, dataType, this, idInClone))); }