/// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }