[已解决]gatts_sever.demo.c的疑问,无法自定义收发

ming191
Posts: 35
Joined: Mon May 31, 2021 6:27 am

[已解决]gatts_sever.demo.c的疑问,无法自定义收发

Postby ming191 » Fri Jun 18, 2021 3:14 am

在demo里面,官方指导我们是用irf connect来学习如何和手机进行收发。我也成功利用软件的app点击发送notify enable和读的功能,这时候,我观察程序打印的 descr_handle值是43,当然读也是43的值。但是我利用了距自定义的发数据(向上的箭头),系统打印的我param->write.handle是42,所以两者的handle值不相等,所以就无法正常收发了。我应该如何解决?
Last edited by ming191 on Sat Jul 03, 2021 2:37 am, edited 1 time in total.

ESP_XuLZ
Posts: 26
Joined: Fri Mar 26, 2021 6:04 am

Re: gatts_sever.demo.c的疑问,无法自定义收发

Postby ESP_XuLZ » Fri Jun 18, 2021 6:27 am

gatt_server 中的描述符是是一种特殊的描述符——CCCD,是用来打开或关闭characteristic 的notify或者indicate功能的,当你在nrf connect 上点击那个“使能notify”的按钮时就是在写入这个描述符了,可以在log 中看到这个handle应该是43,也是你所说的descr_handle
你利用的自定义的发数据(向上的箭头)的那个是characteristic 的自定义写的数据,所以handle 是42

ming191
Posts: 35
Joined: Mon May 31, 2021 6:27 am

Re: gatts_sever.demo.c的疑问,无法自定义收发

Postby ming191 » Fri Jun 18, 2021 6:50 am

谢谢你的回答,我明白你的意思了。就是这个demo不支持自定义收发和回复。那么我应该参考那个demo来学习自定义来收发。

ESP_XuLZ
Posts: 26
Joined: Fri Mar 26, 2021 6:04 am

Re: gatts_sever.demo.c的疑问,无法自定义收发

Postby ESP_XuLZ » Fri Jun 18, 2021 7:58 am

自定义收发你还是可以看gatt_server,使用characteristic 进行自定义收发数据,比如把写的数据copy 给存读数据的数组,或者做些改变,也可以看下gatt_server_service_table demo,这里有使用table 创建service 的方法

ming191
Posts: 35
Joined: Mon May 31, 2021 6:27 am

Re: gatts_sever.demo.c的疑问,无法自定义收发

Postby ming191 » Fri Jun 18, 2021 10:54 am

代码我都看得明白,但是就是不懂得如何创建一个自定义服务来收发手机的程序,gatt_sever和gatt_sever_service_table的demo代码都差不多,可能我就不明白如何创建一个服务。你是否可以在gatt_server的demo上面做一个C文件我参考一下。我改来改去,最终都是模块能收到手机的数据,模块发不出来。应该是服务弄错了,或者在手机搜索的服务也是错误的。或者说我不懂得启动DEMO的服务。

ESP_XuLZ
Posts: 26
Joined: Fri Mar 26, 2021 6:04 am

Re: gatts_sever.demo.c的疑问,无法自定义收发

Postby ESP_XuLZ » Fri Jun 18, 2021 12:41 pm

这个你可以参考下:对于ee01 服务做了以下修改:
1、使能notify, server 会间隔两秒向client 发送数据, 关闭notify 将不再发送
2、向characteristic 写入小于10字节的数据,通过read 按键将会读取到刚写入的数据

以上两点只是一个简单的交互,复杂的服务就需要你自己去摸索了
Attachments
gatts_demo.c
(33.25 KiB) Downloaded 309 times

Who is online

Users browsing this forum: abcrazy2020 and 5 guests