工具/软件:Code Composer Studio
大家好!
自从我上一篇文章以来,已经过去了很长时间,但这里却出现了一个新问题,这一次是一个恶性问题。
我正在使用 CCS v6.2开发 CC2650,最后一个堆栈版本是:2.2.1。
除此之外、我在计算机上连接了一个软件狗(主设备)、并由 Visual Studio 软件驱动。 我还有一个主设备、它是具有旧版 Android 4.4.2的手机。 在这部手机上、我有一个定制应用和 BLE 扫描仪应用。
我制作了一个可供所有这些人读取的传感器(2个应用于手机+计算机上的应用)。 CC2650上的软件是对原始 simple_peripheral 的改编。 我能够激活并读取3个软件上特征4的所有通知。 到目前为止、一切都很好、我可以读取具有不同长度的所有特征、我甚至创建了由20个字节组成的第6个特征、这也很有效。
但是、我现在更改了特征4、目标是通过1个字节以上的大量数据进行通知。 我实施得很好(我认为)、读取的通知在任何地方都能正常工作、但对特征1有一个奇怪的影响。 当我读取特征1时,它的长度与特征4相同:在特征1上读取0x01之前,当特征4的长度为5时,我读取0x0102030038。 当特征4的长度为5时、我读取0x0203003802、而不是在特征2上读取0x02。 如果我将特征的4个长度回1、它会很好地工作。
您将同意、更改特征4的长度不应对特征1产生任何影响。 为了完成该技巧、我似乎只有在应用程序的手机上才有问题。 读取方式只有一个变化:电话正在从 UUID 读取值,但计算机应用程序正在从句柄读取值。
要继续、移动特征4的长度会使 UUID 读取其他仅具有1字节错误的特征。
我可以更改特征5和6的大小、它不会出现故障。 特征4和5/6的唯一区别是特性。 4正在处理通知
我没有看到任何不允许我在文档中这样做的东西、我应该能够将特征4的长度放置到20个字节、而不会产生这个问题。
这是我为了实现第4个特性而修改的代码的差分部分。
来自 simple_gatt_profile.c
来自 simple_gatt_profile.h
来自 simple_gatt_profile.c
来自 simple_gatt_profile.c
来自 simple_gatt_profile.c
来自 simple_gatt_profile.c
是否有其他人可以确认此问题?
此致、
John





