Exemple #1
0
 public SimaticObject(SimaticSignal signal)
 {
     Id      = signal.Id;
     Tag     = signal.Inf["Tag"];
     Archive = signal.Inf["Archive"];
     AddSignal(signal);
 }
Exemple #2
0
        //Добавление сигнала
        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);
            }
        }
Exemple #3
0
        //Добавить сигнал в провайдер
        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));
        }