public BatLogViewModel(BatNodeLog batNodeLog) { FrequencyRange = new Range <int>(0, 100); IntensityRange = new Range <int>(0, 1024); _batNodeLog = batNodeLog; _bins = new TimeCallBinCollection(300, batNodeLog.LogStart, c => true); }
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); }