Ejemplo n.º 1
0
        /// <summary>
        /// 根据给定通道索引号
        /// 获取通道message
        /// </summary>
        /// <param name="index">通道索引值(基于0)</param>
        /// <param name="channelName">通道Name</param>
        /// <param name="message">接收到的消息</param>
        /// <returns>状态码</returns>
        public static CANError GetSingleChannelMessage(ref Int32 index, ref String channelName, out ReceiveObject message)
        {
            message = new ReceiveObject();
            var result = CanInteraction.CANRcvMsg(index, ref message);

            if (result == CANError.ErrNon)
            {
                OnReceiveMessageEvent(channelName, message);
            }
            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取多个通道的Message
        /// 如出现错误则接收Message 为 null
        /// </summary>
        /// <param name="channelNames">通道Name列表</param>
        /// <param name="message">接收到的信息列表</param>
        /// <returns>状态码</returns>
        public static CANError GetMultiChannelMessage(ref List <String> channelNames, out List <ReceiveObject> message)
        {
            var result = CANError.ErrNon;

            message = new List <ReceiveObject>();
            for (Int32 flag = 0; flag < channelNames.Count; flag++)
            {
                ReceiveObject receive = new ReceiveObject();
                result = CanInteraction.CANRcvMsg(flag, ref receive);
                if (result == CANError.ErrNon)
                {
                    message.Add(receive);
                    OnReceiveMessageEvent(channelNames[flag], receive);
                }
                else if (result != CANError.Err_RcvEmpty)
                {
                    message = null;
                    break;
                }
            }
            return(result);
        }