示例#1
0
        public TopPageViewModel(IBandClientManager manager)
        {
            this.manager                  = manager;
            this.SelectBasicsCommand      = new DelegateCommand(this.SelectBasics, () => { return(!this.ShowBasics); });
            this.SelectSensorsCommand     = DelegateCommand.FromAsyncHandler(this.SelectSensors, () => { return(!this.ShowSensors); });
            this.SelectPersonalizeCommand = DelegateCommand.FromAsyncHandler(this.SelectPersonalize, () => { return(!this.ShowPersonalize); });
            this.SelectTilesCommand       = DelegateCommand.FromAsyncHandler(this.SelectTiles, () => { return(!this.ShowTiles); });
            this.ConnectCommand           = DelegateCommand.FromAsyncHandler(this.Connect);

            App.Container.RegisterType <SensorReadingViewModel>(new ContainerControlledLifetimeManager());
            App.Container.RegisterType <PersonalizeViewModel>(new ContainerControlledLifetimeManager());
            App.Container.RegisterType <TilesViewModel>(new ContainerControlledLifetimeManager());
        }
        public MainPageViewModel(IBandClientManager bandClientManager)
        {
            this.bandClientManager = bandClientManager;

            // Set up ICommand targets for events from the view
            this.OnConnect = DelegateCommand.FromAsyncHandler(OnConnectExecute);
            this.OnSubscribeToAccelerometer = DelegateCommand.FromAsyncHandler(OnSubscribeToAccelerometerExecute, () => IsConnected);
            this.OnSubscribeToHeartRate     = DelegateCommand.FromAsyncHandler(OnSubscribeToHearthRateExecute, () => IsConnected);
            this.OnDoorbellRing             = DelegateCommand.FromAsyncHandler(OnDoorbellRingExecute, () => IsConnected);
            this.OnGarageOpen  = DelegateCommand.FromAsyncHandler(OnGarageOpenExecute, () => IsConnected);
            this.OnGarageClose = DelegateCommand.FromAsyncHandler(OnGarageCloseExecute, () => IsConnected);
            this.OnSendBarcode = DelegateCommand.FromAsyncHandler(OnSendBarcodeExecute, () => IsConnected);
        }
示例#3
0
        private async Task SetupBandAsync()
        {
            // Use the fake band client manager
            IBandClientManager clientManager = GetBandClientManager();

            // --------------------------------------------------
            // set up Band SDK code to start reading HR values..
            var bands = await clientManager.GetBandsAsync();

            _bandInfo = bands.First();

            _bandClient = await clientManager.ConnectAsync(_bandInfo);

            await SetupSensorReadingAsync(_bandClient.SensorManager.HeartRate, async (obj, ev) =>
            {
                _hrArgs.Args = ev.SensorReading;
                var payload  = JsonConvert.SerializeObject(_hrArgs);
                using (var releaser = await _lockObj.LockAsync())
                {
                    await _socketWriter.WriteAsync(payload);
                }
            });

            await SetupSensorReadingAsync(_bandClient.SensorManager.Gyroscope, async (obj, ev) =>
            {
                _gyroArgs.Args = ev.SensorReading;
                var payload    = JsonConvert.SerializeObject(_gyroArgs);
                using (var releaser = await _lockObj.LockAsync())
                {
                    await _socketWriter.WriteAsync(payload);
                }
            });

            await SetupSensorReadingAsync(_bandClient.SensorManager.Accelerometer, async (obj, ev) =>
            {
                _accArgs.Args = ev.SensorReading;
                var payload   = JsonConvert.SerializeObject(_accArgs);
                using (var releaser = await _lockObj.LockAsync())
                {
                    await _socketWriter.WriteAsync(payload);
                }
            });
        }
示例#4
0
        public async Task <bool> LoadBands()
        {
            var ret = false;

            _bandManager = BandClientManager.Instance;
            _pairedBands = await _bandManager.GetBandsAsync();

            if (_pairedBands.Length == 0)
            {
                var md = new MessageDialog("no band connected");
                await md.ShowAsync();
            }
            else
            {
                await ConnectToBand();
                await GetBandInformation();

                ret = true;
            }
            return(ret);
        }
