public AccelerometerUtility() { adapter.DeviceConnected += Adapter_DeviceConnected; adapter.DeviceDisconnected += Adapter_DeviceDisconnected; ble.StateChanged += Ble_StateChanged; status = ble.IsOn ? AccelerometerStatus.NotConnected : AccelerometerStatus.BluetoothTurnedOff; }
public async Task Reset() { await Stop(); if (characteristic != null) { Status = AccelerometerStatus.Connecting; characteristic.ValueUpdated -= Characteristic_ValueUpdated; characteristic = null; } }
public RecordScreenViewModel(MainContext context) : base(context) { rideController = new RideRecorder(Context); accelerometerStatus = Context.AccelerometerUtility.Status; status = RecordStatus.NotStarted; timer = new Timer(); timer.Elapsed += Timer_Elapsed; timer.Interval = 1000; Context.AccelerometerUtility.StatusChanged += BleAccelerometerUtility_StatusChanged; Context.GeoUtility.LocationChanged += GeoUtility_LocationChanged; }
public async Task TryConnect(Guid?id) { if (Status != AccelerometerStatus.NotConnected || id == null) { return; } Status = AccelerometerStatus.Connecting; try { await adapter.ConnectToKnownDeviceAsync(id.Value); } catch (DeviceConnectionException) { Status = AccelerometerStatus.NotConnected; } }
private void Adapter_DeviceConnected(object sender, DeviceEventArgs e) { var device = e.Device; device.ServicesDiscovered += async(s, ev) => { string serviceId = "19B10001-E8F2-537E-4F6C-D104768A1214".ToLowerInvariant(); IService service = device.Services .Where(i => i.Id.ToString().ToLowerInvariant() == serviceId) .SingleOrDefault(); var characteristics = await service.GetCharacteristicsAsync(); characteristic = characteristics.First(); characteristic.ValueUpdated += Characteristic_ValueUpdated; Status = AccelerometerStatus.Connected; }; Status = AccelerometerStatus.Connecting; device.DiscoverServices(); }
private void Adapter_DeviceDisconnected(object sender, DeviceEventArgs e) { Status = AccelerometerStatus.NotConnected; }