コード例 #1
0
        private void SensorAdded(ISensor sensor)
        {
            if (softwareCurve != null)
            {
                return;
            }

            if (sensor.Identifier.ToString() == sensorIdentifier)
            {
                List <ISoftwareCurvePoint> points;
                if (!SoftwareCurve.TryParse(settings.GetValue(
                                                new Identifier(identifier, "curveValue").ToString(), ""),
                                            out points))
                {
                    return;
                }

                this.softwareCurve = new SoftwareCurve(points, sensor);
                Debug.WriteLine("hardware added software curve created");
                if (mode == ControlMode.SoftwareCurve)
                {
                    AttachSoftwareCurve(softwareCurve);
                }
            }
        }
コード例 #2
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);
                }
            }
        }
コード例 #3
0
 private void HandleSoftwareCurveAbort(SoftwareCurve softwareCurve)
 {
     DetachSoftwareCurve();
     if (ControlModeChanged != null)
     {
         ControlModeChanged(this); // until softwarecurve is started again, get value of ControlMode is Default
     }
     Debug.WriteLine("softwarecurve abort!");
 }
コード例 #4
0
        private void AttachSoftwareCurve(SoftwareCurve newCurve)
        {
            if (this.softwareCurveAttached || this.softwareCurve != null)
            {
                DetachSoftwareCurve();
            }

            this.softwareCurve = newCurve;
            //this.softwareCurve.Sensor.Hardware.SensorRemoved += SensorRemoved;
            //this.parentSensor.Hardware.SensorRemoved += SensorRemoved;
            this.softwareCurve.SoftwareCurveValueChanged += this.HandleSoftwareCurveValueChange;
            this.softwareCurve.SoftwareCurveAbort        += this.HandleSoftwareCurveAbort;
            this.softwareCurve.Start();
            this.softwareCurveAttached = true;
            Debug.WriteLine("attaching softwarecurve");
        }
コード例 #5
0
        public void SetSoftwareCurve(List <ISoftwareCurvePoint> points, ISensor sensor)
        {
            sensorIdentifier = null;
            nonSoftwareCurve = false;

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

            AttachSoftwareCurve(softwareCurve);

            this.settings.SetValue(new Identifier(identifier,
                                                  "curveValue").ToString(),
                                   softwareCurve.ToString());

            Debug.WriteLine("softwareCurve.ToString(): " + softwareCurve.ToString());
        }
コード例 #6
0
 private void HandleSoftwareCurveValueChange(SoftwareCurve softwareCurve)
 {
     this.softwareCurveValue = softwareCurve.Value;
     Debug.WriteLine("setting value from software curve: " + softwareCurve.Value);
     this.SoftwareControlValueChanged(this);
 }