Example #1
0
        public MainViewModel(IAccelerometer accelerometer = null,
                             IGyroscope gyroscope         = null,
                             IMagnetometer magnetometer   = null,
                             ICompass compass             = null,
                             IAmbientLight ambientLight   = null,
                             IBarometer barometer         = null,
                             IPedometer pedometer         = null,
                             IProximity proximity         = null,
                             IHeartRateMonitor heartRate  = null,
                             IHumidity humidity           = null,
                             ITemperature temperature     = null)
        {
            this.Sensors = new List <ISensorViewModel>();
            this.AddIf(accelerometer, "G");
            this.AddIf(gyroscope, "G");
            this.AddIf(magnetometer, "M");
            this.AddIf(compass, "D");
            this.AddIf(ambientLight, "Light");
            this.AddIf(barometer, "Pressure");
            this.AddIf(pedometer, "Steps");
            this.AddIf(proximity, "Near");

            this.AddIf(heartRate, "Heart Rate (bpm)");
            this.AddIf(humidity, "Humidity");
            this.AddIf(temperature, "Temp");
        }
Example #2
0
        void AddPulse(IHeartRateMonitor pulse)
        {
            this.pulse           = pulse;
            pulseMonitor.DoWork += new DoWorkEventHandler(UpdatePulse);
            pulseMonitor.RunWorkerAsync(pulse);
            pulseMonitor.RunWorkerCompleted += new RunWorkerCompletedEventHandler(UpdateCompleted);

            var n = pulsesNode.Nodes.Add(pulse.Name);

            n.Tag = pulse;
        }
Example #3
0
        public void UpdateList(IProvider provider, IHeartRateMonitor dummy)
        {
            hrmList.Items.Clear();

            foreach (var hrm in provider.HeartRateMonitors)
            {
                hrmList.Items.Add(hrm);
            }

            hrmList.Items.Add(dummy);

            hrmList.SetSelected(0, true);
        }
Example #4
0
        public void Start(IChannel channel, IHeartRateMonitor hrm, BiofeedbackSettings settings, Action <Biofeedback.Sample[]> finished)
        {
            if (channel is null)
            {
                throw new ArgumentException(nameof(channel));
            }
            if (hrm is null)
            {
                throw new ArgumentException(nameof(hrm));
            }

            finishedAction = finished;
            bf             = new Biofeedback();

            if (channel is null)
            {
                throw new ArgumentException("Couldn't open a channel");
            }

            source = new HrmSource(hrm);

            bf.Enqueue(settings.MinFrequency, settings.MaxFrequency, settings.StepSize);
            int frequencySteps = bf.TotalSteps;

            heatmapControl.NumberOfPoints = frequencySteps;
            heatmapControl.MinX           = settings.MinFrequency;
            heatmapControl.MaxX           = settings.MaxFrequency;
            statusLabel.Text = "Running";
            pauseButton.Text = "Pause";

            biofeedback = new Biofeedback();
            biofeedback.Enqueue(settings.MinFrequency, settings.MaxFrequency, settings.StepSize);
            runner                  = new BackgroundRunner();
            biofeedback.Source      = source;
            biofeedback.OnProgress += new Biofeedback.Progress((f, r, s, t) => BeginInvoke(new Biofeedback.Progress(OnProgress), f, r, s, t));
            biofeedback.OnFinished += new Biofeedback.Finished(r => BeginInvoke(new Biofeedback.Finished(OnFinished), new object[] { r }));
            runner.Progress        += new ProgressChanged((s, t, w, a, e) => BeginInvoke(new ProgressChanged(OnGeneratorProgress), s, t, w, a, e));
            var options = new RunningOptions();

            runner.Start(biofeedback, channel, options);
        }
Example #5
0
 private void HrmList_SelectedIndexChanged(object sender, EventArgs e)
 {
     SelectedItem = hrmList.SelectedItem as IHeartRateMonitor;
 }
Example #6
0
 public HrmSource(IHeartRateMonitor hrm)
 {
     this.hrm = hrm;
 }