Ejemplo n.º 1
0
        /// <summary>
        /// Коструктор
        /// </summary>
        /// <param name="steps">Коллекция, содержащая этапы измерения</param>
        /// <param name="measureResistance">Действие, вызываемое для измерения сопротивления</param>
        public TemperatureHelper(WSICollection <StepSettings> steps)
        {
            if (steps == null)
            {
                throw new ArgumentNullException("Параметр steps не должен быть null.");
            }

            StepCollection = steps;
            StepCollection.SelectedItemChanged += StepCollection_SelectionChanged;
        }
Ejemplo n.º 2
0
        private MeasurementCore()
        {
            MeasurementSteps = new WSICollection <StepSettings>();
#if WithoutDevices
            MeasurementSteps.SelectedItemChanged += MeasurementSteps_SelectedItemChanged;
#endif
            _tempHelper      = new TemperatureHelper(MeasurementSteps);
            _timer           = new System.Timers.Timer(200);
            _timer.AutoReset = true;
            _timer.Elapsed  += _timer_Elapsed;
            _temperatureRate = new MovableAverage(10);
        }
Ejemplo n.º 3
0
        private void MeasurementSteps_SelectedItemChanged(WSICollection <StepSettings> collection, ChangedEventArgs <StepSettings> args)
        {
            if (collection.SelectedItem == null)
            {
                return;
            }
            //изменяет направление симуляции измерений
            switch (collection.SelectedItem.Type)
            {
            case StepType.Heating:
                _thermocouple.Direction = 1;
                break;

            case StepType.Cooling:
                _thermocouple.Direction = -1;
                break;
            }
        }
Ejemplo n.º 4
0
        private void StepCollection_SelectionChanged(WSICollection <StepSettings> collection, ChangedEventArgs <StepSettings> args)
        {
            isDone = false;
            _step  = collection.SelectedItem;

            //Установка текущего индекса в -1 означает, что достигли конца коллекции
            // или был вызван метод ResetSelection(), т.е. перезапустили этапы
            if (collection.SelectedIndex == -1)
            {
                isDone = true;
                return;
            }

            switch (collection.SelectedItem.Type)
            {
            //TODO: необходимо ли проверять на два этих типа?
            case StepType.NotAssigned:
            case StepType.Done:
                return;

            case StepType.Waiting:
            case StepType.Heating:
                _coeff = 1;
                break;

            case StepType.Cooling:
                _coeff = -1;
                break;
            }

            NextTemperature = _step.From;
            while (_coeff * NextTemperature < _coeff * CurrentTemperature)
            {
                NextTemperature += _coeff * _step.Step;
            }
        }