private void FrmLeft_FormClosing(object sender, FormClosingEventArgs e) { //AppConfig.frmLeft = null; DataRow[] d = equip_DataTable.Select(); foreach (DataRow d0 in d) { if (((SerialPort)d0["ComPort"]).IsOpen) { ((SerialPort)d0["ComPort"]).Dispose(); } else { continue; } } if (findingPort != null) { if (findingPort.IsOpen) { findingPort.Dispose(); } } if (pumpInstanceA != null) { pumpInstanceA.PumpInstanceDispose(); } if (pumpInstanceB != null) { pumpInstanceB.PumpInstanceDispose(); } if (pumpInstanceC != null) { pumpInstanceC.PumpInstanceDispose(); } if (pumpInstanceD != null) { pumpInstanceD.PumpInstanceDispose(); } if (th_findSerialPort != null) { if (th_findSerialPort.IsAlive) { th_findSerialPort.Abort(); } } if (th_overTimeSerialPort != null) { if (th_overTimeSerialPort.IsAlive) { th_overTimeSerialPort.Abort(); } } e.Cancel = true; this.Hide(); }
private void AddEquip_Menu_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { if (e.ClickedItem.Text == "断开连接") { DataRow[] drsConnect = equip_DataTable.Select("No = '" + rightClickNode.ToolTipText + "'"); ((SerialPort)drsConnect[0]["ComPort"]).Dispose(); switch (rightClickNode.Name) { case "UV": uvInstance.ClearUVSerialPort(); uvInstance.UVInstanceDispose(); ShowSerialPortLog("紫外检测器" + drsConnect[0]["No"].ToString() + "断开联接"); break; case "PumpA": pumpInstanceA.ClearPumpSerialPort(); pumpInstanceA.PumpInstanceDispose(); ShowSerialPortLog("泵" + drsConnect[0]["No"].ToString() + "断开联接"); break; case "PumpB": pumpInstanceB.ClearPumpSerialPort(); pumpInstanceB.PumpInstanceDispose(); ShowSerialPortLog("泵" + drsConnect[0]["No"].ToString() + "断开联接"); break; case "PumpC": pumpInstanceC.ClearPumpSerialPort(); pumpInstanceC.PumpInstanceDispose(); ShowSerialPortLog("泵" + drsConnect[0]["No"].ToString() + "断开联接"); break; case "PumpD": pumpInstanceD.ClearPumpSerialPort(); pumpInstanceD.PumpInstanceDispose(); ShowSerialPortLog("泵" + drsConnect[0]["No"].ToString() + "断开联接"); break; case "Collector": collectorInstance.ClearCollectorSerialPort(); collectorInstance.CollectorInstanceDispose(); ShowSerialPortLog("馏分收集器" + drsConnect[0]["No"].ToString() + "断开联接"); break; case "PH": phInstance.ClearPHSerialPort(); phInstance.PHInstanceDispose(); ShowSerialPortLog("采集器" + drsConnect[0]["No"].ToString() + "断开联接"); break; } switch (rightClickNode.Name) { case "UV": DataRow drsUV = equipShow_DataTable.NewRow(); drsUV["Type"] = "UV"; drsUV["No"] = rightClickNode.ToolTipText; drsUV["Remarks"] = ""; equipShow_DataTable.Rows.Add(drsUV); break; case "PumpA": case "PumpB": case "PumpC": case "PumpD": DataRow drsPump = equipShow_DataTable.NewRow(); drsPump["Type"] = "Pump"; drsPump["No"] = rightClickNode.ToolTipText; drsPump["Remarks"] = ""; equipShow_DataTable.Rows.Add(drsPump); break; case "Collector": DataRow drsCollector = equipShow_DataTable.NewRow(); drsCollector["Type"] = "Collector"; drsCollector["No"] = rightClickNode.ToolTipText; drsCollector["Remarks"] = ""; equipShow_DataTable.Rows.Add(drsCollector); break; case "PH": DataRow drsPH = equipShow_DataTable.NewRow(); drsPH["Type"] = "PH"; drsPH["No"] = rightClickNode.ToolTipText; drsPH["Remarks"] = ""; equipShow_DataTable.Rows.Add(drsPH); break; } rightClickNode.ForeColor = Color.DarkGray; rightClickNode.ToolTipText = ""; } else { DataRow[] drsConnect = equip_DataTable.Select("No = '" + e.ClickedItem.Text + "'"); try { ((SerialPort)drsConnect[0]["ComPort"]).Open(); }catch { return; } switch (rightClickNode.Name) { case "UV": uvInstance = new UVDetector.UV(); uvInstance.SetUVSerialPort((SerialPort)drsConnect[0]["ComPort"], drsConnect[0]["ID"].ToString()); if (uvInstance.InitialUV()) { ShowSerialPortLog("紫外检测器" + drsConnect[0]["No"].ToString() + "建立联接"); } else { ShowSerialPortLog("紫外检测器" + drsConnect[0]["No"].ToString() + "初始化失败,请重试"); ((SerialPort)drsConnect[0]["ComPort"]).Dispose(); return; } break; case "PumpA": pumpInstanceA = new Pump.Pump(); pumpInstanceA.SetPumpSerialPort((SerialPort)drsConnect[0]["ComPort"], drsConnect[0]["ID"].ToString()); if (pumpInstanceA.InitialPump('A', drsConnect[0]["No"].ToString())) { ShowSerialPortLog("泵" + drsConnect[0]["No"].ToString() + "建立联接"); } else { ShowSerialPortLog("泵" + drsConnect[0]["No"].ToString() + "初始化失败,请重试"); ((SerialPort)drsConnect[0]["ComPort"]).Dispose(); pumpInstanceA.ClearPumpSerialPort(); pumpInstanceA.PumpInstanceDispose(); return; } break; case "PumpB": pumpInstanceB = new Pump.Pump(); pumpInstanceB.SetPumpSerialPort((SerialPort)drsConnect[0]["ComPort"], drsConnect[0]["ID"].ToString()); if (pumpInstanceB.InitialPump('B', drsConnect[0]["No"].ToString())) { ShowSerialPortLog("泵" + drsConnect[0]["No"].ToString() + "建立联接"); } else { ShowSerialPortLog("泵" + drsConnect[0]["No"].ToString() + "初始化失败,请重试"); ((SerialPort)drsConnect[0]["ComPort"]).Dispose(); pumpInstanceB.ClearPumpSerialPort(); pumpInstanceB.PumpInstanceDispose(); return; } break; case "PumpC": pumpInstanceC = new Pump.Pump(); pumpInstanceC.SetPumpSerialPort((SerialPort)drsConnect[0]["ComPort"], drsConnect[0]["ID"].ToString()); if (pumpInstanceC.InitialPump('C', drsConnect[0]["No"].ToString())) { ShowSerialPortLog("泵" + drsConnect[0]["No"].ToString() + "建立联接"); } else { ShowSerialPortLog("泵" + drsConnect[0]["No"].ToString() + "初始化失败,请重试"); ((SerialPort)drsConnect[0]["ComPort"]).Dispose(); pumpInstanceC.ClearPumpSerialPort(); pumpInstanceC.PumpInstanceDispose(); return; } break; case "PumpD": pumpInstanceD = new Pump.Pump(); pumpInstanceD.SetPumpSerialPort((SerialPort)drsConnect[0]["ComPort"], drsConnect[0]["ID"].ToString()); if (pumpInstanceD.InitialPump('D', drsConnect[0]["No"].ToString())) { ShowSerialPortLog("泵" + drsConnect[0]["No"].ToString() + "建立联接"); } else { ShowSerialPortLog("泵" + drsConnect[0]["No"].ToString() + "初始化失败,请重试"); ((SerialPort)drsConnect[0]["ComPort"]).Dispose(); pumpInstanceD.ClearPumpSerialPort(); pumpInstanceD.PumpInstanceDispose(); return; } break; case "Collector": collectorInstance = new Collector.Collector(); collectorInstance.SetCollectorSerialPort((SerialPort)drsConnect[0]["ComPort"], drsConnect[0]["ID"].ToString()); if (collectorInstance.InitialCollector()) { ShowSerialPortLog("馏分收集器" + drsConnect[0]["No"].ToString() + "建立联接"); } else { ShowSerialPortLog("馏分收集器" + drsConnect[0]["No"].ToString() + "初始化失败,请重试"); ((SerialPort)drsConnect[0]["ComPort"]).Dispose(); return; } break; case "PH": phInstance = new PH.PH(); phInstance.SetPHSerialPort((SerialPort)drsConnect[0]["ComPort"], drsConnect[0]["ID"].ToString()); if (phInstance.InitialPH(e.ClickedItem.Text)) { ShowSerialPortLog("采集器" + drsConnect[0]["No"].ToString() + "建立联接"); } else { ShowSerialPortLog("采集器" + drsConnect[0]["No"].ToString() + "初始化失败,请重试"); ((SerialPort)drsConnect[0]["ComPort"]).Dispose(); return; } break; } rightClickNode.ToolTipText = e.ClickedItem.Text; rightClickNode.ForeColor = Color.Empty; DataRow[] drs = equipShow_DataTable.Select("No = '" + e.ClickedItem.Text + "'"); if (drs.Length > 0) { equipShow_DataTable.Rows.Remove(drs[0]); } } }