public XBeeResponse Receive(Type expectedType = null, int timeout = PacketParser.DefaultParseTimeout) { var listener = new PacketListener(new PacketTypeFilter(expectedType ?? typeof(XBeeResponse))); try { AddPacketListener(listener); var responses = listener.GetPackets(timeout); if (responses.Length == 0) throw new XBeeTimeoutException(); return responses[0]; } finally { _parser.RemovePacketListener(listener); } }
public XBeeResponse[] CollectResponses(int timeout = -1, IPacketFilter filter = null) { var listener = new PacketListener(filter); try { AddPacketListener(listener); return listener.GetPackets(timeout); } finally { RemovePacketListener(listener); } }