Exemplo n.º 1
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);
            // Get our button from the layout resource,
            // and attach an event to it
            Button connectButton = FindViewById <Button> (Resource.Id.connectButton);

            pressure              = FindViewById <TextView> (Resource.Id.pressure);
            height                = FindViewById <TextView> (Resource.Id.height);
            addTileButton         = FindViewById <Button> (Resource.Id.addTileButton);
            addTileButton.Click  += AddTileButton_Click;
            addTileButton.Enabled = false;

            connectButton.Click += async delegate {
                if (Model.Instance.Connected)
                {
                    try
                    {
                        await barometer.StopReadingsAsync();

                        await Model.Instance.Client.DisconnectAsync();

                        Model.Instance.Client = null;
                        pressure.Text         = "";
                        connectButton.Text    = "Connect Band!";
                        addTileButton.Enabled = false;
                    }
                    catch (Exception ex)
                    {
                        Util.ShowExceptionAlert(this, "Disconnect", ex);
                    }
                }
                else
                {
                    try
                    {
                        var bandClientManager = BandClientManager.Instance;
                        // query the service for paired devices
                        var pairedBands = await bandClientManager.GetPairedBandsAsync();

                        // connect to the first device
                        var bandInfo   = pairedBands.FirstOrDefault();
                        var bandClient = await bandClientManager.ConnectAsync(bandInfo);

                        Model.Instance.Client = bandClient;
                        // get the current set of tiles
                        IEnumerable <BandTile> tiles = await Model.Instance.Client.TileManager.GetTilesAsync();

                        // get the number of tiles we can add
                        int capacity = await Model.Instance.Client.TileManager.GetRemainingTileCapacityAsync();

                        foreach (BandTile tile in tiles)
                        {
                            if (tile.Id.Equals(tileId))
                            {
                                tileFound = true;
                            }
                        }
                        if (tileFound)
                        {
                            addTileButton.Text    = RemoveTileString;
                            addTileButton.Enabled = true;
                        }
                        else if (capacity != 0)
                        {
                            addTileButton.Text    = AddTileString;
                            addTileButton.Enabled = true;
                        }

                        // get the barometer sensor
                        barometer = bandClient.SensorManager.Barometer;
                        // add a handler
                        barometer.ReadingChanged += OnBarometerChanged;
                        // zero AGL
                        count = 0;
                        await barometer.StartReadingsAsync(BandSensorSampleRate.Ms128);

                        connectButton.Text              = "Disconnect Band!";
                        addTileButton.Enabled           = true;
                        altitudeContent.PageId          = pageId;
                        altitudeContent.PageLayoutIndex = 1;
                    }
                    catch (Exception ex)
                    {
                        Util.ShowExceptionAlert(this, "Connect", ex);
                    }
                }
            };
        }
Exemplo n.º 2
0
		protected override void OnCreate (Bundle savedInstanceState)
		{
			base.OnCreate (savedInstanceState);
			// Set our view from the "main" layout resource
			SetContentView (Resource.Layout.Main);
			// Get our button from the layout resource,
			// and attach an event to it
			Button connectButton = FindViewById<Button> (Resource.Id.connectButton);
			pressure = FindViewById<TextView> (Resource.Id.pressure);
			height = FindViewById<TextView> (Resource.Id.height);
			addTileButton = FindViewById<Button> (Resource.Id.addTileButton);
			addTileButton.Click += AddTileButton_Click;
			addTileButton.Enabled = false;

			connectButton.Click += async delegate {
				if (Model.Instance.Connected)
				{
					try
					{
						await barometer.StopReadingsAsync();
						await Model.Instance.Client.DisconnectAsync();
						Model.Instance.Client = null;
						pressure.Text = "";
						connectButton.Text = "Connect Band!";
						addTileButton.Enabled = false;
					}
					catch (Exception ex)
					{
						Util.ShowExceptionAlert(this, "Disconnect", ex);
					}
				}
				else
				{
					try
					{
						var bandClientManager = BandClientManager.Instance;
						// query the service for paired devices
						var pairedBands = await bandClientManager.GetPairedBandsAsync();
						// connect to the first device
						var bandInfo = pairedBands.FirstOrDefault();
						var bandClient = await bandClientManager.ConnectAsync(bandInfo);
						Model.Instance.Client = bandClient;
						// get the current set of tiles
						IEnumerable<BandTile> tiles = await Model.Instance.Client.TileManager.GetTilesAsync();
						// get the number of tiles we can add
						int capacity = await Model.Instance.Client.TileManager.GetRemainingTileCapacityAsync();
						foreach(BandTile tile in tiles)
						{
							if (tile.Id.Equals(tileId))
							{
								tileFound = true;
							}
						}
						if (tileFound)
						{
							addTileButton.Text = RemoveTileString;
							addTileButton.Enabled = true;
						}
						else if (capacity != 0)
						{
							addTileButton.Text = AddTileString;
							addTileButton.Enabled = true;
						}
							
						// get the barometer sensor
						barometer = bandClient.SensorManager.Barometer;
						// add a handler
						barometer.ReadingChanged += OnBarometerChanged;
						// zero AGL
						count = 0;
						await barometer.StartReadingsAsync(BandSensorSampleRate.Ms128);
						connectButton.Text = "Disconnect Band!";
						addTileButton.Enabled = true;
						altitudeContent.PageId = pageId;
						altitudeContent.PageLayoutIndex = 1;
					}
					catch (Exception ex)
					{
						Util.ShowExceptionAlert(this, "Connect", ex);
					}
				}
			};
		}