这个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处理程序。
非常感谢。我们已经得到了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_UREADind const*param, 任务\u id\u const dest\u id, ke_task\u id\u t const src\u id)
嗨,萨巴西特,
不幸的是,没有关于发现服务流程的文档。但是您可以查看RW-BLE-GATT-IS pdf,其中记录了服务发现命令和消息,还可以使用邻近监视器应用程序来检查应用程序与580中配置文件之间的交互是如何发生的,它比DSP和消息更简单。
谢谢你的对话
嗨,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。
原因是什么?
谢谢,
萨巴西特
嗨,萨巴西特,
这个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处理程序。
谢谢你的对话
嗨,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_UREADind const*param,
任务\u id\u const dest\u id,
ke_task\u id\u t const src\u id)
但是接收的长度不正确,即0x13而不是2。并且读取的值总是固定的,即0x022A,这是错误的,并且应该随每次读取而改变。
你能指导我们做错事的步骤,或者我们需要检查的是什么吗。外围是一个Android应用程序。
谢谢,
我想我们在函数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来解决问题。客户端的特征读写现在正在工作。
谢谢。
嗨,萨巴西!
我还在为一个基于角色的中央设备开发GATT客户机。我对GATT客户机的数据流理解有问题。你能描述一下GATT客户的流程吗。最好,如果您可以共享一个小代码片段,如何在远程外围设备上读写一个简单的128位UUID?
谢谢您!
嗨,匡格,
如上所述,如果您正在寻找示例,您可以查看DSPS主机示例,检查主机应用的发现过程以及上面提到的文档,RW\u\u GATT_解释了命令以及预期响应,请检查第4.4段。此外,还通过邮件提供了一些详细信息。
谢谢你的对话