//Подготовка сигналов public void Prepare() { try { if (CloneFile.IsEmpty()) { return; } Logger.AddEvent("Установка отметок для считываемых сигналов"); _signalsId.Clear(); _signalsStrId.Clear(); using (var rec = new RecDao(CloneFile, "SELECT SignalId, FullCode, Otm FROM Signals")) while (rec.Read()) { string code = rec.GetString("FullCode"); if (!ProviderSignals.ContainsKey(code)) { rec.Put("Otm", false); } else { rec.Put("Otm", true); (ProviderSignals[code].DataType.LessOrEquals(DataType.Real) ? _signalsId : _signalsStrId) .Add(rec.GetInt("SignalId"), ProviderSignals[code]); } } } catch (Exception ex) { Logger.AddError("Ошибка при подготовке сигналов", ex); } }
//Подготовка провайдера, чтение значений IDCHANNEL public void Prepare() { _signalsIndication.Clear(); _signalsUnit.Clear(); using (var rec = new ReaderAdo(SqlProps, "SELECT OBJECTS.NAME_OBJECT, DEVICES.NAME_DEVICE, LIB_CHANNELS.NAME_TYPE, LIB_CHANNELS.UNIT, CHANNELS.IDCHANNEL, LIB_CHANNELS.TABLE_NAME " + "FROM CHANNELS INNER JOIN DEVICES ON CHANNELS.IDDEVICE = DEVICES.IDDEVICE INNER JOIN " + "LIB_CHANNELS ON dbo.CHANNELS.IDTYPE_CHANNEL = dbo.LIB_CHANNELS.IDTYPE_CHANNEL INNER JOIN " + "POINT_DEVICES ON dbo.DEVICES.IDDEVICE = dbo.POINT_DEVICES.IDDEVICE INNER JOIN " + "POINT_CONNECTIONS ON dbo.POINT_DEVICES.IDPOINT_CONNECTION = dbo.POINT_CONNECTIONS.IDPOINT_CONNECTION INNER JOIN " + "POINT_OBJ ON dbo.POINT_CONNECTIONS.IDPOINT_CONNECTION = dbo.POINT_OBJ.IDPOINT_CONNECTION INNER JOIN " + "OBJECTS ON dbo.POINT_OBJ.IDOBJECT = dbo.OBJECTS.IDOBJECT")) while (rec.Read()) { string code = rec.GetString("NAME_OBJECT") + "." + rec.GetString("NAME_DEVICE") + "." + rec.GetString("NAME_TYPE"); if (ProviderSignals.ContainsKey(code + ".Indication")) { var sig = (SignalMir)ProviderSignals[code + ".Indication"]; sig.IdChannel = rec.GetInt("IDCHANNEL"); _signalsIndication.Add(sig.IdChannel, sig); } if (ProviderSignals.ContainsKey(code + ".Unit")) { var sig = (SignalMir)ProviderSignals[code + ".Unit"]; sig.IdChannel = rec.GetInt("IDCHANNEL"); _signalsUnit.Add(sig.IdChannel, sig); } } }
//Добавить сигнал в источник 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 void ClearSignals() { ProviderSignals.Clear(); _reportParams.Clear(); _signalsDic.Clear(); _intervalTypes.Clear(); }
//Добавить сигнал в провайдер 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 void ClearSignals() { ProviderSignals.Clear(); _objects.Clear(); _totals.Clear(); _objectsId.Clear(); _totalsId.Clear(); }
//Добавление сигнала 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 void Prepare() { try { Logger.AddEvent("Подготовка сигналов"); _signalsId.Clear(); _signalsStrId.Clear(); using (var rec = new DataSetSql(SqlProps, "SELECT SignalId, FullCode, Otm FROM Signals")) while (rec.Read()) { string code = rec.GetString("FullCode"); if (ProviderSignals.ContainsKey(code)) { (ProviderSignals[code].DataType.LessOrEquals(DataType.Real) ? _signalsId : _signalsStrId) .Add(rec.GetInt("SignalId"), ProviderSignals[code]); } } } catch (Exception ex) { Logger.AddError("Ошибка при подготовке сигналов", ex); } }
//Очистка списка сигналов public void ClearSignals() { ProviderSignals.Clear(); }
//Добавить сигнал в провайдер public ProviderSignal AddSignal(string signalInf, string code, DataType dataType, int idInClone = 0) { return(ProviderSignals.Add(code, new SignalMir(signalInf, code, dataType, this, idInClone))); }
//Очистка списка сигналов public void ClearSignals() { ProviderSignals.Clear(); _outs.Clear(); _analogs.Clear(); }
//Очистка списка сигналов public void ClearSignals() { _objectsId.Clear(); ProviderSignals.Clear(); _parts.Clear(); }
public void ClearSignals() { ProviderSignals.Clear(); _signalsId.Clear(); _signalsStrId.Clear(); }