你好,对话框,
我正在SDK_10.0.10.118/projects/dk_apps/features/中测试“BLE_central”示例。我不明白宏“CFG_USE_BROWSE_API”宏在“ble_central_task.c”中使用了什么。我所理解的唯一区别是,如果启用宏,则调用“browse_svc”和“browse_completed”函数并显示服务,如果禁用宏,则调用“discover”函数。从UART输出中,我可以看到服务显示宏是禁用的还是启用的。你能解释一下在什么情况下宏是有用的吗?当启用和禁用宏时发生了什么?浏览和发现之间的区别是什么?
提前谢谢。
问候,
Prasanna
设备:
浏览API将不会构造和保留有关对等关贸总协定数据库的信息;Discovery API将保留此功能供以后使用。在“实际”实现中,您可能希望至少保留一些数据库句柄,以便与对等设备进行交互。
/ MHv
你好MHv_Dialog,
谢谢你的回复。到底什么是保留信息?你的意思是下一次当我们连接远端设备时,对端设备GATT数据库中存储了一些关于远端设备服务的信息?你能解释一下对等设备存储的是什么类型的数据吗?
谢谢
Prasanna
不是,o)
我们只在连接期间保留它。如果在发现服务后需要与对等设备进行接口,这将非常有用。假设外围设备有一个LED,当用户按下中央按钮时,我们可以根据需要打开或关闭它。我们可以通过写外围设备提供的特性来做到这一点。我们需要有一个特征值字段的句柄,以便写入它。因为我们在发现过程中保留了对特征的处理,所以当我们需要信息时,我们就可以使用这些信息——比如当用户按下前面提到的按钮时。我希望这能解释清楚。
您可以将外围设备视为服务(托管)数据库。为了使用这个数据库,客户机(本例中的中心设备)将使用发现来检索数据库条目的键或索引(句柄)。这个发现还告诉客户端(在我们的例子中是中心)它可以对这些数据库字段做什么——读、写等等。
/ MHv