コード例 #1
0
        public List <TailPacketRs> LoadTailBinaryFile(String tailBinFileName)
        {
            TailParser          tailParser = new TailParser();
            List <TailPacketRs> packetList = new List <TailPacketRs>();

            if (!File.Exists(tailBinFileName))
            {
                return(packetList);
            }
            using (FileStream fileStream = File.Open(tailBinFileName, FileMode.Open))
            {
                BinaryReader binaryReader = new BinaryReader(fileStream);
                while (binaryReader.BaseStream.Position <= binaryReader.BaseStream.Length - 1)
                {
                    byte[]          headerBytes = binaryReader.ReadBytes(Marshal.SizeOf(typeof(EnvPacketHeader)));
                    EnvPacketHeader header      = Tool.ByteToStruct <EnvPacketHeader>(headerBytes, 0, headerBytes.Length);
                    if (header.syncHeader.EqualBytes(EnvProtocol.SyncHeader) && header.dataType == (byte)EnvProtocol.DataType.DataTypeTail)
                    {
                        byte[] buffer = binaryReader.ReadBytes(Marshal.SizeOf(typeof(TailPacketUdp)));
                        packetList.AddRange(tailParser.Parse(buffer));
                    }
                }
            }
            return(packetList);
        }
コード例 #2
0
 public void Start()
 {
     pos = 0;
     while (queue.TryDequeue(out byte[] dropBuffer))
     {
         ;
     }
     tailParser = new TailParser(dataLogger);
     isRuning   = true;
     thread     = new Thread(new ThreadStart(ThreadFunction));
     thread.Start();
 }