Example #1
0
        }                                                                               //	結束ComportListToComboBox方法

        /// <summary>
        /// UARTConnectHandle方法
        /// UARTConnectHandle方法用於處理UartComport連線設定
        /// 呼叫格式為UARTConnectHandle(comport名稱)
        ///
        /// </summary>
        /// <param name="comport_name"></param>
        public void UARTConnectHandle(string comport_name)                            //	串列埠連線處理UARTConnectHandle方法
        {                                                                             //	進入UARTConnectHandle方法
            DebugVariables.Set_UARTConnectHandle_Runtimes();                          //	呼叫Set_UARTConnectHandle_Runtimes方法遞增UARTConnectHandle_Runtimes變數
            if (UARTConnection1.GetUartComportConnected() == true)                    //  若UartComportConnected為True,代表UartComport連線中,將執行中斷連線
            {                                                                         //	進入if敘述
                label6.Text = (comport_name + "正在中斷連線");
                //  顯示連線狀態為(comport_name + "正在中斷連線"),如"COM1正在中斷連線"
                UARTConnection1.SetUartComportConnected(false);                          //	更新UartComportConnected
                UARTConnection1.UartComport.Close();                                     //	關閉UartComport連線
                button2.Text    = "連線";                                                  //	更改button2文字為"連線"
                button2.Enabled = true;                                                  //	重新開啟"連線/中斷連線"按鈕功能
                label6.Text     = "未連線";                                                 //	顯示連線狀態為"未連線"
                return;                                                                  //	結束UARTConnectHandle方法
            }                                                                            //	結束if敘述
            else                                                                         //	若UartComportConnected為False,執行連線
            {                                                                            //	進入else敘述
                label6.Text = "偵測連接埠設定";                                                 //	顯示連線狀態為"偵測連接埠設定"
                if (comport_name == "")                                                  //	若comport_name為空白(Combobox1未選定)
                {                                                                        //	進入if敘述
                    ErrorCodeMessage.Error_Message_Show((int)ErrorCodeMessage.ErrorCodeEncoding.NoSerialPortSelected);
                    //	顯示錯誤訊息
                    button2.Enabled = true;                                                   //	重新開啟"連線/中斷連線"按鈕功能
                    return;                                                                   //	結束UARTConnectHandle方法
                }                                                                             //	結束if敘述
                else                                                                          //	已選定連接埠
                {                                                                             //	進入else敘述
                    label6.Text = (comport_name + "正在嘗試連線");                                  //	顯示連線狀態為(comport_name + "正在嘗試連線"),如"COM1正在嘗試連線"
                    try                                                                       //	嘗試以comport_name建立串列通訊連線
                    {                                                                         //	進入try敘述
                        UARTConnection1.UartComport = new SerialPort(comport_name);
                        //	UartComport串列埠建立comport_name連線
                    }                                                                               //	結束try敘述
                    catch (System.IO.IOException)                                                   //	當IO發生錯誤時的例外狀況
                    {                                                                               //	進入catch敘述
                        ErrorCodeMessage.Error_Message_Show((int)ErrorCodeMessage.ErrorCodeEncoding.SerialPortConnectError);
                        //	顯示錯誤訊息
                        button2.Enabled = true;                                                     //	重新開啟"連線/中斷連線"按鈕功能
                        return;                                                                     //	結束UARTConnectHandle方法
                    }                                                                               //	結束catch敘述
                    try                                                                             //	以try方式執行資料接收
                    {                                                                               //	進入try敘述
                        if (!UARTConnection1.UartComport.IsOpen)                                    //	若UartComport未開啟
                        {                                                                           //	進入if敘述
                            UARTConnection1.UartComport.Open();                                     //	開啟UartComport
                            label6.Text = (comport_name + "已連線");                                   //	顯示連線狀態為(comport_name + "已連線"),如"COM1已連線"
                            UARTConnection1.SetUartComportConnected(true);                          //	更新UartComportConnected狀態
                            button2.Text    = "中斷連線";                                               //	更改button2文字為"中斷連線"
                            button2.Enabled = true;                                                 //	重新開啟"連線/中斷連線"按鈕功能
                        }                                                                           //	結束if敘述
                        UARTConnection1.UartComport.DataReceived += new SerialDataReceivedEventHandler(comport_DataReceived);
                        //  處理資料接收
                    }                                                                   //  結束try敘述
                    catch (Exception ex)                                                //  若發生錯誤狀況
                    {                                                                   //  進入catch敘述
                        var result = MessageBox.Show                                    //  顯示錯誤訊息
                                         (                                              //  進入錯誤訊息MessageBox設定
                                         ex.ToString(), "DataReceived Error",           //  顯示錯誤訊息ex.ToString(),標題為"DataReceived Error"
                                         MessageBoxButtons.OK,                          //  MessageBox選項為OK
                                         MessageBoxIcon.Error                           //  顯示錯誤標誌
                                         );                                             //  結束錯誤訊息MessageBox設定
                        UARTConnection1.UartComport.Close();                            //  關閉UartComport連線
                        button2.Text    = "連線";                                         //  更改button2文字為"連線"
                        button2.Enabled = true;                                         //  重新開啟"連線/中斷連線"按鈕功能
                        return;                                                         //  結束UARTConnectHandle方法
                    }                                                                   //  結束catch敘述
                }                                                                       //  結束else敘述
            }                                                                           //  結束else敘述
        }                                                                               //  結束UARTConnectHandle方法