示例#5
0
 private async void MainPage_Loaded(object sender, RoutedEventArgs e)
 {
     _bandManager = BandClientManager.Instance;
     _pairedBands = await _bandManager.GetBandsAsync();
 }
示例#6
0
        private async void OnLoad(object sender, RoutedEventArgs e)
        {
            // Set up the fake bands
            FakeBandClientManager.Configure(new FakeBandClientManagerOptions
            {
                Bands = new List <IBandInfo>
                {
                    new FakeBandInfo(BandConnectionType.Bluetooth, "Fake Band 1"),
                    new FakeBandInfo(BandConnectionType.Bluetooth, "Fake Band 2"),
                }
            });

            // Use the fake band client manager
            IBandClientManager clientManager = FakeBandClientManager.Instance;

            // Microsoft Band SDK code
            var bands = await clientManager.GetBandsAsync();

            var bandInfo = bands.First();

            var bandClient = await FakeBandClientManager.Instance.ConnectAsync(bandInfo);

            var meTile = await bandClient.PersonalizationManager.GetMeTileImageAsync();

            PersonalizationView.PersonalizationViewModel.MeTile = meTile.ToWriteableBitmap();

            var theme = await bandClient.PersonalizationManager.GetThemeAsync();

            Mapper.Map(theme, ThemeView.BandThemeViewModel);

            await StartSensor(bandClient, bandClient.SensorManager.HeartRate, ev =>
            {
                Mapper.Map(ev.SensorReading, HeartRateView.HeartRateViewModel);
            });

            await StartSensor(bandClient, bandClient.SensorManager.Altimeter, ev =>
            {
                Mapper.Map(ev.SensorReading, AltimeterView.AltimeterViewModel);
            });

            await StartSensor(bandClient, bandClient.SensorManager.AmbientLight, ev =>
            {
                Mapper.Map(ev.SensorReading, AmbientLightView.AmbientLightViewModel);
            });

            await StartSensor(bandClient, bandClient.SensorManager.Accelerometer, ev =>
            {
                Mapper.Map(ev.SensorReading, AccelerometerView.AccelerometerViewModel);
            });

            await StartSensor(bandClient, bandClient.SensorManager.Calories, ev =>
            {
                Mapper.Map(ev.SensorReading, CaloriesView.BandCaloriesViewModel);
            });

            await StartSensor(bandClient, bandClient.SensorManager.Contact, ev =>
            {
                Mapper.Map(ev.SensorReading, ContactView.BandDeviceContactViewModel);
            });

            await StartSensor(bandClient, bandClient.SensorManager.Distance, ev =>
            {
                Mapper.Map(ev.SensorReading, DistanceView.BandDistanceViewModel);
            });
            await StartSensor(bandClient, bandClient.SensorManager.Gsr, ev =>
            {
                Mapper.Map(ev.SensorReading, GsrView.GsrViewModel);
            });
            await StartSensor(bandClient, bandClient.SensorManager.Gyroscope, ev =>
            {
                Mapper.Map(ev.SensorReading, GyroView.GyroViewModel);
            });
            await StartSensor(bandClient, bandClient.SensorManager.Pedometer, ev =>
            {
                Mapper.Map(ev.SensorReading, PedometerView.BandPedometerViewModel);
            });
            await StartSensor(bandClient, bandClient.SensorManager.RRInterval, ev =>
            {
                Mapper.Map(ev.SensorReading, RRIntervalView.BandRRIntervalViewModel);
            });
            await StartSensor(bandClient, bandClient.SensorManager.SkinTemperature, ev =>
            {
                Mapper.Map(ev.SensorReading, SkinTemperatureView.BandSkinTemperatureViewModel);
            });
            await StartSensor(bandClient, bandClient.SensorManager.UV, ev =>
            {
                Mapper.Map(ev.SensorReading, UVView.BandUVViewModel);
            });
        }