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; //} } }
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; } } }