Exemplo n.º 1
0
        public void NotifyHardwareAdded(List <IGroup> allHardware)
        {
            if (_nonSoftwareCurve || _softwareCurve != null)
            {
                return;
            }

            if (_sensorIdentifier == null)
            {
                if (!SoftwareCurve.TryParse(_settings.GetValue(
                                                new Identifier(Identifier, "curveValue").ToString(), ""),
                                            out _sensorIdentifier))
                {
                    _nonSoftwareCurve = true;
                    return;
                }
            }

            foreach (var group in allHardware)
            {
                foreach (var hardware in group.Hardware)
                {
                    HardwareAdded(hardware);
                }
            }
        }
Exemplo n.º 2
0
        public void NotifyClosing()
        {
            if (_softwareCurve == null)
            {
                return;
            }

            DetachSoftwareCurve();
            _softwareCurve.Dispose();
            _softwareCurve = null;
            ControlModeChanged?.Invoke(this);
            Debug.WriteLine("closing");
        }
Exemplo n.º 3
0
        private void AttachSoftwareCurve(SoftwareCurve newCurve)
        {
            if (_softwareCurveAttached || _softwareCurve != null)
            {
                DetachSoftwareCurve();
            }

            _softwareCurve = newCurve;
            //this.softwareCurve.Sensor.Hardware.SensorRemoved += SensorRemoved;
            //this.parentSensor.Hardware.SensorRemoved += SensorRemoved;
            _softwareCurve.SoftwareCurveValueChanged += this.HandleSoftwareCurveValueChange;
            _softwareCurve.SoftwareCurveAbort        += this.HandleSoftwareCurveAbort;
            _softwareCurve.Start();
            _softwareCurveAttached = true;
            Debug.WriteLine("attaching softwarecurve");
        }
Exemplo n.º 4
0
        public void SetSoftwareCurve(List <ISoftwareCurvePoint> points, ISensor sensor)
        {
            _sensorIdentifier = null;
            _nonSoftwareCurve = false;

            ControlMode = ControlMode.SoftwareCurve;
            var softwareCurve = new SoftwareCurve(points, sensor);

            AttachSoftwareCurve(softwareCurve);

            _settings.SetValue(new Identifier(Identifier,
                                              "curveValue").ToString(),
                               softwareCurve.ToString());

            Debug.WriteLine("softwareCurve.ToString(): " + softwareCurve.ToString());
        }
Exemplo n.º 5
0
        private void SensorAdded(ISensor sensor)
        {
            if (_softwareCurve != null)
            {
                return;
            }

            if (sensor.Identifier.ToString() == _sensorIdentifier)
            {
                if (!SoftwareCurve.TryParse(_settings.GetValue(
                                                new Identifier(Identifier, "curveValue").ToString(), ""),
                                            out List <ISoftwareCurvePoint> points))
                {
                    return;
                }
                _softwareCurve = new SoftwareCurve(points, sensor);
                Debug.WriteLine("hardware added software curve created");
                if (_mode == ControlMode.SoftwareCurve)
                {
                    AttachSoftwareCurve(_softwareCurve);
                }
            }
        }
Exemplo n.º 6
0
 private void HandleSoftwareCurveAbort(SoftwareCurve softwareCurve)
 {
     DetachSoftwareCurve();
     ControlModeChanged?.Invoke(this); // until softwarecurve is started again, get value of ControlMode is Default
     Debug.WriteLine("softwarecurve abort!");
 }
Exemplo n.º 7
0
 private void HandleSoftwareCurveValueChange(SoftwareCurve softwareCurve)
 {
     _softwareCurveValue = softwareCurve.Value;
     Debug.WriteLine("setting value from software curve: " + softwareCurve.Value);
     SoftwareControlValueChanged?.Invoke(this);
 }