Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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]);
                }
            }
        }