Exemplo n.º 1
0
 private void btn_opencan_Click(object sender, EventArgs e)
 {
     if (m_bOpen == 1)
     {
         CanToolsHelper.CloseCan();
         canrec_thread.Abort();
         m_bOpen = 0;
     }
     else
     {
         int ret = CanToolsHelper.OpenCan();
         if (ret == -1)
         {
             MessageBox.Show("Open USBCAN Failed!", "ERROR",
                             MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
         }
         else if (ret == -2)
         {
             MessageBox.Show("USBCAN Init Failed!!", "ERROR"
                             , MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
         }
         else if (ret == -3)
         {
             MessageBox.Show("USBCAN Start Failed!", "ERROR"
                             , MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
         }
         m_bOpen = 1;
         //启动一个CAN数据接收线程
         canrec_thread = new Thread(Rec_data);
         canrec_thread.Start();
     }
     btn_opencan.Text  = m_bOpen == 1 ? "关闭CAN" : "打开CAN";
     timer_rec.Enabled = m_bOpen == 1 ? true : false;
 }
Exemplo n.º 2
0
        /// <summary>
        /// 摘要:每隔30ms读取一次can数据,并将数据存储到队列中
        /// </summary>
        public void Rec_data()
        {
            string str = "";

            while (m_bOpen == 1)
            {
                str = CanToolsHelper.CanReceive();
                cq.Enqueue(str);
                Thread.Sleep(30);
            }
        }