Example #1
0
        public void LoadFlyBinaryFile(String flyBinFileName, out List <NavData> navDataList, out List <AngleData> angleDataList,
                                      out List <ProgramControlData> programControlDataList, out List <ServoData> servoDataList)
        {
            navDataList            = new List <NavData>();
            angleDataList          = new List <AngleData>();
            programControlDataList = new List <ProgramControlData>();
            servoDataList          = new List <ServoData>();

            if (!File.Exists(flyBinFileName))
            {
                return;
            }

            FlyParser flyParser = new FlyParser();

            using (FileStream fileStream = File.Open(flyBinFileName, FileMode.Open))
            {
                BinaryReader binaryReader = new BinaryReader(fileStream);
                while (binaryReader.BaseStream.Position <= binaryReader.BaseStream.Length - 1)
                {
                    byte[]        buffer  = binaryReader.ReadBytes(Marshal.SizeOf(typeof(FlyPacket)));
                    List <byte[]> buffer1 = flyParser.ParseData1(buffer);
                    for (int i = 0; i < buffer1.Count; ++i)
                    {
                        flyParser.ParseData2(buffer1[i], out List <NavData> _navDataList, out List <AngleData> _angleDataList,
                                             out List <ProgramControlData> _programControlDataList, out List <ServoData> _servoDataList);
                        navDataList.AddRange(_navDataList);
                        angleDataList.AddRange(_angleDataList);
                        programControlDataList.AddRange(_programControlDataList);
                        servoDataList.AddRange(_servoDataList);
                    }
                }
            }
        }