Exemple #1
0
 void DoConnect(BluetoothAddress address, Guid service)
 {
     _accessory = address.Accessory;
     // TODO: provide mapping support for multiple protocol strings
     _session = new EASession(_accessory, _accessory.ProtocolStrings[0]);
     _stream  = new ExternalAccessoryNetworkStream(_session);
 }
        string deviceProtocol = "com.app.myprotocol";          // MRI device-specific protocol

        private bool ConnectToDevice(string accessoryId)
        {
            _streamDelegate = StreamDelegate.SharedController();

            _accessoryList = EAAccessoryManager.SharedAccessoryManager.ConnectedAccessories;

            foreach (EAAccessory accessory in _accessoryList)
            {
                var accId         = accessory.ValueForKey((NSString)"connectionID");
                var accessoryName = accessory.ValueForKey((NSString)"name");
                var accString     = accId.ToString();

                if (DeviceName.Contains(accessoryName.ToString()))
                {
                    _selectedAccessory = accessory;
                    _streamDelegate.SetupController(accessory, deviceProtocol);
                    _streamDelegate.OpenSession();

                    Console.WriteLine("Already connected via bluetooth");

                    return(true);
                }
            }
            return(false);
        }
 public ConnectedSphero(EAAccessory bluetoothDevice, EASession socket)
     : base(bluetoothDevice)
 {
     _spheroSocketWrapper = new StreamSocketWrapper(socket);
     _runner = new NonAwaitingConnectedSpheroRunner(_spheroSocketWrapper);
     _runner.Disconnected += (sender, args) => RaiseDisconnected();
     _runner.Start();
 }
 public ConnectedSphero(EAAccessory bluetoothDevice, EASession socket)
     : base(bluetoothDevice)
 {
     _spheroSocketWrapper = new StreamSocketWrapper(socket);
     _runner = new NonAwaitingConnectedSpheroRunner(_spheroSocketWrapper);
     _runner.Disconnected += (sender, args) => RaiseDisconnected();
     _runner.Start();
 }
Exemple #5
0
        private async Task <BluetoothDeviceInfo> DoPickSingleDeviceAsync()
        {
            EAAccessoryManager.SharedAccessoryManager.RegisterForLocalNotifications();

            TaskCompletionSource <EAAccessory> tcs = new TaskCompletionSource <EAAccessory>();

            connectionObserver = EAAccessoryManager.Notifications.ObserveDidConnect((s, e) =>
            {
                tcs.SetResult(e.Selected);
            });

            /*var observer2 = EAAccessoryManager.Notifications.ObserveDidDisconnect((s, e) =>
             * {
             * // tcs.SetResult(e.Accessory);
             * });*/

            try
            {
                await EAAccessoryManager.SharedAccessoryManager.ShowBluetoothAccessoryPickerAsync(null);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex);
                EAAccessoryManager.SharedAccessoryManager.UnregisterForLocalNotifications();
                return(null);
            }

            EAAccessory accessory = null;

            if (EAAccessoryManager.SharedAccessoryManager.ConnectedAccessories.GetLength(0) > 0)
            {
                accessory = EAAccessoryManager.SharedAccessoryManager.ConnectedAccessories[0];
            }
            else
            {
                accessory = await tcs.Task;
            }

            EAAccessoryManager.SharedAccessoryManager.UnregisterForLocalNotifications();
            connectionObserver.Dispose();

            return(accessory);
        }
Exemple #6
0
 internal BluetoothAddress(EAAccessory accessory)
 {
     _accessory = accessory;
     _address   = (ulong)accessory.GetHashCode();
 }
Exemple #7
0
 internal BluetoothDeviceInfo(EAAccessory accessory)
 {
     _accessory = accessory;
 }
Exemple #8
0
 protected BaseSphero(EAAccessory accessory)
 {
     _accessory = accessory;
 }
Exemple #9
0
 public AvailableSphero(EAAccessory accessory)
     : base(accessory)
 {
 }
Exemple #10
0
 public void SetupController(EAAccessory accessory, string protocolString)
 {
     _accessory      = accessory;
     _protocolString = protocolString;
 }
        void DoSomething(object obj)
        {
            _btAccessory = (EAAccessory)obj;

            Console.WriteLine($"got accessory {_btAccessory.Name}");
        }
Exemple #12
0
 protected BaseSphero(EAAccessory accessory)
 {
     _accessory = accessory;
 }
Exemple #13
0
 public AvailableSphero(EAAccessory accessory)
     : base(accessory)
 {
 }
 public EAAccessoryStream(EAAccessory accessory, string protocol)
 {
     m_session = new EASession(accessory, protocol);
     m_session.InputStream?.Open();
     m_session.OutputStream?.Open();
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="EAAccessoryDevice"/> class.
 /// </summary>
 /// <param name="accessory"></param>
 /// <param name="protocol"></param>
 public EAAccessoryDevice(EAAccessory accessory, string protocol)
 {
     m_accessory = accessory;
     m_protocol  = protocol;
 }