示例#1
0
        }                                                                               //  結束UARTConnectHandle方法

        private void comport_DataReceived(object sender, SerialDataReceivedEventArgs e)
        //  comport資料接收處理方法
        {                                                                               //  進入comport資料接收處理方法
            DebugVariables.Set_comport_DataReceived_Runtimes();                         //	呼叫Set_comport_DataReceived_Runtimes方法記錄comport_DataReceived執行次數
            if (UARTConnection1.GetUartComportConnected() == false)                     //  若UartComport未連線(UartComportConnected值為False)
            {                                                                           //  進入if敘述
                return;                                                                 //  結束comport資料接收處理方法
            }                                                                           //  結束if敘述
            byte[] buffer = new byte[1024];                                             //  宣告buffer暫存讀取資料,型態為Byte
            int    length = 0;                                                          //  宣告length變數用於記錄串列資料緩衝區長度

            try                                                                         //  以try語法嘗試讀取Uart串列資料緩衝區
            {                                                                           //  進入try敘述
                length = (sender as System.IO.Ports.SerialPort).Read(buffer, 0, buffer.Length);
                //  讀取Uart串列資料緩衝區
            }                                                                               //  結束try敘述
            catch (ArgumentNullException)                                                   //  當發生NULL例外狀況
            {                                                                               //  進入catch敘述
                return;                                                                     //	結束comport_DataReceived方法
            }                                                                               //  結束catch敘述
            Uart_Buffer_Size = length;                                                      //  更新Uart_Buffer_Size數值
            try                                                                             //  嘗試調整buffer陣列大小
            {                                                                               //  進入try敘述
                Array.Resize(ref buffer, length);                                           //  調整buffer陣列大小
            }                                                                               //  結束try敘述
            catch (ArgumentOutOfRangeException outOfRange)                                  //  若調整buffer陣列空間時範圍錯誤
            {                                                                               //  進入catch敘述
                var result = MessageBox.Show                                                //  顯示錯誤訊息
                                 (                                                          //  進入錯誤訊息MessageBox設定
                                 outOfRange.Message, "",
                                 MessageBoxButtons.OK,                                      //  MessageBox選項為OK
                                 MessageBoxIcon.Error                                       //  顯示錯誤標誌
                                 );                                                         //  結束錯誤訊息MessageBox設定
            }                                                                               //  結束catch敘述
            Display d = new Display(DisplayText);

            try                                                                         //  以try執行invoke
            {                                                                           //  進入try敘述
                Invoke(d, new object[] { buffer });
            }                                                                           //  結束try敘述
            catch (Exception)                                                           //  若發生例外狀況
            {                                                                           //  進入catch敘述
                MessageBox.Show(e.ToString());                                          //  顯示錯誤訊息
                return;                                                                 //  跳出方法
            }                                                                           //  結束catch敘述
            string message = BitConverter.ToString(buffer, 0);                          //  取得Uart傳輸之Buffer資料(ASCII編碼值)

            Uart_Buffer_ASCII_Data = message;                                           //  將Uart傳輸之Buffer資料(ASCII編碼值)填入Uart_Buffer_ASCII_Data
        }                                                                               //  結束comport資料接收處理方法
示例#2
0
        private void arduino_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            int missingInstructions = int.Parse(e.ToString());

            for (int i = 0; i < missingInstructions; i++)
            {
                if (InstructionList.Any())
                {
                    SerialWrite(InstructionList.Dequeue());
                    headMonitor.NextInstruction();
                }
                else
                {
                    arduino.Write("!");
                }
            }
        }
        private void M_port_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
#if DEBUG
            Console.WriteLine("DataReceived: {0}", e.ToString());
#endif
            SerialPort port = (SerialPort)sender;
            try
            {
                string line = port.ReadLine().Trim();
                if (line != string.Empty && OnReceived != null)
                {
                    ReceivedEvent(line);
                }
            }
            catch (Exception err)
            {
#if DEBUG
                Console.WriteLine(err.Message);
#endif
            }
        }
示例#4
0
 //_________________________________________________________________________
 private void DataReceived(object sender, SerialDataReceivedEventArgs e)
 {
     try
     {
         lock (oRread)
         {
             Thread.Sleep(200);
             int iBytesToRead = SP.Read(BufRX, 0, BufRX.Length);                         //if (ErrData ()) return;
             ShowMess("RX: " + Global.ByteArToStr(BufRX, 0, iBytesToRead));
             byte[] btaToSend = EvHandlingRecieve(BufRX, iBytesToRead);
             if (btaToSend.Length > 0)
             {
                 SP.Write(btaToSend, 0, btaToSend.Length);
             }
             Array.Clear(BufRX, 0, iBytesToRead);
         }
     }
     catch (Exception exc)
     {
         ShowMess($"{e.EventType.ToString ()}. {e.ToString ()}:\n{exc.Message}\n{exc.StackTrace}");
     }
 }
