Esempio n. 1
0
        //Добавить сигнал в источник
        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));
        }
        //Добавляет один сигнал в список
        protected override ProviderOut AddOut(ProviderSignal sig)
        {
            if (sig.Inf.Get("ObjectType") == "Operator")
            {
                return(OperatorOut ?? (OperatorOut = new KosmOperatorOut(this)));
            }

            var     ind = new OutIndex(sig.Inf.GetInt("SysNum"), sig.Inf.GetInt("NumType"), sig.Inf.GetInt("Appartment"), sig.Inf.GetInt("NumOut"));
            KosmOut obj;

            if (ind.Out == 1 && (ind.NumType == 1 || ind.NumType == 3 || ind.NumType == 32))
            {
                if (Analogs.ContainsKey(ind))
                {
                    obj = Analogs[ind];
                }
                else
                {
                    Analogs.Add(ind, obj = new KosmOut(this, ind));
                }
            }
            else
            {
                if (Outs.ContainsKey(ind))
                {
                    obj = Outs[ind];
                }
                else
                {
                    Outs.Add(ind, obj = new KosmOut(this, ind));
                }
            }
            return(obj);
        }
Esempio n. 3
0
        //Добавить выход
        protected override ProviderOut AddOut(ProviderSignal sig)
        {
            var kvintOut = new KvintOut(this, sig.Inf["Marka"], sig.Inf["ParamName"], sig.Inf.GetInt("CardId"), sig.Inf.GetInt("ParamNo"));

            Outs.Add(kvintOut);
            return(kvintOut);
        }
Esempio n. 4
0
        //Добавить выход в провайдер
        protected override ProviderOut AddOut(ProviderSignal sig)
        {
            string ocode = sig.Inf.Get("Name_Object") + "." + sig.Inf.Get("Name_Device") + "." + sig.Inf.Get("Name_Type");

            return(!Outs.ContainsKey(ocode)
                ? Outs.Add(ocode, new MirOut(this))
                : Outs[ocode]);
        }
Esempio n. 5
0
        //Добавить объект в провайдер
        protected override ProviderOut AddOut(ProviderSignal sig)
        {
            int id = sig.Inf.GetInt("Id");

            return(OutsId.ContainsKey(id)
                ? OutsId[id]
                : OutsId.Add(id, new SimaticOut(this, sig.Inf["Archive"], sig.Inf["Tag"], id)));
        }
Esempio n. 6
0
        //Добавить выход в провайдер
        protected override ProviderOut AddOut(ProviderSignal sig)
        {
            string tag = sig.Inf["TagName"];

            if (!Outs.ContainsKey(tag))
            {
                Outs.Add(tag, new WonderwareOut(this, tag));
            }
            return(Outs[tag]);
        }
Esempio n. 7
0
        //Добавить к объекту сигнал, если такого еще не было
        public ProviderSignal AddSignal(ProviderSignal sig)
        {
            var code = sig.Inf["SignalCode"];

            if (!Signals.ContainsKey(code))
            {
                Signals.Add(code, sig);
            }
            return(Signals[code]);
        }
Esempio n. 8
0
        //Добавить объект в провайдер
        protected override ProviderOut AddOut(ProviderSignal sig)
        {
            var num = sig.Inf.GetInt("NumObject");

            if (_outs.ContainsKey(num))
            {
                return(_outs[num]);
            }
            return(_outs.Add(num, new FictiveOut(this, sig.Inf.GetInt("ValuesInterval"))));
        }
Esempio n. 9
0
 //Добавление сигнала
 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]);
 }
Esempio n. 10
0
        //Добавляет один сигнал в список
        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);
        }
Esempio n. 11
0
        //Добавить выход в источник
        protected override ProviderOut AddOut(ProviderSignal sig)
        {
            int id = sig.Inf.GetInt("NodeId");

            if (OutsId.ContainsKey(id))
            {
                return(OutsId[id]);
            }
            string tableName = sig.Inf["TableName"];

            if (!Outs.ContainsKey(tableName))
            {
                Outs.Add(tableName, new DicI <LogikaOut>());
            }
            var ob = new LogikaOut(this);

            Outs[tableName].Add(id, ob);
            return(OutsId.Add(id, ob));
        }
Esempio n. 12
0
        //Добавить к объекту сигнал, если такого еще не было
        public ProviderSignal AddSignal(ProviderSignal sig)
        {
            if (sig.Inf["Prop"] == "ND")
            {
                return(StateSignal ?? (StateSignal = sig));
            }
            if (sig.Inf["Prop"] == "POK")
            {
                return(PokSignal ?? (PokSignal = sig));
            }
            int bit = sig.Inf.GetInt("NumBit", -1);

            if (bit == -1)
            {
                return(ValueSignal ?? (ValueSignal = sig));
            }
            BitSignals.Add(bit, sig);
            return(BitSignals[bit]);
        }
Esempio n. 13
0
        //Добавить выход в провайдер
        protected override ProviderOut AddOut(ProviderSignal sig)
        {
            var obType = sig.Inf.Get("ObjectType").ToUpper();

            switch (obType)
            {
            case "ALARM":
                return(AlarmOut ?? (AlarmOut = new OvationMsgOut(this, "ALARM")));

            case "SOE":
                return(SoeOut ?? (SoeOut = new OvationMsgOut(this, "SOE")));

            case "TEXT":
                return(TextOut ?? (TextOut = new OvationMsgOut(this, "TEXT")));
            }

            int id = sig.Inf.GetInt("Id");

            return(OutsId.ContainsKey(id)
                ? OutsId[id]
                : OutsId.Add(id, new OvationOut(this, id)));
        }
Esempio n. 14
0
        //Добавить сигнал
        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);
        }
Esempio n. 15
0
        //Добавление объекта
        protected override ProviderOut AddOut(ProviderSignal sig)
        {
            var  table = sig.Inf.Get("Table");
            bool isErr = sig.Inf.Get("IsErrorObject") == "True";
            var  code  = sig.Inf.Get("ObjectCode");

            switch (table)
            {
            case "MomValues":
                return(Outs.ContainsKey(code)
                        ? Outs[code]
                        : Outs.Add(code, new FictiveOut(this, isErr)));

            case "MomValues2":
                return(Outs2.ContainsKey(code)
                        ? Outs2[code]
                        : Outs2.Add(code, new FictiveSmallOut(this)));

            case "MomOperator":
                return(OperatorOut ?? (OperatorOut = new FictiveOperatorOut(this)));
            }
            return(null);
        }
Esempio n. 16
0
 //Добавить сигнал в выход
 protected override ProviderSignal AddNewSignal(ProviderSignal sig)
 {
     return(AddSourceSignal((MomSignal)sig));
 }
Esempio n. 17
0
 //Добавить сигнал в выход
 protected override ProviderSignal AddNewSignal(ProviderSignal sig)
 {
     return(AddReceiverSignal((ReceiverSignal)sig));
 }