コード例 #1
0
 public ViewForm()
 {
     _loaded           = false;
     _currentSelection = null;
     InitializeComponent();
     saveImageDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
     saveImageDialog.Filter           = "PNG|*.png|All Files|*.*";
 }
コード例 #2
0
        private static DateTime Increment(DateTime time, FrameElement parent)
        {
            DateTime tmp;

            switch (parent.Level)
            {
            case FrameNodeLevel.Root:
                tmp = new DateTime(time.Year + 1, 1, 1);
                break;

            case FrameNodeLevel.Year:
                tmp = new DateTime(time.Year, time.Month, 1).AddMonths(1);
                break;

            case FrameNodeLevel.Month:
                tmp = new DateTime(time.Year, time.Month, time.Day).AddDays(1);
                break;

            case FrameNodeLevel.Day:
                tmp = new DateTime(time.Year, time.Month, time.Day, time.Hour, 0, 0).AddHours(1);
                break;

            case FrameNodeLevel.Hour:
                tmp = new DateTime(time.Year, time.Month, time.Day, time.Hour, time.Minute - (time.Minute % 5), 0).AddMinutes(5);
                break;

            case FrameNodeLevel.PartHour:
                tmp = new DateTime(time.Year, time.Month, time.Day, time.Hour, time.Minute, 0).AddMinutes(1);
                break;

            case FrameNodeLevel.Minute:
                tmp = new DateTime(time.Year, time.Month, time.Day, time.Hour, time.Minute, time.Second - (time.Second % 6)).AddSeconds(10);
                break;

            default:
                throw new ArgumentOutOfRangeException("parentLevel invalid: Seconds cannot be subdivided.");
            }
            return(tmp > parent.EndTime ? parent.EndTime : tmp);
        }
コード例 #3
0
 private void GraphViewport_SelectionChanged(FrameElement newSelection)
 {
     _currentSelection = newSelection;
     Invalidate();
 }
コード例 #4
0
        /// <summary>
        /// Fills the parent element, and generates the canvas data
        /// </summary>
        /// <param name="time1">The time to start the canvas</param>
        /// <param name="time2">The time to end the canvas</param>
        /// <param name="parentLevel">the parent nodes level</param>
        /// <returns>The CanvasData for the specified range and resolution</returns>
        public void FillFrameElement(FrameElement frame)
        {
            //Debug.Assert(frame.Level != FrameNodeLevel.Second); //seconds cannot be subdivided
            if (frame.Level == FrameNodeLevel.Second)
            {
                return;
            }

            long packetIndex1, packetIndex2;
            long startOffset, endOffset;


            //first time record
            packetIndex1 = TimeFile.GetPacketIndex(frame.StartTime);
            //first index record
            startOffset = IndexFile.GetDataIndex(packetIndex1);
            //second element
            DateTime curr = frame.StartTime;
            DateTime next = Increment(curr, frame); // Increment(frame.StartTime, frame.Level);

            frame.Children.Clear();

            while (curr < frame.EndTime)
            {
                packetIndex2 = TimeFile.GetPacketIndex(next);


                endOffset = IndexFile.GetDataIndex(packetIndex2);


                frame.CreateChildElement(curr, next.Subtract(curr), packetIndex2 - packetIndex1, endOffset - startOffset);

                curr         = next;
                next         = Increment(curr, frame);
                packetIndex1 = packetIndex2;
                startOffset  = endOffset;
            }


            //if (FilterFiles.Count < 1) return;

            //List<FilterData> filters = new List<FilterData>();

            ////use collected filter byte segments to generate packet counts per filter
            //foreach (var filter in FilterFiles)
            //{
            //    filters.Add(new FilterData(FilterFiles.IndexOf(filter), filter.FillBitResultsList(filterIndeces)));
            //}

            //if (CountFilters != null) CountFilters(filters);
            ////filters now contains the correct coutn information

            //for (int k = 0; k < filters.Count; k++)
            //{
            //    for (int j = 0; j < filters[k].Segments.Count; j++)
            //    {
            //        //copy the jth segment count in filter k to the kth filter index in frame child j
            //        frame.Children[j].FilterCounts.Add(filters[k].Counts[j]);
            //    }
            //}
        }
コード例 #5
0
 public FrameNodeSecond(DateTime time, FileManager fileManager, FrameElement minuteNode)
     : base(time, new TimeSpan(0, 0, 0, 1), fileManager, minuteNode)
 {
 }
コード例 #6
0
 public FrameNodeMinute(DateTime time, TimeSpan duration, FileManager fileManager, FrameElement hourNode) : base(time, duration, fileManager, hourNode)
 {
 }
コード例 #7
0
 public FrameNodeHour(DateTime time, TimeSpan duration, FileManager fileManager, FrameElement dayNode) : base(time, duration, fileManager, dayNode)
 {
 }
コード例 #8
0
 public FrameNodeDay(DateTime time, TimeSpan duration, FileManager fileManager, FrameElement monthNode) : base(time, duration, fileManager, monthNode)
 {
 }
コード例 #9
0
 public FrameNodeMonth(DateTime time, TimeSpan duration, FileManager fileManager, FrameElement yearNode)
     : base(time, duration, fileManager, yearNode)
 {
 }
コード例 #10
0
 public FrameNodeYear(DateTime time, TimeSpan duration, FileManager fileManager, FrameElement root)
     : base(time, duration, fileManager, root)
 {
 }