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); } }
public void Remove(ConsultSensor sens) { if (_sensors.Contains(sens)) { _sensors.Remove(sens); } }
/// <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); }
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); }
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(); }
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(); }
/// <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); } }
public ConsultAquaGauge(ConsultSensor sens) : base() { Init(sens); }
public ConsultColorBar(ConsultSensor sens) : base() { Init(sens); }