/// <summary> /// Конструктор для класса Channel /// </summary> /// <param name="id">Новый ID канала /// Должен быть уникальным, иначе выробатывается исключение</param> /// <param name="calibration">Набор калибровочные данных для канала /// Если калибровочных данных нет, передаем null</param> /// <param name="averageLevel">Уровен усреднения значения - от 0 (не усредняем) до 10 (максимально по 10 значениям)</param> public Channel(uint id, CalibrationValues calibration, uint averageLevel) { _uiId = id; if (averageLevel > MAX_AVERAGE_LEVEL) { ADCException exc = new ADCException("Ошибка: заданный уровень усреднения " + averageLevel + " не должен превышать " + MAX_AVERAGE_LEVEL); throw exc; } if (averageLevel == 0) averageLevel = 1; _listDatas = new List<float>(); for (int i = 0; i < averageLevel; i++) _listDatas.Add(0); _clbrtValues = calibration; NegativeValuesIsCorrect = false; }
/// <summary> /// Добавляем канал рассчета данных /// </summary> /// <param name="chId">Уникальный Id канала. Если такой Id уже есть в классе, генерируем исключение</param> /// <param name="calibration">Набор калибровочных значений для данного канала. Если калибровочных значений нет, передаем null</param> /// <param name="averageLevel">Уровен усреднения значения - от 0 (не усредняем) до 10 (максимально по 10 значениям)</param> public void AddChannel(uint chId, CalibrationValues calibration, uint averageLevel) { if (_listChannel.Count != 0) foreach (Channel chnl in _listChannel) if (chnl.IsThisId(chId)) { ADCException exc = new ADCException("Ошибка: канал с ID " + chId + " уже существует!"); throw exc; } _listChannel.Add(new Channel(chId, calibration, averageLevel)); }