public string ReadFirstDatagram(string Protocol) { if (!Datagrams.Any()) { return(null); } if (!AnyDatagrams(Protocol)) { return(null); } MyAntennaDatagram Datagram = Datagrams.First(x => x.Protocol == Protocol); List <MyAntennaDatagram> RemainingDatagrams = new List <MyAntennaDatagram>(Datagrams); RemainingDatagrams.Remove(Datagram); Datagrams = new Queue <MyAntennaDatagram>(RemainingDatagrams); return(Datagram.Data); }
public void Receive(MyAntennaDatagram Datagram) { if (!Block.IsWorking) { return; } if (!AllowReceive) { return; } if (Datagram.Protocol != null && UsesProtocols && !Protocols.Contains(Datagram.Protocol)) { return; } if (Datagrams.Count >= DatagramStorageSize) { Datagrams.Dequeue(); } Datagrams.Enqueue(Datagram); }