コード例 #1
0
 private void button1_Click(object sender, EventArgs e)
 {
     if (serialState == eSerialSate.SerialOff)
     {
         try
         {
             //serialPort1.WriteTimeout = 500;
             //serialPort1.ReadTimeout = 500;
             InitPort();
             this.newCanvas.Scheduler.SP.Open();
             serialState       = eSerialSate.SerialOn;
             readThread        = new Thread(ReadPort);
             readThread.Name   = "read thread";
             button1.Text      = "关闭串口";
             pictureBox1.Image = AGV.Properties.Resources.ICON_ON;
             readThread.Start();
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
             return;
         }
     }
     else
     {
         try
         {
             serialState = eSerialSate.SerialOff;
             //readThread.Join();//等待线程结束会出现线程死掉的情况,不知道为什么
             button1.Text      = "打开串口";
             pictureBox1.Image = AGV.Properties.Resources.ICON_OFF;
             if (this.newCanvas.Scheduler.SP.IsOpen)
             {
                 this.newCanvas.Scheduler.SP.Close();
             }
             if (readThread != null)
             {
                 readThread.Abort();
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
             return;
         }
     }
 }
コード例 #2
0
ファイル: Track.cs プロジェクト: fagle/agv-csharp
 private void button39_Click(object sender, EventArgs e)//打开串口
 {
     if (serialState == eSerialSate.SerialOff)
     {
         try
         {
             //serialPort1.WriteTimeout = 500;
             //serialPort1.ReadTimeout = 500;
             InitPort();
             serialPort1.Open();
             serialState     = eSerialSate.SerialOn;
             readThread      = new Thread(ReadPort);
             readThread.Name = "read thread";
             button39.Text   = "关闭串口";
             readThread.Start();
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
             return;
         }
     }
     else
     {
         try
         {
             serialState = eSerialSate.SerialOff;
             //readThread.Join();//等待线程结束会出现线程死掉的情况,不知道为什么
             button39.Text = "打开串口";
             if (serialPort1.IsOpen)
             {
                 serialPort1.Close();
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
             return;
         }
     }
 }