/// <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); }
/// <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); }