Exemplo n.º 1
0
        public static void ListOccurrencesAndMessages(PartsLib.Tools.MDRF.Reader.MDRFFileReader reader)
        {
            Console.WriteLine("File: '{0}' size: {1} kB{2}", Path.GetFileName(reader.FilePath), reader.FileLength * (1.0 / 1024), reader.FileIndexInfo.FileWasProperlyClosed ? "" : " NotProperlyClosed");

            int  lineCount       = 0;
            bool listMessages    = select.IsSet(Select.ListMessages);
            bool listOccurrences = select.IsSet(Select.ListOccurrences);

            ReadAndProcessFilterSpec filterSpec = new ReadAndProcessFilterSpec()
            {
                EventHandlerDelegate = (sender, pceData) => ProcessContentEventHandlerDelegate2(sender, pceData, ref lineCount),
                PCEMask = ProcessContentEvent.None.Set(ProcessContentEvent.Occurrence, listOccurrences).Set(ProcessContentEvent.Message | ProcessContentEvent.Error, listMessages),
            };

            currentReader.ReadAndProcessContents(filterSpec);

            Console.WriteLine();
        }
Exemplo n.º 2
0
        public static void ListSelectedMDRFParts(PartsLib.Tools.MDRF.Reader.MDRFFileReader reader)
        {
            Console.WriteLine("File: '{0}' size: {1} kB{2}", Path.GetFileName(reader.FilePath), reader.FileLength * (1.0 / 1024), reader.FileIndexInfo.FileWasProperlyClosed ? "" : " NotProperlyClosed");

            if (select.IsSet(Select.ListInfo))
            {
                Console.WriteLine(" Date First: {0:o}", reader.DateTimeInfo.UTCDateTime.ToLocalTime());
                Console.WriteLine(" Date  Last: {0:o}", reader.FileIndexInfo.FileIndexRowArray.Select(row => row.FirstBlockDateTime + (row.LastBlockDeltaTimeStamp - row.FirstBlockDeltaTimeStamp).FromSeconds()).Max().ToLocalTime());
                Console.WriteLine(" Elapsed Hours: {0:f6}", reader.FileIndexInfo.LastBlockInfo.BlockDeltaTimeStamp / 3600.0);

                foreach (var key in new string[] { "Environment.MachineName", "Environment.OSVersion" })
                {
                    currentReader.LibraryInfo.NVS.ConsoleWriteLineKeyIfPresent(key);
                }

                if (!select.IsSet(Select.ListGroupInfo))
                {
                    Console.WriteLine(" Groups: {0}", String.Join(",", reader.GroupInfoArray.Select(gi => gi.Name).ToArray()));
                }
                if (!select.IsSet(Select.ListOccurrenceInfo))
                {
                    Console.WriteLine(" Occurrences: {0}", String.Join(",", reader.OccurrenceInfoArray.Select(oi => oi.Name).ToArray()));
                }
            }

            if (select.IsSet(Select.ListIndex))
            {
                Console.WriteLine("Index NumRows: {0} RowSizeDivisor: {1}", reader.FileIndexInfo.NumRows, reader.FileIndexInfo.RowSizeDivisor);
                List <int> emptyRowIndexList = new List <int>();

                for (int rowIdx = 0; rowIdx < reader.FileIndexInfo.NumRows; rowIdx++)
                {
                    FileIndexRowBase row = reader.FileIndexInfo.FileIndexRowArray.SafeAccess(rowIdx);
                    if (row == null || row.IsEmpty)
                    {
                        emptyRowIndexList.Add(rowIdx);
                    }
                    else
                    {
                        WriteEmptyRows(" EmptyRow(s):", emptyRowIndexList);

                        Console.WriteLine(" RowIdx:{0:d4} Offset:{1} RFBits:${2:X4} URFBits:${3:X8} 1stDTS:{4:f3} lastDTS:{5:f3} 1stDT:{6:yyyyMMdd_HHmmssfff}", rowIdx, row.FileOffsetToStartOfFirstBlock, (ulong)row.FileIndexRowFlagBits, row.FileIndexUserRowFlagBits, row.LastBlockDeltaTimeStamp, row.FirstBlockDeltaTimeStamp, row.FirstBlockDateTime);
                        if (row.FileIndexRowFlagBits != FileIndexRowFlagBits.None)
                        {
                            Console.WriteLine("              RFBits:{0}", row.FileIndexRowFlagBits);
                        }
                    }
                }

                WriteEmptyRows(" EmptyRow(s):", emptyRowIndexList);

                Console.WriteLine(" LastBlock: type: {0} size: {1}", reader.FileIndexInfo.LastBlockInfo.FixedBlockTypeID, reader.FileIndexInfo.LastBlockInfo.BlockTotalLength);
            }

            if (select.IsSet(Select.ListGroupInfo))
            {
                if (reader.GroupInfoArray.SafeCount() > 0)
                {
                    foreach (var gi in reader.GroupInfoArray)
                    {
                        Console.WriteLine("GroupInfo '{0}' id:{1} fileID:{2} URFBits:${3:x4} points:{4}", gi.Name, gi.GroupID, gi.FileID, gi.FileIndexUserRowFlagBits, GetClippedGPIListString(gi, clipAfterLength: 55));
                    }
                }
                else
                {
                    Console.WriteLine("No Groups are defined");
                }
            }

            if (select.IsSet(Select.ListOccurrenceInfo))
            {
                if (reader.OccurrenceInfoArray.SafeCount() > 0)
                {
                    foreach (var oi in reader.OccurrenceInfoArray)
                    {
                        Console.WriteLine("OccurrenceInfo '{0}' id:{1} fileID:{2} URFBits:${3:x4} ", oi.Name, oi.OccurrenceID, oi.FileID, oi.FileIndexUserRowFlagBits);
                    }
                }
                else
                {
                    Console.WriteLine("No Occurrences are defined");
                }
            }

            Console.WriteLine();
        }