/// <summary> /// 启动所有设备 /// </summary> /// <returns>返回true表示没问题,返回false表示有问题</returns> public Ecm_CanInitialErrorTypes ConnectAndInitial(UInt32[] canIndexs, UInt32[] baudrates) { Ecm_CanInitialErrorTypes errorType = Ecm_CanInitialErrorTypes.OK; //连接CAN if (!classUsbCan.ConnectCan()) { errorType = Ecm_CanInitialErrorTypes.ConnectError; return(errorType); } m_IsOpen = true; m_CanIndexs = canIndexs; //CAN索引 m_Baudrates = baudrates; //波特率集合 //循环初始化多路CAN for (byte i = 0; i < m_CanIndexs.Length; i++) { UInt32 rec = classUsbCan.InitialCan(m_CanIndexs[i], m_Baudrates[i]); switch (rec) { case 1: break; //ok case 0x1111: errorType = Ecm_CanInitialErrorTypes.ResetError; break; case 0x2222: errorType = Ecm_CanInitialErrorTypes.SetBaudrateError; break; case 0x3333: errorType = Ecm_CanInitialErrorTypes.InitialError; break; case 0x4444: errorType = Ecm_CanInitialErrorTypes.SetFilterError; break; case 0x5555: errorType = Ecm_CanInitialErrorTypes.StartCanError; break; default: break; } } if (errorType == Ecm_CanInitialErrorTypes.OK) { InitCallback(); //初始化异步回调,使用回调函数接收数据 } return(errorType); }
/// <summary> /// 启动所有设备,例如CAN /// mtclTypes为两个设备的协议类型,支持不同协议 /// mtclTypes[0]为被测电机,mtclTypes[1]为测功机 /// </summary> /// <returns>返回true表示没问题,返回false表示有问题</returns> public Ecm_CanInitialErrorTypes Connect(Scm_DevelopCanConfig scm_DevCanConfig) //默认250Kbps { if (m_IsConnected) { return(Ecm_CanInitialErrorTypes.ConnectError); } m_ClsAbsCan.SetCanConfig(scm_DevCanConfig.canType, scm_DevCanConfig.devIndex); m_DevelopCanConfig = scm_DevCanConfig; //保存CAN配置 Ecm_CanInitialErrorTypes result = (Ecm_CanInitialErrorTypes)m_ClsAbsCan.ConnectAndInitial(scm_DevCanConfig.canIndexs, scm_DevCanConfig.baudrates); m_IsConnected = result == Ecm_CanInitialErrorTypes.OK ? true : false; return(result); }