Esempio n. 1
0
        void InitializeCoreBluetooth()
        {
            manager.UpdatedState += OnCentralManagerUpdatedState;

            //HACK: Modified this to just quit after finding the first heart rate monitor
            EventHandler <CBDiscoveredPeripheralEventArgs> discovered = null;

            discovered += (sender, e) => {
                if (monitor != null)
                {
                    monitor.Dispose();
                }

                monitor = new HeartRateMonitor(manager, e.Peripheral);
                monitor.HeartRateUpdated += OnHeartRateUpdated;
                monitor.HeartBeat        += OnHeartBeat;

                heartRateMonitors.Add(monitor);

                //HACK: instead of adding to a list, just use this one
                statusLabel.Text              = "Found " + monitor.Name + ".";
                manager.DiscoveredPeripheral -= discovered;
            };
            manager.DiscoveredPeripheral += discovered;

            manager.ConnectedPeripheral += (sender, e) => e.Peripheral.DiscoverServices();

            manager.DisconnectedPeripheral += (sender, e) => DisconnectMonitor();

            HeartRateMonitor.ScanForHeartRateMonitors(manager);
        }
        void InitializeCoreBluetooth()
        {
            manager.UpdatedState += OnCentralManagerUpdatedState;

            manager.DiscoveredPeripheral += (sender, e) => {
                LogPeripheral("Discovered", e.Peripheral);
                heartRateMonitors.Add(e.Peripheral);
                deviceTableView.ReloadData();
            };

            manager.FailedToConnectPeripheral += (sender, e) => {
                LogPeripheral($"Failed to connect ({e.Error})", e.Peripheral);
                DisconnectMonitor();
            };

            manager.ConnectedPeripheral += (sender, e) => {
                LogPeripheral("Connected", e.Peripheral);
                statusLabel.StringValue = "Discovering services...";
                disconnectButton.Hidden = false;
                e.Peripheral.DiscoverServices();
            };

            manager.DisconnectedPeripheral += (sender, e) => {
                LogPeripheral("Disconneceted", e.Peripheral);
                heartRateMonitors.Remove(e.Peripheral);
                deviceTableView.ReloadData();
                DisconnectMonitor();
            };

            HeartRateMonitor.ScanForHeartRateMonitors(manager);
        }
Esempio n. 3
0
        void OnCentralManagerUpdatedState(object sender, EventArgs e)
        {
            string message = null;

            switch (manager.State)
            {
            case CBCentralManagerState.PoweredOn:
                HeartRateMonitor.ScanForHeartRateMonitors(manager);
                //connectButton.Enabled = true;
                message = "Scanning...";
                return;

            case CBCentralManagerState.Unsupported:
                message = "The platform or hardware does not support Bluetooth Low Energy.";
                break;

            case CBCentralManagerState.Unauthorized:
                message = "The application is not authorized to use Bluetooth Low Energy.";
                break;

            case CBCentralManagerState.PoweredOff:
                message = "Bluetooth is currently powered off.";
                break;

            default:
                message = "Unhandled state: " + manager.State;
                break;
            }

            if (message != null)
            {
                var alert = new UIAlertView("Alert", message, null, "OK", null);
                alert.Show();
            }
        }
Esempio n. 4
0
		void ConnectToSelectedDevice (object sender, EventArgs e)
		{
			monitor = heartRateMonitors [0];
			Console.WriteLine ("monitor:" + monitor);
			if (monitor != null) {
				statusLabel.Text = "Connecting to " + monitor.Name + " ... ";
				monitor.Connect ();
			}
		}
Esempio n. 5
0
 void ConnectToSelectedDevice(object sender, EventArgs e)
 {
     monitor = heartRateMonitors [0];
     Console.WriteLine("monitor:" + monitor);
     if (monitor != null)
     {
         statusLabel.Text = "Connecting to " + monitor.Name + " ... ";
         monitor.Connect();
     }
 }
Esempio n. 6
0
		void DisconnectMonitor ()
		{
			statusLabel.Text = "Not connected";
			heartRateLabel.Text = "0";
			heartRateLabel.Hidden = true;
			heartRateUnitLabel.Hidden = true;
			deviceNameLabel.Text = String.Empty;
			deviceNameLabel.Hidden = true;

			if (monitor != null) {
				monitor.Dispose ();
				monitor = null;
			}
		}
