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