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。