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; //} }
private void minimize(BerryMonitorControl m) { showMonitor(_config.MonitorNum); }
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; }
private void maximize(BerryMonitorControl m) { this.tableLayoutPanelMain.Controls.Clear(); this.tableLayoutPanelMain.RowCount = 1; this.tableLayoutPanelMain.ColumnCount = 1; this.tableLayoutPanelMain.Controls.Add(m, 0, 0); }