嗨对话,
在我最近的项目中,我有一个100厘米的特征,我想通过通知将其发送到客户端。
在客户端,除非更改MTU尺寸,否则我只能收到20个字节。我搜索了我的BLE书(蓝牙低能开发人员的手册),但没有发现任何关于通知数据大小的地方与MTU大小有关。
我有点想知道通知数据大小与MTU大小之间有什么关系(对我来说,似乎我们只能通知MTU大小-3个数据的数据)?是BLE堆栈约束还是对话框约束。
非常感谢,
根据蓝牙4.0规范第3卷F第3卷3.4.7.1“如果属性值长于(att_mtu – 3)八位位,则只能以通知发送此属性值的第一个(att_mtu – 3)八位位。”
所以你是正确的。最大尺寸为MTU尺寸-3个字节。
嗨,乔辛威,
非常感谢您提供的信息。我在规格中注意到第3.4.4.5节“读取blob请求”,我们可以找到“读取blob请求用于请求服务器在给定偏移处读取属性的一部分,并返回读取斑点响应中的值。”。是否可以使用Dialog的SDK读取一部分特征的一部分?
非常感谢
是的DA14580支持传入的读取BLOB请求。它将自动响应特征值的相应部分。
您使用哪种设备作为中央?智能手机,计算机或其他DA14580?如果您可以发布自定义读取BLOB请求,则取决于中心。通常,SDK提供了读取整个特征的方法,然后它将发布多个读取BLOB请求以检索整个特征值。
目前,我使用一对DA14580作为服务器和客户端。
我想拥有一个长的特征(例如255个字节长)。每次服务器都希望将一些数据发送给客户端时,它首先发送20个字节的通知。在客户方面,它可能会得到一个”长度“来自此20字节通知,仅读取特征数据数据的“长度”字节。
例如服务器向客户端发送通知,并告诉它从中读取50个字节。然后,客户端使用读取blob命令仅读取255个字节特征的50个字节,而不是阅读整个特征。那可能吗?
非常感谢。
您不能仅使用通知并发送要发送的数据吗?只需确保您的MTU大。然后,您可以发送50个字节。
我们可以将MTU大小提高到50,但是数据包的任何大小从8到255。因此,如果我们只能根据我们在Notification软件包中发送的长度信息动态阅读一部分特征,那就更好了。
根据蓝牙4.0规范第3卷F第3卷3.4.7.1“如果属性值长于(att_mtu – 3)八位位,则只能以通知发送此属性值的第一个(att_mtu – 3)八位位。”
所以你是正确的。最大尺寸为MTU尺寸-3个字节。
嗨,乔辛威,
非常感谢您提供的信息。我在规格中注意到第3.4.4.5节“读取blob请求”,我们可以找到“读取blob请求用于请求服务器在给定偏移处读取属性的一部分,并返回读取斑点响应中的值。”。是否可以使用Dialog的SDK读取一部分特征的一部分?
非常感谢
是的DA14580支持传入的读取BLOB请求。它将自动响应特征值的相应部分。
您使用哪种设备作为中央?智能手机,计算机或其他DA14580?如果您可以发布自定义读取BLOB请求,则取决于中心。通常,SDK提供了读取整个特征的方法,然后它将发布多个读取BLOB请求以检索整个特征值。
嗨,乔辛威,
目前,我使用一对DA14580作为服务器和客户端。
我想拥有一个长的特征(例如255个字节长)。每次服务器都希望将一些数据发送给客户端时,它首先发送20个字节的通知。在客户方面,它可能会得到一个”
长度“来自此20字节通知,仅读取特征数据数据的“长度”字节。
例如服务器向客户端发送通知,并告诉它从中读取50个字节。然后,客户端使用读取blob命令仅读取255个字节特征的50个字节,而不是阅读整个特征。那可能吗?
非常感谢。
您不能仅使用通知并发送要发送的数据吗?只需确保您的MTU大。然后,您可以发送50个字节。
我们可以将MTU大小提高到50,但是数据包的任何大小从8到255。因此,如果我们只能根据我们在Notification软件包中发送的长度信息动态阅读一部分特征,那就更好了。