你好,
我想实现不同的广告类型与DA14695 USB板。在我的应用程序DA14695是外设和智能手机应用程序是扫描仪。我尝试运行SDK中提供的“ble_adv_demo”。它将正常工作。我对这个例子有一些疑问。
- 对于广告数据,示例使用了一个本地名称“Dailog Adv Demo”。当我运行应用程序时,我可以在BLE扫描器中看到数据类型为“完整的本地名称”。adv_data[]变量的内容仅指定“GAP_DATA_TYPE_LOCAL_NAME”,但不是缩短或完整?代码中提到的数据类型(如缩短的(0x08)或完整的本地名称(0x09))在哪里?
- 在源代码中定义我们自己的数据类型如服务UUID、标志、制造商特定数据、TX电源等的过程是什么?
- 根据我的理解,DA14695是客户端,扫描应用是服务器端。但是,一旦两个设备都连接了,设备名称在客户端显示为“Dialog TTT Demo”?还有,这个设备名到底是什么意思我们已经给了本地名用于标识?
- 有一些UUID设备名称(0x2A00),外观(0x2A01)等,这是在客户端特征。这些特征是否默认显示?如果我们想提供新的服务/特征,我们必须在源代码中定义?
- 对于外设/从属设备的连接参数更新请求,有一个定时器(在“handle_evt_gap_connected(ble_evt_gap_connected_t *evt)函数”中)在连接建立后设置为5秒。为什么我们需要这个计时器?
谢谢提前
设备:
嗨Prasanna,
数组的第一个元素是要发送的数据的大小加上一个额外的字符。在给定的示例中,这个值应该是19 + 1 = 20个元素,或者十六进制格式的0x14。如果给出了错误的值,很可能蓝牙低能量设备将不做广告。因此,在计算这个值时必须小心。
蓝牙核心4.2规范定义的GAP广告数据类型可以在ble_gap.h中的gap_data_type_t结构中找到。
谢谢,PM_Dialog
嗨PM_Dialog,
附件是我第3和第4次询问的截图,请查收。
第三个问题
在屏幕截图中,我们可以看到一旦外围设备和扫描仪连接,我们可以看到他们的客户端(智能手机)和服务器(DA14695)的各种服务。所以,这里我不明白的是:有一个值为“Dialog TTT Perm”的属性设备名称,我们可以在客户端的截图中看到。因此,设备名称应该显示在服务器端。我在本例中将DA14695作为服务器/外设,将智能手机应用程序作为客户机/中心设备的假设正确吗?
第四个问题
在附上的截图中,我们可以看到GAP的特征,如0x 2A00, 0x2A01和0x2A04。那么,这些特性在SDK中定义在哪里呢?
谢谢提前
你好,
这是目标应用程序创建的Generic Access服务。具体的UUID由蓝牙LE规范定义。请查看ATT_CHAR_DEVICE_NAME。这是一个特征(ATT_CHAR_DEVICE_NAME = 0x2A00),也是通用访问服务(ATT_SVC_GENERIC_ACCESS = 0x1800)中的必选项。我希望你先检查一下蓝牙LE规格。
谢谢,PM_Dialog