Im пытается открыть L2Cap HID канал и канал прерывания, чтобы я мог отправлять команды HID на устройство Bluetooth.Как установить соединение канала прерывания L2Capp?
Я выполнил всю свою рекламную рекламу и обработку устройства и установил соединение с основной полосой частот.
Канал управления HID открывается нормально. Когда я пытаюсь создать мое соединение kBluetoothL2CAPPSMHIDInterrupt
l2capChannelQueueSpaceAvailable метод
делегат называется (не уверен, что это значит), а затем
l2capChannelOpenComplete
но связи закрывается немедленно, вызывая
l2capChannelClosed
Как правильно открыть эти соединения?
Я долгое время пробирался через инфраструктуру IOBlueTooth и спецификацию bluetooth.org HID, но у меня почти нет полезной информации (я могу найти хотя бы).
Когда я прослеживать мои l2cap каналы я вижу некоторые нулевые значения для
mIncomingDataListener
и
mEventDataListener
. Я не знаю, как их установить или если они имеют какое-либо отношение к моей проблеме ... просто спекулируя.
Нижеприведенный фрагмент кода является моей попыткой сделать соединения после установления соединения с устройством.
-(void)establishL2CappConnections:(IOBluetoothDevice*)device
{
IOReturn r;
IOBluetoothL2CAPChannel *ch1;
r = [device openL2CAPChannelSync:&ch1
withPSM:(BluetoothL2CAPPSM)kBluetoothL2CAPPSMHIDControl
delegate:self];
self.mL2CappChannel=ch1;
NSLog(@"r == %i",r);
IOBluetoothL2CAPChannel *ch2;
r = [device openL2CAPChannelSync:&ch2
withPSM:(BluetoothL2CAPPSM)kBluetoothL2CAPPSMHIDInterrupt
delegate:self];
self.mL2CappInterruptChannel=ch2;
NSLog(@"r == %i",r);
}
Edit: 1
Я приложил мои журналы пакетов. Это странно, запрос
kBluetoothL2CAPPSMSDP 0x0001
получает сделано без меня просил об этом, а потом все начинает отсоединять.
только обновления для заинтересованных лиц. Если ваша служебная запись sdp неверна, соединения L2cap не будут оставаться открытыми. Также вы не подключаете соединение kBluetoothL2CAPPSMSDP. Только прерывание и контроль – dubbeat
вам удалось решить в конце концов? Я пытаюсь и не могу создать устройство HID самостоятельно, но найти хорошие примеры того, как это сделать, это мой самый большой барьер atm – Scott