发送长(> 20字节)特征的数据

6个帖子/ 0新
最后一篇
萨拉瓦
离线
最后一次露面:3年6个月前
加入:2015-04-28 10:35
发送长(> 20字节)特征的数据

你好。
我试图为我的目的重写Sample128服务。
我将第一个特征的长度更改为32字节。
对于对此特征的写入数据,我使用Windows 8.1 API函数BluetoothGattSetCharacteristicValue。

当我发送20个字节的数据似乎很好,但是当我尝试发送32个字节函数时,BluetoothGattSetCharacteristicValue首次返回OK,但下次返回ERROR_BAD_NET_RESP。在此之后,我可以发送任何东西,直到我再次删除此设备并对对。

同样在第二种情况下在函数gattc_write_cmd_ind_handler(sample128_task.c)中,我收到一条消息,我从Win(32字节)发送,分两部分拼接,其中第一是长度= 18&offset = 0和第二长度= 14&offset = 18。

在哪一方(DA14580或WIN)有错误?

如果我将第一个char属性更改为att_char_prop_wr_no_rep,我也可以发送超过20个字节(bluetoothgattsetcharacteristicvalue return reter_invalid_function)。

我做错了什么?

设备:
mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨斯拉夫,

嗨斯拉夫,

请检查这篇文章http://support.dialog-semicondiondiondum/how-send-data-more-20-bytes.

你试过转移吗?数据使用Android设备看出结果是否相同?

谢谢mt_dialog.

萨拉瓦
离线
最后一次露面:3年6个月前
加入:2015-04-28 10:35
是的,我看到了这个帖子。一世

是的,我看到了这个帖子。我此刻没有BT4.0没有Android设备。
是否应在函数gattc_write_cmd_ind_handler中的零件上收到或拆分消息(> 20字节)?
如果在部件上拆分,则接收到参数 - >值收集的数据?

mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨斯拉夫,

嗨斯拉夫,

如果邮件在Gattc_Write_cmd_ind_handler中超过20个字节,则不必组装或拆分零件。

这由堆栈的下层完成。

谢谢mt_dialog.

萨拉瓦
离线
最后一次露面:3年6个月前
加入:2015-04-28 10:35
嗨,谢谢你的回复

嗨,谢谢你的回复。
所以出于目的的目的是Param-> Offset和Param->最后一次在Gattc_Write_cmd_ind中?

如果我在gattc_write_cmd_ind_handler中正确了解你,我应该收到整个消息(如果我发送32个字节,则我应该在一个调用gattc_write_cmd_ind_handler中收到所有32个字节,offset = 0和length = 32)?

mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入:2015-06-08 11:34
嗨斯拉夫,

嗨斯拉夫,

对不起,我误解了你的问题(与我告诉你检查的人混淆了)......参数 - >最后一个是表示这是已经发送的最后一块数据,以便在特征时发出一个指示是写的。数据在块中展示块,并且调用Gattc_Write_cmd_ind_handler为每个已完成的块调用,Param-> Value具有您所需的所有数据,其由函数Attmdb_att_set_value()或attmdb_att_update_value()组装在结尾您将拥有所需的所有数据。

谢谢mt_dialog.

主题锁定