public virtual void ProcessPacket(XBeeResponse packet) { if (Finished) { return; } var packetAccepted = Filter == null || Filter.Accepted(packet); var finished = Filter != null && Filter.Finished(); if (!packetAccepted) { return; } if (ResponseHandler != null) { ResponseHandler.Invoke(packet, finished); } else { Packets.Add(packet); } Finished = finished; }