/// <summary> /// 断开CAN连接 /// </summary> public bool DisConnectCan() { if (!connected) { return(connected); } if (VCI_CloseDevice(m_devtype, m_devind) != 1) { return(connected); } connected = false; CanConnectStats?.Invoke(connected); return(connected); }
/// <summary> //CAN连接 /// </summary> public unsafe bool ConncetCan() { if (connected) { return(connected); } var config = new VCI_INIT_CONFIG { AccCode = Convert.ToUInt32("0x00000000", 16), AccMask = Convert.ToUInt32("0xFFFFFFFF", 16), Timing0 = Convert.ToByte("0x00", 16), Timing1 = Convert.ToByte("0x1C", 16), Filter = Convert.ToByte(1), Mode = Convert.ToByte(0) }; if (VCI_OpenDevice(m_devtype, m_devind, 0) == 0) { MessageBox.Show("CAN卡未正常连接,请连接CAN卡", "提示"); } else { var baud = Convert.ToUInt32("0x060007", 16); if (VCI_SetReference(m_devtype, m_devind, m_canind, 0, (byte *)&baud) != STATUS_OK) { MessageBox.Show("设置波特率错误,打开设备失败!", "错误"); VCI_CloseDevice(m_devtype, m_devind); } else { VCI_InitCAN(m_devtype, m_devind, m_canind, ref config); var open = VCI_StartCAN(m_devtype, m_devind, m_canind); if (open == 1) { connected = true; } if (open == 0) { connected = false; VCI_CloseDevice(m_devtype, m_devind); } CanConnectStats?.Invoke(connected); } } return(connected); }