Пример #1
0
        protected LogDetailsPageModel(BatNodeLog batLog)
        {
            EditLogCommand = new RelayCommand(() => _navigationService.EditLog(BatLog));

            BatLog = batLog;
            _batCalls = new List<BatCall>();

            FrequencyRange = new Range<uint>(0, 100);
            FrequencyRange.PropertyChanged += async (s, e) => await UpdateBins();

            IntensityRange = new Range<uint>(0, 1024);
            IntensityRange.PropertyChanged += async (s, e) => await UpdateBins();

            DurationRange = new Range<uint>(0, 100);
            DurationRange.PropertyChanged += async (s, e) => await UpdateBins();

            TimeRange = new Range<uint>(0, 100);
            TimeRange.PropertyChanged += async (s, e) => await UpdateBins();

			//BUG!
            Func<BatCall, bool> filter = c => IntensityRange.Contains(c.MaxPower) && FrequencyRange.Contains(c.MaxFrequency) && DurationRange.Contains(c.Duration / 1000) && TimeRange.Contains(c.StartTimeMs);
            FreqBins = new UintBinCollection(100, b => (uint)b.MaxFrequency, filter);
            IntensityBins = new UintBinCollection(200, b => (uint)b.MaxPower, filter);
            CallDurationBins = new UintBinCollection(100, b => b.Duration / 1000, filter);
            TimeBins = new TimeCallBinCollection(200, batLog.LogStart, filter);
        }
Пример #2
0
        public CallDetailsViewModel(LogDetailsPageModel parentModel) : base(parentModel)
        {
            FrequencyRange = new Range <uint>(0, 100);
            FrequencyRange.PropertyChanged += async(s, e) => await UpdateBins();

            IntensityRange = new Range <uint>(0, 1024);
            IntensityRange.PropertyChanged += async(s, e) => await UpdateBins();

            DurationRange = new Range <uint>(0, 100);
            DurationRange.PropertyChanged += async(s, e) => await UpdateBins();

            TimeRange = new Range <uint>(0, 100);
            TimeRange.PropertyChanged += async(s, e) => await UpdateBins();

            Func <BatCall, bool> filter = c => IntensityRange.Contains(c.MaxPower) && FrequencyRange.Contains(c.MaxFrequency) && DurationRange.Contains(c.Duration / 1000) && TimeRange.Contains(c.StartTimeMs);

            FreqBins         = new UintBinCollection(100, b => b.MaxFrequency, filter);
            IntensityBins    = new UintBinCollection(200, b => b.MaxPower, filter);
            CallDurationBins = new UintBinCollection(100, b => b.Duration / 1000, filter);
            TimeBins         = new TimeCallBinCollection(200, ParentViewModel.BatLog.LogStart, filter);
        }