public void UpdateSpecification(SignalSpecification spec) { if (Specification.Id == spec.Id) { Specification = spec; } }
/// <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; }
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; }
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); } }
public Signal(SignalSpecification specification) { Specification = specification; State = SignalState.Disconnected; QtSpecification = new QtSignalSpecification(); }
public ReadolnySignal(SignalSpecification spec) { Specification = spec; QtSpecification = new QtSignalSpecification(); }
public ReadolnySignal(string id) { Specification = new SignalSpecification(id, "").SaveAsFloat(0); QtSpecification = new QtSignalSpecification(); }
public ConfigRecord(SignalSpecification specification) { Init(specification); }