Ejemplo n.º 1
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (Form1.stop)
            {
                this.component.EmptyingQueue();
                this.timer1.Stop();
                return;
            }
            if (component.input_ports != null)
            {
                foreach (Input_port input_port in component.input_ports)
                {
                    if (input_port.Port_queue1.Count > 0) //若input端口内部队列有数据
                    {
                        Object data = input_port.Port_queue1.Dequeue();
                        if (data.GetType().Name != "HeartRateDataType") //若不是心率数据则不显示
                        {
                            return;
                        }

                        heartRate = (HeartRateDataType)data;
                    }
                    else
                    {
                        heartRate = null;
                    }
                }
            }

            Set_HeartRateMonitoringChart();               //设置心率监控图表
            Add_HeartRateDatas();                         //添加心率数据
            Series series = HeartRateChart.Series[0];     //设置点在心率监控图表首次出现位置

            HeartRateChart.ChartAreas[0].AxisX.ScaleView.Position = series.Points.Count - 20;
        }
Ejemplo n.º 2
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (Form1.stop)
            {
                this.component.EmptyingQueue();
                this.timer1.Stop();
                return;
            }
            if (component.input_ports == null)
            {
                return;
            }

            foreach (Input_port input_port in component.input_ports)
            {
                if (input_port.Port_queue1.Count > 0) //若input端口内部队列有数据
                {
                    Object data = (Object)input_port.Port_queue1.Dequeue();
                    switch (data.GetType().Name)
                    {
                    case "BloodPressureDataType":
                        bloodPressure = (BloodPressureDataType)data;
                        break;

                    case "TemperatureDataType":
                        temperature = (TemperatureDataType)data;
                        break;

                    case "HeartRateDataType":
                        heartRate = (HeartRateDataType)data;
                        break;
                    }
                }
                else  //若input端口内部队列无数据
                {
                    bloodPressure = null;
                    temperature   = null;
                    heartRate     = null;
                }
            }

            Set_BloodPressureMonitoringChart();             //设置血压监控图表
            Add_BloodPressureDatas();                       //添加血压数据
            Series series1 = BloodPressureChart.Series[0];  //设置点在血压监控图表首次出现位置

            BloodPressureChart.ChartAreas[0].AxisX.ScaleView.Position = series1.Points.Count - 145;

            Set_TemperatureMonitoringChart();               //设置体温监控图表
            Add_TemperatureDatas();                         //添加体温数据
            Series series2 = TemperatureChart.Series[0];    //设置点在体温监控图表首次出现位置

            TemperatureChart.ChartAreas[0].AxisX.ScaleView.Position = series2.Points.Count - 145;

            Set_HeartRateMonitoringChart();                 //设置心率监控图表
            Add_HeartRateDatas();                           //添加心率数据
            Series series3 = HeartRateChart.Series[0];      //设置点在心率监控图表首次出现位置

            HeartRateChart.ChartAreas[0].AxisX.ScaleView.Position = series3.Points.Count - 145;
        }
Ejemplo n.º 3
0
        /********************************************
        *  函数名称:MonitorMonitorHeartRateData()
        *  功能:显示HeartRateDataType类型数据
        *  参数:data 表示所要显示的数据
        *  返回值:无
        * ******************************************/
        private void MonitorHeartRateData(Object data)
        {
            HeartRateDataType temp = (HeartRateDataType)data;

            if (this.richTextBox1.CanFocus)
            {
                this.richTextBox1.AppendText("[" + temp.HeartRate + "] ");
            }
        }
Ejemplo n.º 4
0
 //--------心率数据导入图表-------------------------//
 public void Add_HeartRateDatas()
 {
     if (heartRate != null)
     {
         //向心率数据列表中添加数据
         heartRateDatas.Add(heartRate);
         hrVolume++;
         foreach (HeartRateDataType hr in heartRateDatas)
         {
             this.chart3.Series[0].Points.AddY(hr.HeartRate);
         }
     }
     else
     {
         HeartRateDataType hr = new HeartRateDataType();
         hr.HeartRate = 0;
         heartRateDatas.Add(hr);
         foreach (HeartRateDataType h in heartRateDatas)
         {
             this.chart3.Series[0].Points.AddY(h.HeartRate);
         }
     }
     //this.timer1.Stop();
 }
