Esempio n. 1
0
 public void UpdateSpecification(SignalSpecification spec)
 {
     if (Specification.Id == spec.Id)
     {
         Specification = spec;
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Первичная установка данных по сигналу
        /// </summary>
        private void Init(string id = "", string description = "", byte level = 0)
        {
            if (string.IsNullOrEmpty(id))
            {
                throw new ArgumentException("Id cann't be null or empty");
            }

            Specification   = new SignalSpecification(id, description, level);
            QtSpecification = new QtSignalSpecification();
            State           = SignalState.Disconnected;
        }
Esempio n. 3
0
 private void Init(SignalSpecification specification)
 {
     Type        = specification.Type;
     Id          = specification.Id;
     Depth       = specification.Depth;
     Description = specification.Description;
     Range       = specification.Range;
     Level       = specification.Level;
     IsStorage   = specification.IsStorage;
     //DefaultValue = specification.DefaultValue;
 }
Esempio n. 4
0
        public ISignal AddStored(SignalSpecification specification)
        {
            lock (mAddSignalLocker)
            {
                // добавить сигнал в словарь, если его там еще нет - если есть, вернуть существующий при совпадении типа сигнала или нуль
                if (mSignals.ContainsKey(specification.Id))
                {
                    // сигнал уже когда-то был создан - возможно даже в другой сессии
                    Signal signal;
                    mSignals.TryGetValue(specification.Id, out signal);

                    // TODO: for test purpose only
                    //if (signal != null)
                    //    DatabaseSignalUpdate(signal);

                    return(signal);
                }

                // TODO: uncomment for use mDatabase
                // У нас еще нет этого сигнала в БД - добавляем
                // добавляем описание и значение в БД
                mDatabase.Insert(new ConfigRecord(specification)
                {
                    SaveAt = DateTime.Now, Value = specification.DefaultValue, DefaultValue = specification.DefaultValue
                });


                var rv = new Signal(specification);
                // по изменению значения обновляем записть в БД
                rv.OnChange += DatabaseSignalUpdate;

                // добавляем в рантаймовую карту
                mSignals.Add(specification.Id, rv);
                return(rv);
            }
        }
Esempio n. 5
0
 public Signal(SignalSpecification specification)
 {
     Specification   = specification;
     State           = SignalState.Disconnected;
     QtSpecification = new QtSignalSpecification();
 }
Esempio n. 6
0
 public ReadolnySignal(SignalSpecification spec)
 {
     Specification   = spec;
     QtSpecification = new QtSignalSpecification();
 }
Esempio n. 7
0
 public ReadolnySignal(string id)
 {
     Specification   = new SignalSpecification(id, "").SaveAsFloat(0);
     QtSpecification = new QtSignalSpecification();
 }
Esempio n. 8
0
 public ConfigRecord(SignalSpecification specification)
 {
     Init(specification);
 }