从中央发现服务

8个员额/0个新
最后一篇文章
萨巴西特
离线
最后一次见到:1年2周前
专家
已加入:2014-10-14 14:20
从中央发现服务

嗨对话,

我正在使用DA14580为中央角色应用程序工作。我遵循DSPSSDK 5主机示例。我开始发现外围GATT的服务和属性。代码不是很清楚。是否有一些文档或一些具有中心角色的简单代码示例,以显示GATT命令的正确流程和中央端的事件。

我使用Android智能手机作为外围设备。

谢谢,
萨巴西特

设备:
MT\u对话框
离线
最后一次见到:5天前2个月
工作人员
已加入:2015-06-08 11:34
嗨,萨巴西特,

嗨,萨巴西特,

不幸的是,没有关于发现服务流程的文档。但是您可以查看RW-BLE-GATT-IS pdf,其中记录了服务发现命令和消息,还可以使用邻近监视器应用程序来检查应用程序与580中配置文件之间的交互是如何发生的,它比DSP和消息更简单。

谢谢你的对话

萨巴西特
离线
最后一次见到:1年2周前
专家
已加入:2014-10-14 14:20
嗨,MT对话,

嗨,MT对话,

基于DSPS SDK 5,在连接时调用“prf\U disc\U svc发送\U 128(&spsc\U env->con\U info,spsc\U env->last\u svc\u req)”功能,以获得连接设备的服务。之后,在GATCComplete事件上调用“GATC_UCMP_UEVT_Uhandler”。在这个函数中,我没有得到正确的概要文件服务处理程序。服务处理程序“spsc\u env->sps.svc.shdl“始终为0x00。

原因是什么?

谢谢,
萨巴西特

MT\u对话框
离线
最后一次见到:5天前2个月
工作人员
已加入:2015-06-08 11:34
嗨,萨巴西特,

嗨,萨巴西特,

这个prf U disc_USVC U send_U128()函数发送GATC光盘\u CMD,其范围在最大和最小可用句柄1之间,最大和最小可用句柄1之间,最大值至65535,当服务位于数据库中时,外围设备应使用可用服务所在的实际句柄响应,您应该在设备上获得一个GATC\u DISC\u SVC\u IND,该光盘指示特定句柄是外围设备服务的范围,您应该将该服务的句柄存储在spsc\u env->sps.evc.shdl (启动句柄),以便服务发现完成后,可以搜索适当的句柄以查找可用特性。请检查一下房间DSPS主机应用程序中的GATC\U disc\U svc\U ind U处理程序。

谢谢你的对话

萨巴西特
离线
最后一次见到:1年2周前
专家
已加入:2014-10-14 14:20
嗨,MT对话,

嗨,MT对话,

非常感谢。我们已经得到了GATC U DISC_uuSVC_Uind,它提供了服务的处理程序,并且相关的UUID被正确读取。之后,我们使用prf U disc_UCHAR_UALL_USEND(..)函数发现属性,该函数触发GATC U disc_UCHAR_UIND,并正确地给出了特征处理程序和相关UUID。

接下来,当我们尝试使用函数rf read\u char_u发送来读取两个字节的特征值时(&spsc\u env->con info、0x00、0xFF、spsc\u env->abrs.chars[0]。字符\u hdl;对于简单读取,这将为我们提供事件GATC_URead_uind with handler函数static int GATTC_uread\u IND_uhandler(ke_msg\u id_ut const msgid,
结构GATC_UREADind const*param,
任务\u id\u const dest\u id,
ke_task\u id\u t const src\u id)

但是接收的长度不正确,即0x13而不是2。并且读取的值总是固定的,即0x022A,这是错误的,并且应该随每次读取而改变。

你能指导我们做错事的步骤,或者我们需要检查的是什么吗。外围是一个Android应用程序。

谢谢,

萨巴西特
离线
最后一次见到:1年2周前
专家
已加入:2014-10-14 14:20
我想我们用错了

我想我们在函数rf read\u char_usend(&spsc\u env->con info,0x00,0xFF,spsc\u env->abrs.chars[0]。字符\u hdl;即。abrs.chars[0]。字符\u hdl。应该使用VAHDL来解决问题。客户端的特征读写现在正在工作。

谢谢。

量子
离线
最后一次见到:9个月1周前
已加入:2015-10-29 22:03
嗨,萨巴西!

嗨,萨巴西!

我还在为一个基于角色的中央设备开发GATT客户机。我对GATT客户机的数据流理解有问题。你能描述一下GATT客户的流程吗。最好,如果您可以共享一个小代码片段,如何在远程外围设备上读写一个简单的128位UUID?

谢谢您!

MT\u对话框
离线
最后一次见到:5天前2个月
工作人员
已加入:2015-06-08 11:34
嗨,匡格,

嗨,匡格,

如上所述,如果您正在寻找示例,您可以查看DSPS主机示例,检查主机应用的发现过程以及上面提到的文档,RW\u\u GATT_解释了命令以及预期响应,请检查第4.4段。此外,还通过邮件提供了一些详细信息。

谢谢你的对话