Ejemplo n.º 5
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (Form1.stop)
            {
                //MessageBox.Show("显示组件终止!");
                this.component.EmptyingQueue();
                this.timer1.Stop();
                return;
            }
            //if (Form1.pause)
            //{
            //    //MessageBox.Show("显示组件暂停!");
            //    //this.timer1.Stop();
            //    this.manualResetEvent = new ManualResetEvent(false);
            //    manualResetEvent.WaitOne();
            //}

            //若显示控制器组件input端口数组不为空
            if (component.input_ports != null)
            {
                foreach (Input_port input_port in component.input_ports)
                {
                    try
                    {
                        if (input_port.Port_queue1.Count > 0) //若input端口内部队列有数据
                        {
                            switch (input_port.Port_name1)
                            {
                            case "BloodPressurePort":
                                bloodPressure = (BloodPressureDataType)input_port.Port_queue1.Dequeue();
                                break;

                            case "TemperaturePort":
                                temperature = (TemperatureDataType)input_port.Port_queue1.Dequeue();
                                break;

                            case "HeartRatePort":
                                heartRate = (HeartRateDataType)input_port.Port_queue1.Dequeue();
                                break;

                            default:
                                Object temp = (Object)input_port.Port_queue1.Dequeue();

                                if (temp.GetType().Name == "BloodPressureDataType")
                                {
                                    bloodPressure = (BloodPressureDataType)temp;
                                }
                                else if (temp.GetType().Name == "TemperatureDataType")
                                {
                                    temperature = (TemperatureDataType)temp;
                                }
                                else if (temp.GetType().Name == "HeartRateDataType")
                                {
                                    heartRate = (HeartRateDataType)temp;
                                }
                                break;
                            }
                        }
                        else  //若input端口内部队列无数据
                        {
                            switch (input_port.Port_name1)
                            {
                            case "BloodPressurePort":
                                bloodPressure = null;
                                break;

                            case "TemperaturePort":
                                temperature = null;
                                break;

                            case "HeartRatePort":
                                heartRate = null;
                                break;

                            default:
                                bloodPressure = null;
                                temperature   = null;
                                heartRate     = null;
                                break;
                            }
                        }
                    }
                    catch (Exception e1)
                    {
                        Console.WriteLine(e1.Message);
                    }
                } // foreach (Input_port input_port in component.input_ports)
            }     //if(component.input_ports != null)

            //Random rd = new Random();
            //++++++++ Debug 显示组件内部生成血压数据++++++++//
            //high = rd.Next(110, 140);
            //low = rd.Next(50, 90);
            //bloodPressure = new int[] { high, low };
            //+++++++++++++++++++++++++++++++++++++++++++++++//
            Set_BloodPressureMonitoringChart(); //设置血压监控图表
            Add_BloodPressureDatas();
            Series series = chart1.Series[0];   //设置点在血压监控图表首次出现位置

            chart1.ChartAreas[0].AxisX.ScaleView.Position = series.Points.Count - 10;


            //++++++++ Debug 显示组件内部生成血压数据+++++++++++++++++++++++++++++++++++++++++//
            //temperature = Math.Round((rd.NextDouble() * (max_temp - min_temp) + min_temp), 1);
            //Console.WriteLine("temp=" + temperature);
            //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
            Set_TemperatureMonitoringChart();  //设置体温监控图表
            Add_TemperatureDatas();
            Series series2 = chart2.Series[0]; //设置点在体温监控图表首次出现位置

            chart2.ChartAreas[0].AxisX.ScaleView.Position = series2.Points.Count - 10;

            //++++++++ Debug 显示组件内部生成心率数据++++++++//
            //Random rd = new Random();
            //hartRate = rd.Next(min_rate, max_rate);
            //+++++++++++++++++++++++++++++++++++++++++++++++//
            Set_HeartRateMonitoringChart();    //设置心率监控图表
            Add_HeartRateDatas();
            Series series3 = chart3.Series[0]; //设置点在心率监控图表首次出现位置

            chart3.ChartAreas[0].AxisX.ScaleView.Position = series3.Points.Count - 10;

            //-----------数据量统计-----------//
            //Set_DataStatisticsChart();
            //Add_DataStatistics();
        }