示例#5
0
        protected virtual void OnSerialDataRx(object sender, SerialDataReceivedEventArgs e)
        {
            TextTag tTag = null;

            if (sender == serialmon.MainClass.ports[0])
            {
                tTag = p1Tag;
            }
            if (sender == serialmon.MainClass.ports[1])
            {
                tTag = p2Tag;
            }
            if (tTag == null)
            {
                System.Console.WriteLine("unknown sender");
                return;
            }

            // if (e.EventType == SerialData.){
            System.Console.WriteLine("bla ({0})", e.ToString());
            return;
            //  }
        }
示例#6
0
 private static void Sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
 {
     Console.WriteLine(e.ToString());
 }
示例#7
0
 private void _serialPort2_DataReceived(object sender, SerialDataReceivedEventArgs e)
 {
     Debug.WriteLine(e.ToString());
 }
示例#8
0
 /// <summary>
 /// 串口接收
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void COM_DataReceived(object sender, SerialDataReceivedEventArgs e)
 {
     Control.CheckForIllegalCrossThreadCalls = false;            //跨线程操作控件
     if (COM.IsOpen)
     {
         string[] str = new string[5];
         try
         {
             str[0] = COM.ReadLine();
         }
         catch (System.IO.IOException)
         {
             textReceived.AppendText("IOerror!\r\n");
         }
         catch (Exception)
         {
             MessageBox.Show(e.ToString());
         }
         if (str[0] == null || str[0].Length == 0)
         {
             return;
         }
         if (str[0] == "Boot")
         {
             COM.WriteLine("Link");
             sendTime();
         }
         if (str[0] == "Time")
         {
             timerLink.Interval = 2000;
             sendTime();
         }
         if (str[0] == "Alarm")
         {
             timerLink.Interval = 2000;
             COM.WriteLine("");
             COM.WriteLine("Aon");
         }
         if (str[0] == "Lift alarm")
         {
             timerLink.Interval = 2000;
         }
         if (str[0][0] == 'H')
         {
             textReceived.AppendText(str[0] + '\r' + '\n');
             str    = str[0].Split(',');
             str[0] = str[0].TrimStart('H');
             try
             {
                 progressBar.Value          = int.Parse(str[0]);
                 labelProgressBarValue.Text = progressBar.Value.ToString();
             }
             catch (System.FormatException)
             {
                 textReceived.AppendText("Format Error!\r\n");
             }
             catch (Exception)
             {
                 MessageBox.Show(e.ToString());
             }
             if (progressBar.Value > trackBarMax.Value || progressBar.Value < trackBarMin.Value)
             {
                 Warring = true;
             }
             else
             {
                 Warring = false;
             }
             //以下为panel绘图部分
             Pen      pen   = new Pen(Color.Red, 2);
             Pen      clear = new Pen(Color.Blue, 3);
             Graphics g     = panelpicture.CreateGraphics();
             pointValue.Y = 100 - progressBar.Value;
             pointStart.Y = 100;
             g.DrawLine(Pens.White, pointStart, pointEnd);
             g.DrawLine(clear, pointStart, pointValue);
             g.DrawLine(pen, pointStart, pointValue);
             if (pointStart.X < panelpicture.Width)
             {
                 pointStart.X++;
                 pointValue.X++;
                 pointEnd.X++;
             }
             else
             {
                 pointStart.X = 0;
                 pointValue.X = 0;
                 pointEnd.X   = 0;
             }
         }
     }
 }
示例#9
0
 private void OnDataRecieve(object sender, SerialDataReceivedEventArgs e)
 {
     OnRecv(new CComArgs(_idNo, e.ToString()));
 }
示例#10
0
        public void DataReceivedHandle(object sender, SerialDataReceivedEventArgs e)
        {
            SerialPort _sp = (SerialPort)sender;

            Buffer = _sp.ReadExisting();
            if (Buffer.Length > 0)
            {
                Console.WriteLine("SerialPort : Data Received \n\t" + Buffer + "\n\tEvent - " + e.ToString());
            }
            if (this.DataReceived != null)
            {
                this.DataReceived(sender, e);
            }
        }