public bool Connect()
 {
     if (!IsOpen)
     {
         IsOpen = VCI_OpenDevice(DevType, DevIndex, CanIndex) != 0;
         VCI_ERR_INFO pErrInfo = new VCI_ERR_INFO();
         VCI_ReadErrInfo(DevType, DevIndex, CanIndex, ref pErrInfo);
         if (IsOpen)
         {
             VCI_INIT_CONFIG config = new VCI_INIT_CONFIG();
             config.AccCode = 0x00;
             config.AccMask = System.Convert.ToUInt32("0xFFFFFFFF", 16);
             config.Timing0 = 0x00;
             config.Timing1 = 0x1c;
             config.Filter  = 0x01;
             config.Mode    = 0x00;
             VCI_InitCAN(DevType, DevIndex, CanIndex, ref config);
             VCI_StartCAN(DevType, DevIndex, CanIndex);
             VCI_BOARD_INFO br = new VCI_BOARD_INFO();
             VCI_ReadBoardInfo(DevType, DevIndex, ref br);
             if (rec_work_thread == null)
             {
                 rec_work_thread = new Thread(RecWorkThread);
                 rec_work_thread.Start();
             }
         }
         else
         {
             Console.WriteLine("Can卡初始化失败!");
         }
     }
     return(IsOpen);
 }
 static extern UInt32 VCI_ReadErrInfo(UInt32 DeviceType, UInt32 DeviceInd, UInt32 CANInd, ref VCI_ERR_INFO pErrInfo);