public PositionPage(Position position) { InitializeComponent(); var serviceProvider = Startup.ServiceProvider; this.wifiConnector = serviceProvider.GetService <IWifiConnector>(); this.bluetoothConnector = serviceProvider.GetService <IBluetoothConnector>(); this.magneticFieldSensor = serviceProvider.GetService <MagneticFieldSensor>(); this.calibrationsService = serviceProvider.GetService <ICalibrationService>(); this.positionSignalDataService = serviceProvider.GetService <IPositionSignalDataService>(); this.positionEstimationService = serviceProvider.GetService <IPositionEstimationService>(); this.localeProvider = serviceProvider.GetService <LocaleProvider>(); this.configuration = serviceProvider.GetService <Configuration>(); this.Position = position; PositionSignalDataCollection.RefreshCommand = RefreshData_Command; PositionSignalDataCollection.ItemsSource = PositionSignalData; Position.PositionSignalData? .OrderBy(data => data.SignalType) .ThenByDescending(data => data.Strength) .ToList() .ForEach(data => PositionSignalData.Add(new PositionSignalDataView(data))); BindingContext = this; timer = new Timer(configuration !.DataAquisitionInterval * 1000); timer.Elapsed += UpdateMonitoringState; timer.Start(); countLabel.Text = count.ToString(); }
private bool IsValidEstimation(PositionSignalData positionSignalData, Measurement measurement) { var magneticFieldTolerance = 0.5; var rssiTolerance = 20; return((positionSignalData.SignalType != SignalType.Magnetometer && positionSignalData.Min - rssiTolerance <= measurement.Strength && positionSignalData.Max + rssiTolerance >= measurement.Strength) || (positionSignalData.SignalType == SignalType.Magnetometer && positionSignalData.MinY - magneticFieldTolerance <= measurement.Y && positionSignalData.MaxY + magneticFieldTolerance >= measurement.Y && positionSignalData.MinZ - magneticFieldTolerance <= measurement.Z && positionSignalData.MaxZ + magneticFieldTolerance >= measurement.Z)); }
public PositionSignalDataView(PositionSignalData positionSignalData) { this.PositionSignalData = positionSignalData; }