当我在客户机上启用通知特点应用,为什么这个程序只看到20个字节?

4新职位/ 0
最后发表
vikramtheone
离线
最后看到:4年9个月前
加入:2015-06-12 08:42
当我在客户机上启用通知特点应用,为什么这个程序只看到20个字节?

你好,
在我定义了一个应用程序定制的概要文件,它有一个自定义服务这有两个服务自定义特征(1、2)。第二个特点是用于向客户机发送的字节数组与通知。我跟着sample128例子(顺便说一句这么好的文档)写我的应用程序。我已经配置了计时器5秒每次到期后在定时器中断处理程序我打电话ke_msg_send ()发送一个20字节数组。与此同时,在我的客户应用程序(BLE扫描仪手机应用程序)我使特征2的通知时,我能看到20个字节不断到达间隔5秒。

下一个,而不是20字节,我发送64个字节每次计时到期。但是我注意到在我的客户端应用程序(BLE扫描仪手机应用程序),当我为特征2启用通知,我看到只有20字节显示在应用。然而,如果我明确阅读的特点2我看到所有的64个字节。

  1. 这是一个BTLE的限制。是通知只能发送20个字节?
  2. 还是一个限制我使用客户端应用程序的?
  3. 更改我下面是我的申请,但是我不知道需要做什么。

我到目前为止试图实现这一目标如下:

步骤1:ATT_MTU大小增加到67个
app_template_proj。c文件,里面的app_configuration_func (…)功能,我增加了:


/ /最大传输单元的大小
cmd - > max_mtu = 67;/ / 23


步骤2:增加total_size参数的attmdb_add_service ()函数。
template_task。c,内template_create_db_req_handler ()函数。


nb_att_16 = 4;/ / 4 UUID16属性声明类型
nb_att_32 = 0;/ / 0 UUID32属性声明类型
nb_att_128 = 2;/ / 2 UUID128属性声明类型
状态= attmdb_add_service (& (REDS_env.REDS_shdl),
TASK_XXXX,
nb_att_16,
nb_att_32,
nb_att_128,
121 / /见下面的计算);
/ /数据部分关贸总协定数据库= 58数据字节总数:
/ / 16主要服务声明
/ / + 19宣言特点1
/ / + 1值宣言特点1
/ / + 19宣言特点2
/ / + 64的价值宣言特点2
/ / + 2客户端配置特征2的宣言
/ / = 121字节数据


关键词:
设备:
MT_dialog
离线
最后看到:19小时前3周
工作人员
加入:2015-06-08 34
嗨vikramtheone,

嗨vikramtheone,

我认为这篇文章补充上一个……事情是这样的,你可以从你的手机读取64字节的数据库,但你不能启用通知和接收所有64字节。通知和适应症仅支持当前MTU的外围,即使你改变你的广告的MTU程序,你的客户能够接受它为了转移所有通知数据包的有效载荷。后设置的MTU app_configuration_func()你必须调用GATT_EXC_MTU_CMD为了告诉cenral跟随你的MTU设置。并由中央是否会遵守外围设备的建议。你可以找到如何发出gattc_exc_mtu_cmd需求方在app_sps_device_project中的应用。c文件。

由于MT_dialog

vikramtheone
离线
最后看到:4年9个月前
加入:2015-06-12 08:42
哇!这工作。

哇!这工作。

我实现的,而使用gattc_exc_mtu_cmd ()函数从gsp时应用程序(也在4.3节:阅读更多关于它的配置,在RW-BLE-GATT-IS.pdf),称为函数的app_connection_func ()函数在调用app_template_enable ()就像它是如何在gsp时应用程序。和android手机应用程序(BLE扫描仪)已经接受了GATT_EXC_MTU_REQ请求发送的设备一旦我启用通知特点2中我开始看到64字节。

结论:有可能大于20字节发送和接收通知。

谢谢你的帮助。

summer20100514
离线
最后看到:4年2个月前
大师
加入:2014-12-30 05:01
这似乎很好。谢谢你

这似乎很好。谢谢你的分享。

主题锁定