Ejemplo n.º 1
0
        public Tuple <int, byte[]> CreatePacket(byte[] data)
        {
            int apid = -1;

            while (true)
            {
                if (data.Length < 14)
                {
                    return(Tuple.Create(-1, data));
                }

                OpenSatelliteProject.GRB.MSDU msdu = OpenSatelliteProject.GRB.MSDU.ParseMSDU(data);

                temporaryStorage[msdu.APID] = msdu;
                apid = msdu.APID;

                if (msdu.RemainingData.Length > 0 || msdu.Full)
                {
                    data = msdu.RemainingData;
                    msdu.RemainingData = new byte[0];
                    msduManager.FinishMSDU(msdu);
                    temporaryStorage.Remove(msdu.APID);
                    apid = -1;
                }
                else
                {
                    break;
                }
            }
            return(Tuple.Create(apid, new byte[0]));
        }