一个Gatt中的单独与组合特征

问题描述 投票:1回答:1

我们正在尝试确定是使用单独的GATT特征还是将多个属性组合成一个自定义特征。

组合的好处是相当明确的:一个交易,许多属性。

但即使有多个特征(每个属性一个),交易似乎也足够快。

这完全是一个武断的决定吗?还是有最好的做法?

bluetooth-lowenergy gatt bluetooth-gatt
1个回答
2
投票

这是高度相关的,取决于您尝试实施的系统。我的建议是采用许多不同的特征。原因是您将在GATT服务器端(存储所有特性)和GATT客户端简化应用程序。例如,如果您使用多个特征,这意味着您必须向GATT客户端添加额外的智能以分离这些特征中的数据。如果数据面是可变的,那么这将更加复杂。如果将来您必须使用新功能更新此组合特性,则与具有许多特征相比,客户端和服务器端的任务可能相对更复杂,因为事物将更加分类和划分。

另一件需要考虑的事情是测试。当您创建GATT服务器应用程序时,您需要使用一个或多个不同的GATT客户端实现(例如iOS设备,Linux机器等)对其进行测试。为此,如果远程设备没有获得组合特性并试图理解数据,那将会容易得多。

最后,请注意,正如您所说,蓝牙交易相对较快,当使用多个特征与一个特征时,您不会有太大的差异。原因是默认情况下,特征长度为20,蓝牙数据包长度为27(除非您使用的是蓝牙4.2功能,称为Data Length Extension,并非所有手机都支持)。因此,即使您使用大于20的特征长度,蓝牙堆栈/基带也会将特性划分为块并通过空中发送,因此无法实现您所需的改进吞吐量。

我希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.