Exemplo n.º 1
0
        private void UpdateGraph(List <double> graphList) // skal ikke være static
        {
            if (chart1.InvokeRequired)
            {
                chart1.Invoke(new updateGraphDelegate(UpdateGraph), new object[] { graphList });
            }
            else
            {
                chart1.Series["Series1"].Points.Clear();

                foreach (var sample in graphList)
                {
                    chart1.Series["Series1"].Points.AddY(sample);
                }

                int puls = pulse.FindPulse();
                PulsL.Text = Convert.ToString(puls);

                if (puls > 0)
                {
                    bp.WindowOfConvertedData(graphList, puls);
                }
                if (puls <= 0)
                {
                    bp.WindowOfConvertedData(graphList, 1);
                }

                int diastolic = bp.FindDiastolic();
                DiastoliskL.Text = Convert.ToString(diastolic);

                int systolic = bp.FindSystolic();
                SystoliskL.Text = Convert.ToString(systolic);

                int mean = bp.FindMean();
                MiddelL.Text = Convert.ToString(mean);

                if (alarm.GetIsAlarmRunning() == true)
                {
                    ActiveAlarmUpdate();
                    //pauseB.Visible = true;
                    //pauseB.Enabled = true;
                    //if(AlarmCounter==0)
                    //{
                    //    ActiveAlarm.RunWorkerAsync();
                    //    AlarmCounter++;
                    //}
                }

                //if (alarm.GetIsAlarmRunning() == false)
                //{
                //    pauseB.Visible = false;
                //    AlarmCounter = 0;
                //}
            }
        }
Exemplo n.º 2
0
        public void ControlAlarm() // metode der kontrollere alarmen
        {
            //alarmThread.WaitOne(); // kører i tråd, således den hele tiden tjekker om alarmen skal starte
            bool alarmOn = false;

            while (IsMeasureActive)
            {
                for (int i = 0; i < 60; i++)
                {
                    graphList.Add(AlarmCollection.Take());
                }

                BloodpressureAlgoRef.WindowOfConvertedData(graphList, 60);

                // hvis blodtryksværdi overskrider grænseværdier
                // henter systolisk værdi i Domæne klassen "BloodPressure" og tjekker i forhold til limits-værdierne
                if (BloodpressureAlgoRef.SysBP < Limits.GetLowerLimit() ||
                    BloodpressureAlgoRef.SysBP > Limits.GetUpperLimit())
                {
                    if (!alarmOn)
                    {
                        AlarmType.RunAlarm();
                        alarmOn = true;
                    }

                    IsAlarmRunning = true;
                }

                // alarmen stopper hvis værdierne for blodtrykket ligger indenfor grænseværdierne
                if (BloodpressureAlgoRef.SysBP >= Limits.GetLowerLimit() &&
                    BloodpressureAlgoRef.SysBP <= Limits.GetUpperLimit())
                {
                    AlarmType.StopAlarm();
                    IsAlarmRunning = false;
                    alarmOn        = false;
                }
            }
        }