ZHCACZ4 August 2023 CC2564C
Inquiry 命令負責執行一般查詢以發現藍牙設備。此命令要求在運行之前存在有效的藍牙協議棧 ID。如果調用成功,此命令將返回零;如果執行期間發生錯誤,此命令將返回負值。查詢會持續 10 秒 — 除非在該時間限制之前找到 20 個設備 (MAX_INQUIRY_RESULTS)。
使用此命令時不需要參數。參數對查詢的結果沒有影響。
GAP_Perform_Inquiry (BluetoothStackID, itGeneralInquiry, 0, 0, 10, MAX_INQUIRY_RESULTS, GAP_Event_Callback, (unsigned long) NULL);
int BTPSAPI GAP_Perform_Inquiry(unsigned int BluetoothStackID, GAP_Inquiry_Type_t GAP_Inquiry_Type, unsigned int MinimumPeriodLength, unsigned intMaximumPeriodLength, unsigned int InquiryLength, unsigned int MaximumResponses, GAP_Event_Callback_t GAP_Event_Callback, unsigned long CallbackParameter);
提供此函數是為了能夠啟動查詢掃描過程。此函數的第一個參數是要執行查詢的藍牙設備的藍牙協議棧。第二個參數是要執行的查詢類型。第三個參數是最小周期長度,第四個參數是最大周期長度,以秒為單位(僅在執行定期查詢的情況下有效)。第五個參數是執行查詢的時間長度,以秒為單位指定。第六個參數是要等待的響應數。最后兩個參數表示在完成指定查詢后要調用的回調函數(和參數)。如果成功,此函數返回零;如果無法執行查詢,則返回負的錯誤代碼。在任何給定時間只能執行一次查詢。在未完成的查詢正在進行時調用此函數將會失敗。調用方可以調用 GAP_Cancel_Inquiry() 函數來取消當前正在執行的查詢過程。最小和最大查詢參數是可選參數,如果指定,則表示最小和最大定期查詢周期。如果要使用簡單查詢過程(非定期),這兩個值都必須設置為零。如果指定了這兩個參數,則必須滿足以下條件:MaximumPeriodLength > MinimumPeriodLength > InquiryLength。