public static BluetoothHost Initialize(BluetoothHostConfiguration configuration, params GattService[] services) { if (!isDeviceInitialized) { NativeInitializeDevice( configuration.DeviceName, configuration.Mode, configuration.MaxTransferUnit); isDeviceInitialized = true; } else { // Bluetooth reinitialization is not supported yet } return(new BluetoothHost(configuration, services)); }
private BluetoothHost(BluetoothHostConfiguration configuration, GattService[] services) { this.configuration = configuration; Services = services; // Create Indices int serviceIndex = 0; foreach (GattService service in Services) { service.Index = serviceIndex++; int characteristicIndex = 0; foreach (GattCharacteristic characteristic in service.Characteristics) { characteristic.ServiceIndex = service.Index; characteristic.Index = characteristicIndex++; } } EventSink.AddEventListener(OS.BluetoothEventCategory, this); }