Esempio n. 7
0
        void DisconnectMonitor()
        {
            statusLabel.Text          = "Not connected";
            heartRateLabel.Text       = "0";
            heartRateLabel.Hidden     = true;
            heartRateUnitLabel.Hidden = true;
            deviceNameLabel.Text      = String.Empty;
            deviceNameLabel.Hidden    = true;

            if (monitor != null)
            {
                monitor.Dispose();
                monitor = null;
            }
        }
        void ConnectToSelectedDevice(object sender, EventArgs e)
        {
            var peripheral = heartRateMonitors [(int)deviceTableView.SelectedRow];

            if (peripheral != null)
            {
                DisconnectMonitor();

                statusLabel.StringValue = "Connecting...";

                connectedMonitor                   = new HeartRateMonitor(manager, peripheral);
                connectedMonitor.HeartBeat        += OnHeartBeat;
                connectedMonitor.HeartRateUpdated += OnHeartRateUpdated;
                connectedMonitor.RssiUpdated      += OnRssiUpdated;
                connectedMonitor.NameUpdated      += OnNameUpdated;
                connectedMonitor.Connect();
            }

            DismissDeviceListSheet((NSObject)sender);
        }
        void DisconnectMonitor()
        {
            statusLabel.StringValue     = "Not connected";
            heartRateLabel.IntValue     = 0;
            heartRateLabel.Hidden       = true;
            heartRateUnitLabel.Hidden   = true;
            rssiLabel.Hidden            = true;
            deviceNameLabel.StringValue = String.Empty;
            deviceNameLabel.Hidden      = true;
            disconnectButton.Hidden     = true;

            if (connectedMonitor != null)
            {
                connectedMonitor.HeartBeat        -= OnHeartBeat;
                connectedMonitor.HeartRateUpdated -= OnHeartRateUpdated;
                connectedMonitor.RssiUpdated      -= OnRssiUpdated;
                connectedMonitor.NameUpdated      -= OnNameUpdated;
                connectedMonitor.Dispose();
                connectedMonitor = null;
            }
        }
        void OnCentralManagerUpdatedState(object sender, EventArgs e)
        {
            string message = null;

            switch (manager.State)
            {
            case CBCentralManagerState.PoweredOn:
                if (!connectButton.Enabled)
                {
                    HeartRateMonitor.ScanForHeartRateMonitors(manager);
                    connectButton.Enabled = true;
                }
                return;

            case CBCentralManagerState.Unsupported:
                message = "The platform or hardware does not support Bluetooth Low Energy.";
                break;

            case CBCentralManagerState.Unauthorized:
                message = "The application is not authorized to use Bluetooth Low Energy.";
                break;

            case CBCentralManagerState.PoweredOff:
                message = "Bluetooth is currently powered off.";
                break;

            default:
                break;
            }

            if (message != null)
            {
                new NSAlert {
                    MessageText     = "Heart Rate Monitor cannot be used at this time.",
                    InformativeText = message
                }.RunSheetModal(Window);
                NSApplication.SharedApplication.Terminate(manager);
            }
        }
        void InitializeCoreBluetooth()
        {
            manager.UpdatedState += OnCentralManagerUpdatedState;

            manager.DiscoveredPeripheral += (sender, e) => {
                if (monitor != null)
                {
                    monitor.Dispose();
                }

                monitor = new HeartRateMonitor(manager, e.Peripheral);
                monitor.HeartRateUpdated += OnHeartRateUpdated;
                monitor.HeartBeat        += OnHeartBeat;

                heartRateMonitors.AddHeartRateMonitor(monitor);
                deviceTableView.ReloadData();
            };

            manager.ConnectedPeripheral    += (sender, e) => e.Peripheral.DiscoverServices();
            manager.DisconnectedPeripheral += (sender, e) => DisconnectMonitor();

            HeartRateMonitor.ScanForHeartRateMonitors(manager);
        }
		public void AddHeartRateMonitor (HeartRateMonitor peripheral)
		{
			heartRateMonitors.Add (peripheral);
		}
Esempio n. 13
0
		void InitializeCoreBluetooth ()
		{
			manager.UpdatedState += OnCentralManagerUpdatedState;

			//HACK: Modified this to just quit after finding the first heart rate monitor
			EventHandler<CBDiscoveredPeripheralEventArgs> discovered = null;
			discovered += (sender, e) => {
				if (monitor != null) {
					monitor.Dispose ();
				}

				monitor = new HeartRateMonitor (manager, e.Peripheral);
				monitor.HeartRateUpdated += OnHeartRateUpdated;
				monitor.HeartBeat += OnHeartBeat;

				heartRateMonitors.Add (monitor);

				//HACK: instead of adding to a list, just use this one
				statusLabel.Text = "Found " + monitor.Name + ".";
				manager.DiscoveredPeripheral -= discovered;
			};
			manager.DiscoveredPeripheral += discovered;

			manager.ConnectedPeripheral += (sender, e) => e.Peripheral.DiscoverServices ();

			manager.DisconnectedPeripheral += (sender, e) => DisconnectMonitor ();

			HeartRateMonitor.ScanForHeartRateMonitors (manager);
		}
		void InitializeCoreBluetooth ()
		{
			manager.UpdatedState += OnCentralManagerUpdatedState;

			manager.DiscoveredPeripheral += (sender, e) => {
				if (monitor != null) {
					monitor.Dispose ();
				}

				monitor = new HeartRateMonitor (manager, e.Peripheral);
				monitor.HeartRateUpdated += OnHeartRateUpdated;
				monitor.HeartBeat += OnHeartBeat;
				
				heartRateMonitors.AddHeartRateMonitor (monitor);
				deviceTableView.ReloadData ();
			};
			
			manager.ConnectedPeripheral += (sender, e) => e.Peripheral.DiscoverServices ();
			manager.DisconnectedPeripheral += (sender, e) => DisconnectMonitor ();

			HeartRateMonitor.ScanForHeartRateMonitors (manager);
		}
Esempio n. 15
0
 public void AddHeartRateMonitor(HeartRateMonitor peripheral)
 {
     heartRateMonitors.Add(peripheral);
 }
Esempio n. 16
0
 public HeartRateMonitorDelegate(HeartRateMonitor monitor)
 {
     this.monitor = monitor;
 }