Пример #1
0
        public void SensorRemove(ConsultSensor sens)
        {
            _log.WriteEntry(this,
                            String.Format("Removing live sensor: [{0}]", sens.ToString()),
                            EventEntryType.Debug);

            //Если сейчас идет прием данных
            if (_flagIsScanning)
            {
                this.SensorStopLive();

                //Дождемся завершения приема данных
                lock (this)
                {
                    //удалим информацию о сенсоре
                    _sensors.Remove(sens);
                }

                //стартанем скан сенсоров заново
                this.SensorStartLive();
            }
            else
            {
                _sensors.Remove(sens);
            }
        }
Пример #2
0
 public void Remove(ConsultSensor sens)
 {
     if (_sensors.Contains(sens))
     {
         _sensors.Remove(sens);
     }
 }
Пример #3
0
        /// <summary>
        /// Добавить сенсор для мониторинга
        /// </summary>
        /// <param name="sens">Сенсор</param>
        /// <param name="evnt">Функция callback, вызываемая при появлении данных сенсора</param>
        public void Add(ConsultSensor sens)
        {
            //смотрим существует ли уже сенсор в списке
            ConsultSensor existSensor = this[sens._name];

            //Сенсор уже есть в списке
            if (existSensor != null)
            {
                return;
            }

            _sensors.Add(sens);
        }
Пример #4
0
        private void InitializeConsult()
        {
            ConsultData data = new ConsultData(new DataEngine());

            if (_consult.DataSource.ToString() != data.ToString())
            {
                _consult.DataSource = data;
                _sensSpeed          = data.ValidSensors["Vehicle speed"];
            }
            else
            {
                try
                {
                    _sensSpeed = _consult.DataSource.ValidSensors["Vehicle speed"];
                }
                catch (KeyNotFoundException)
                {
                    throw new ConsultException("No information about sensor 'Vehicle speed'");
                }
            }
            _consult.MonitoringSensors.Add(_sensSpeed);
        }
Пример #5
0
        public void Init(ConsultSensor sens)
        {
            _queue = new Queue <float>(50);
            _flag  = new AutoResetEvent(false);
            _sens  = sens;

            InitDefaultAquaGaugeToConsult();

            this.ScaleDescription = sens.ConvFunc(1).Scale;

            MaxValue = ScaleDescription.Max;
            MinValue = ScaleDescription.Min;

            this.DialText = _sens._name + Environment.NewLine + ScaleDescription.Scale;

            _sens.NewDataFloat += NewDataUpdate;

            _workThread          = new Thread(new ThreadStart(this.WorkFunction));
            _workThread.Name     = "AquagaugeThreadSensor:[" + sens._name + "]";
            _workThread.Priority = ThreadPriority.BelowNormal;
            _workThread.Start();
        }
Пример #6
0
        public void Init(ConsultSensor sens)
        {
            _queue = new Queue <float>(50);
            _flag  = new AutoResetEvent(false);
            _sens  = sens;

            InitDefaults();

            this.ScaleDescription = sens.ConvFunc(1).Scale;

            MaximumF = ScaleDescription.Max;
            MinimumF = ScaleDescription.Min;

            this.Text = _sens._name;
            this.CustomUnitMeasure = ScaleDescription.Scale;

            _sens.NewDataFloat += new ConsultSensor.SensorNewDataFloatEven(NewDataUpdate);

            _workThread          = new Thread(new ThreadStart(this.WorkFunction));
            _workThread.Name     = "ColorBarThreadSensor:'" + sens._name + "'";
            _workThread.Priority = ThreadPriority.BelowNormal;
            _workThread.Start();
        }
Пример #7
0
        /// <summary>
        /// Добавить сенсор для сканирования
        /// </summary>
        public void SensorAdd(ConsultSensor sens)
        {
            _log.WriteEntry(this,
                            String.Format("Adding live sensor: [{0}]", sens.ToString()),
                            EventEntryType.Debug);

            if (CountOfSensors + 1 > (int)ECUConst.ECU_REG_MAX_READS)
            {
                throw new ConsultException("Достигнуто максимальное количество сенсоров - " + (int)ECUConst.ECU_REG_MAX_READS);
            }
            if (_flagIsScanning)
            {
                SensorStopLive();
                lock (this)
                {
                    _sensors.Add(sens);
                }
                this.SensorStartLive();
            }
            else
            {
                _sensors.Add(sens);
            }
        }
Пример #8
0
 public ConsultAquaGauge(ConsultSensor sens)
     : base()
 {
     Init(sens);
 }
Пример #9
0
 public ConsultColorBar(ConsultSensor sens)
     : base()
 {
     Init(sens);
 }