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(); }
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); }
internal BluetoothAddress(EAAccessory accessory) { _accessory = accessory; _address = (ulong)accessory.GetHashCode(); }
internal BluetoothDeviceInfo(EAAccessory accessory) { _accessory = accessory; }
protected BaseSphero(EAAccessory accessory) { _accessory = accessory; }
public AvailableSphero(EAAccessory accessory) : base(accessory) { }
public void SetupController(EAAccessory accessory, string protocolString) { _accessory = accessory; _protocolString = protocolString; }
void DoSomething(object obj) { _btAccessory = (EAAccessory)obj; Console.WriteLine($"got accessory {_btAccessory.Name}"); }
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; }