說明
ConnectLE 命令負(fù)責(zé)連接到 LE 設(shè)備。如果成功,此命令將返回零;如果發(fā)生錯誤,則返回負(fù)值。此命令使用 ConnectLEDevice (BluetoothStackID, BD_ADDR, FALSE) 調(diào)用 ConnectLEDevice (unsigned in BluetoothStackID, BD_ADDR_t BD_ADDR, Boolean_t UseWhiteList) 函數(shù)。
參數(shù)
唯一需要的參數(shù)是遠(yuǎn)程設(shè)備的藍(lán)牙地址。如果在掃描期間廣播設(shè)備位于附近,則可以使用 StartScanning 命令輕松找到該地址。
命令調(diào)用示例
- “ConnectLE 001bdc05b617”嘗試向 BD_ADDR 為 001bdc05b617 的藍(lán)牙設(shè)備發(fā)送連接請求。
- “ConnectLE 000275e126FF”嘗試向 BD_ADDR 為 000275e126FF 的藍(lán)牙設(shè)備發(fā)送連接請求。
可能的返回值
- (0) 成功設(shè)置可配對性模式
- (-4) FUNCTION_ERROR
- (-6) INVALID_PARAMETERS_ERROR
- (-8) INVALID_STACK_ID_ERROR
- (-116) BTPS_ERROR_RANDOM_ADDRESS_IN_USE
- (-111) BTPS_ERROR_CREATE_CONNECTION_OUTSTANDING
- (-66) BTPS_ERROR_INSUFFICIENT_RESOURCES
- (-2) BTPS_ERROR_INVALID_BLUETOOTH_STACK_ID
- (-1) BTPS_ERROR_INVALID_PARAMETER
- (-56) BTPS_ERROR_GAP_NOT_INITIALIZED
- (-104) BTPS_ERROR_LOCAL_CONTROLLER_DOES_NOT_SUPPORT_LE
- (-57) BTPS_ERROR_DEVICE_HCI_ERROR
- GAP_LE_ERROR_WHITE_LIST_IN_USE
API 調(diào)用
- GAP_LE_Create_Connection(BluetoothStackID, 100, 100, Result?fpNoFilter:fpWhiteList, latPublic, Result?&BD_ADDR:NULL, latPublic, &ConnectionParameters,GAP_LE_Event_Callback, 0)
- GAP_LE_Remove_Device_From_White_List(BluetoothStackID, 1, &WhiteListEntry, &WhiteListChanged)
- GAP_LE_Add_Device_To_White_List(BluetoothStackID, 1, &WhiteListEntry, &WhiteListChanged)
注: 通??梢院雎赃@兩個 API,除非在對 ConnectLEDevice 的調(diào)用中啟用了白名單。
API 原型
- int BTPSAPI GAP_LE_Create_Connection(unsigned int BluetoothStackID, unsigned int ScanInterval, unsigned int ScanWindow, GAP_LE_Filter_Policy_t InitatorFilterPolicy,GAP_LE_Address_Type_t RemoteAddressType, BD_ADDR_t *RemoteDevice, GAP_LE_Address_Type_t LocalAddressType, GAP_LE_Connection_Parameters_t*ConnectionParameters, GAP_LE_Event_Callback_t GAP_LE_Event_Callback, unsigned long CallbackParameter)
- int BTPSAPI GAP_LE_Remove_Device_From_White_List( unsigned int BluetoothStackID, unsigned int DeviceCount, GAP_LE_White_List_Entry_t *WhiteListEntries, unsigned int*RemovedDeviceCount)
- int BTPSAPI GAP_LE_Add_Device_To_White_List(unsigned int BluetoothStackID, unsigned int DeviceCount, GAP_LE_White_List_Entry_t *WhiteListEntries, unsigned int*AddedDeviceCount)
API 說明
提供的 GAP_LE_Create_Connection 函數(shù)使本地主機(jī)能夠使用低功耗藍(lán)牙無線電創(chuàng)建與遠(yuǎn)程設(shè)備的連接。連接過程本質(zhì)上是異步的,當(dāng)連接完成時,將通過 GAP LE 事件回調(diào)函數(shù)(在目前討論的這個函數(shù)中指定)通知調(diào)用方。如果成功,此函數(shù)返回零;如果出現(xiàn)錯誤情況,則返回負(fù)的錯誤代碼。提供的 GAP_LE_Remove_Device_From_White_List 函數(shù)使本地主機(jī)能夠從本地設(shè)備維護(hù)的白名單中刪除一個(或多個)設(shè)備。此函數(shù)嘗試(從指定的列表中)刪除盡可能多的設(shè)備,并返回已刪除的設(shè)備數(shù)量。GAP_LE_Read_White_List_Size 函數(shù)可用于確定本地設(shè)備在白名單中(同時)支持多少設(shè)備。