Beispiel #1
0
        public AccelerometerUtility()
        {
            adapter.DeviceConnected    += Adapter_DeviceConnected;
            adapter.DeviceDisconnected += Adapter_DeviceDisconnected;

            ble.StateChanged += Ble_StateChanged;

            status = ble.IsOn ? AccelerometerStatus.NotConnected : AccelerometerStatus.BluetoothTurnedOff;
        }
Beispiel #2
0
        public async Task Reset()
        {
            await Stop();

            if (characteristic != null)
            {
                Status = AccelerometerStatus.Connecting;
                characteristic.ValueUpdated -= Characteristic_ValueUpdated;
                characteristic = null;
            }
        }
Beispiel #3
0
        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;
        }
Beispiel #4
0
        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;
            }
        }
Beispiel #5
0
        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();
        }
Beispiel #6
0
 private void Adapter_DeviceDisconnected(object sender, DeviceEventArgs e)
 {
     Status = AccelerometerStatus.NotConnected;
 }