2017-01-16 5 views
1

Мне нужно установить задержку соединения на мое соединение BLE, но документация очень разрежена на setDesiredConnectionLatency.Xamarin IOS setDesiredConnectionLatency

Я использую рамки CoreBluetooth для IOS, а documentation просто относится к фактическому методу:

[Foundation.Export("setDesiredConnectionLatency:forCentral:")] 
    public virtual Void SetDesiredConnectionLatency (CBPeripheralManagerConnectionLatency latency, CBCentral connectedCentral) 

Я не могу увидеть любые примеры, документацию или руководства о том, как использовать это, я попытался следующие:

var peripheralDelegate = new PeripheralManagerDelegate(); 
    //CBCentral central = new CBCentral(); 
    CBPeripheralManager peripheralManager = new CBPeripheralManager(peripheralDelegate, DispatchQueue.DefaultGlobalQueue); 
    peripheralManager.SetDesiredConnectionLatency(CBPeripheralManagerConnectionLatency.Low, central); 

Я не знаю, как получить экземпляр CBCentral, или как его создать.

Может кто-то пожалуйста, мне точку в правильном направлении, о том, как использовать либо SetDesiredConnectionLatency или CBCentral

+0

Ссылку вы выложили возвращает 404 – Demitrian

+0

Fixed Documentation URL в – MariusB

ответ

0

В Swift 3.0, вы можете попытаться установить задержку после установив соединение, так как латентность принадлежит к периферийной-центральной связи, ни к самой периферии (обратите внимание на эту ссылку: https://developer.apple.com/reference/corebluetooth/cbperipheralmanager/1393277-setdesiredconnectionlatency)

Один из способов обеспечения того, чтобы у вас уже есть соединение (но т шляпа работает только если у вас есть характеристики в вашей периферии, в которой центральный может Подпишитесь) является осуществление didSubscribe обратного вызова в вашем CBPeripheralManagerDelegate классе:

public func peripheralManager(_ peripheral: CBPeripheralManager, central: CBCentral, didSubscribeTo characteristic: CBCharacteristic) { 
    peripheralManager?.setDesiredConnectionLatency(.low, for: central) 
}