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