Exemplo n.º 1
0
        private void showMonitor(int n)
        {
            int i, j, k;
            tableLayoutPanelMain.Controls.Clear();
            switch (n)
            {
                case 1:
                    this.RowNum = 1;
                    this.ColumnNum = 1;
                    break;
                case 2:
                    this.RowNum = 2;
                    this.ColumnNum = 1;
                    break;
                case 4:
                    this.RowNum = 2;
                    this.ColumnNum = 2;
                    break;
                case 6:
                    this.RowNum = 2;
                    this.ColumnNum = 3;
                    break;
                default:
                    break;
            }

            /*创建显示控件*/
            MaximizeDelegate max = new MaximizeDelegate(this.maximize), min = new MaximizeDelegate(this.minimize);
            for (j = 0, k = 0; j < RowNum && k < _config.BerryDevices.Count; ++j)
            {
                for (i = 0; i < ColumnNum; ++i)
                {
                    if (k < _config.BerryDevices.Count)
                    {
                        BerryMonitorControl monitor = new BerryMonitorControl(max, min, _config.BerryDevices[k].IP, _config.BerryDevices[k].Name);
                        tableLayoutPanelMain.Controls.Add(monitor, i, j);
                        /*检查当前是否有应在本控件内显示的连接*/
                        if (_sensors.ContainsKey(_config.BerryDevices[k].IP))
                        {
                            BerrySensor sensor = _sensors[_config.BerryDevices[k].IP];
                            Log log = _logs[_config.BerryDevices[k].IP];
                            setSensorEventHandler(sensor, log, monitor, _config.BerryDevices[k]);
                            monitor.OnConnect();
                        }
                        k++;
                    }
                    else
                        break;
                }
            }
            ///*未显示的控件对应的连接应该关闭*/
            //while (k < _config.BerryDevices.Count)
            //{
            //    if (_sensors.ContainsKey(_config.BerryDevices[k].IP))
            //    {
            //        _sensors[_config.BerryDevices[k].IP].Close();
            //    }
            //    ++k;
            //}
        }
Exemplo n.º 2
0
 private void minimize(BerryMonitorControl m)
 {
     showMonitor(_config.MonitorNum);
 }
Exemplo n.º 3
0
 private void setSensorEventHandler(BerrySensor sensor, Log log, BerryMonitorControl monitor, BerryDevice device )
 {
     if (sensor == null || monitor == null || device == null)
         return;
     sensor.ConnectionClosed = connectionClosed;
     /*Sensor交给monitor显示的状态*/
     sensor.OnHR += monitor.OnHR;
     sensor.OnST += monitor.OnST;
     sensor.OnLead += monitor.OnLead;
     sensor.OnEcgStatus += monitor.OnEcgStatus;
     sensor.OnEcgGain += monitor.OnEcgGain;
     sensor.OnEcgMode += monitor.OnEcgMode;
     sensor.OnSpo2 += monitor.OnSpo2;
     sensor.OnPR += monitor.OnPR;
     sensor.OnSpo2Signal += monitor.OnSpo2Signal;
     sensor.OnSpo2Status += monitor.OnSpo2Status;
     sensor.OnSys += monitor.OnSys;
     sensor.OnDia += monitor.OnDia;
     sensor.OnMean += monitor.OnMean;
     sensor.OnCuff += monitor.OnCuff;
     sensor.OnNibpMode += monitor.OnNibpMode;
     sensor.OnNibpType += monitor.OnNibpType;
     sensor.OnNibpStatus += monitor.OnNibpStatus;
     sensor.OnResp += monitor.OnResp;
     sensor.OnTemp += monitor.OnTemp;
     sensor.OnEcgWave += monitor.OnEcgWave;
     sensor.OnSpo2Wave += monitor.OnSpo2Wave;
     sensor.OnRespWave += monitor.OnRespWave;
     /*Sensor交给log记录的信息*/
     sensor.OnEcgWave += log.AddEcg;
     //sensor.OnSpo2Wave += log.AddData;  //暂不记录血氧波形和呼吸波形
     //sensor.OnRespWave += log.AddData;
     /*Sensor交给device保存的设置信息*/
     sensor.OnLead += device.OnLead;
     sensor.OnEcgMode += device.OnEcgMode;
     sensor.OnEcgGain += device.OnEcgGain;
     sensor.OnRespGain += device.OnRespGain;
     //sensor.OnNibpType += device.OnNibpType;
     //sensor.OnNibpMode += device.OnNibpMode;
     /*Device交给sensor处理的设置*/
     device.EcgConfig += sensor.SendEcgConfig;
     device.RespConfig += sensor.SendRespConfig;
     device.NibpConfig += sensor.OnNibpConfig;
     /*Monitor交给sensor处理的控制*/
     monitor.StartNibpEvent += sensor.SendNibpStart;
     monitor.StopNibpEvent += sensor.SendNibpStop;
     /*Device交给monitor处理的报警阈值设置*/
     device.HrThresholdConfig += monitor.OnHrAlarmThreshold;
     device.Spo2ThresholdConfig += monitor.OnSpo2AlarmThreshold;
     device.RespThresholdConfig += monitor.OnRespAlarmThreshold;
     /*Monitor交给Main*/
     monitor.PlayAlarm += this.PlayAlarmSound;
     monitor.StopAlarm += this.StopAlarmSound;
 }
Exemplo n.º 4
0
 private void maximize(BerryMonitorControl m)
 {
     this.tableLayoutPanelMain.Controls.Clear();
     this.tableLayoutPanelMain.RowCount = 1;
     this.tableLayoutPanelMain.ColumnCount = 1;
     this.tableLayoutPanelMain.Controls.Add(m, 0, 0);
 }