问题标签 [characteristics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
679 浏览

android - Android BLE 读取特性,当我读取数据(大)时,我只得到最后一部分。不是完整的数据。我该怎么做才能获得完整的数据

我将数据作为 20 字节块发送到 BLE 设备。
我收到了很大的回复。但是onCharacteristicRead回电,我只得到最后一条数据。

  • 谁能帮助理解我哪里出错了?
  • 我应该也将数据作为块读回吗?
  • 如果是这样,怎么做?
0 投票
0 回答
82 浏览

tcp - TCP 上的类 GATT 协议

我正在寻找一种基于 TCP/IP 的协议,其行为类似于 BLE GATT。服务器应该宣布它提供了哪些特性/属性,并且客户端可以读取/写入/订阅它们。

此外,它应该非常轻量级,因为它需要在两个直接相互连接的 MCU 上运行。

那个方向有什么东西吗?

0 投票
1 回答
154 浏览

bluetooth-lowenergy - 网络蓝牙的长特性

BLE 允许在单个突发中传输 2 到 256 个字节作为有效负载。但是,android/ios 上的长特性可以分块读取。网络蓝牙
会发生什么?网络蓝牙可以读取长特性吗? 当特征超过 512 字节时,它会分成块吗?

0 投票
3 回答
51 浏览

python - 恢复预定义变量作为输入

我是编程新手,尤其是 python,我有一个必修项目要做。

我解释:我有一个对象列表(他们是人),每个对象都有特征,每个特征都基于从 1 到 5 的等级(对于理解问题并不重要)所以我有 6 个男性和 6 个女性预定义为对象,我根据他们的特点进行比较,如果他们的特点接近,他们或多或少会完美匹配。

所以我的目标是通过输入输入我输入的人的姓名,然后我的比较函数将它们进行比较。问题是,当我通过直接输入名称进行手动比较时,它可以工作,但是当我插入输入时,会发生错误。

我会让你发现下面的代码以更好地理解我在说什么,因为我不知道我是否非常容易理解,但我很高兴能得到这个问题的答案,谢谢:D

PS:抱歉我的拼写错误,我的语言不太好。

例子

例如,如果我写“比较(Bryan,Dita)”,它直接是主题,它正在工作但输入它不是:/

0 投票
2 回答
274 浏览

python - 如何解码特征的字节值(python)

对于一个项目,我目前正在尝试通过蓝牙 le 从传感器 (Polar OH1) 获取一些与心脏相关的数据 (ppg)。传感器制造商使用的服务没有很好地记录。现在,在读取服务的特征值时,我得到了大量的字节数据:

'''\r\xb1\x1aQ\xb4x\xa3C\x83\xdcv\xd3Q\x12\xbdJ\x7f\x82\xbf\x06\x91s\x07\xb7,\xb4\xd5\xa59\xf1\xf8\x8e \xabeF@2\xe0\x10\xcb{\xe5\xfd\x8dC\x10f\x8ca\xe6\x98\xb2\xf9I\xaa\xb7\xff\xe3\xab\x13'\x03J\xd4\xb5*/ ...'''

不幸的是,使用 utf-8、utf-16 (le,be) 或 utf-32 解码此数据不起作用。我怎样才能知道如何解码这个神秘的混乱?由于这是我第一次使用蓝牙乐,我真的被困住了。

我在 Linux(Ubuntu)上使用 Python3。

此致

0 投票
1 回答
94 浏览

android - onCharacteristicChanged 没有被击中。安卓低功耗蓝牙

我有一个与我的设备使用 BLE 连接的应用程序。从连接到设备、发现服务、编写特征和描述符,一切都有效。但由于某种原因, onCharacteristicChanged 没有触发。目标是从特征中的特征中检索数据。我尝试使用来自同一服务的不同特征,这与检索数据一样有效。不知道为什么这个特定的特性在其他特性不起作用时不起作用。

这是我的代码: //Descriptor public final static UUID UUID_CLIENT_CHARACTERISTIC_CONFIG = UUID.fromString(GattAttributes.CLIENT_CHARACTERISTIC_CONFIG);

}

希望有人可以帮助我。我没主意了。

0 投票
2 回答
168 浏览

android - BLE Android如何传递特征以在片段中使用

我得到了一个 BLE 教程。我可以在 SPS 服务上发送和接收数据,这个数据 TX RX 是在 Dialog_BTLE_Characteristics 中完成的。看起来特征和服务是使用以下命令从 Activity_BTLE_Services 传递到 Dialog_BTLE_Characteristic 类的。

然后在 Dialog_BTLE_Characteristic 类中使用特征来发送数据(输出):

现在我想在 Fragment 中发送和接收数据。如何将这些特征和服务传递给 Fragment?

你的帮助会很大。马里努斯

0 投票
0 回答
100 浏览

ios - 未显示特性 - iOS 是否有 BLE 外围特性规范

我有一个带有服务和一个特征的自定义蓝牙外围设备,它需要一个值。在 Android 上运行良好,但在 iPhone 上只能连接,但在我使用的任何蓝牙工具应用程序(nRF、LightBlue ......)中都没有显示该特性

我们使用自定义 UUID,这对 Apple 来说是个问题吗?

编辑:这是代码

0 投票
0 回答
689 浏览

flutter - 带有通知的 Flutter Blue 从 2 个特征中读取值

我是 Flutter 的初学者,想用蓝牙 LE 编写一个应用程序。我使用flutter_blue。如果我只想读取一个特征的值,我的应用程序就可以工作。现在我需要阅读第二个特征,这就是问题所在。我正在使用来自 esp32 灰尘传感器的示例。主要类似于flutter blue的例子。到下一个站点的步骤是使用以下代码:

这行得通。在 Sensor-Page 中,有以以下开头的页面代码:

我产生的特征:

两个阅读特征都向应用程序发送数据,我收到通知,新数据可用 [onCharacteristicChanged] uuid:456e869c-d393-4cec-9f43-cef5382eab72]。但是只有当 uuid ...b72(wt_Ist_stream) 的值发生变化时,我的 Dataparser 才会启动。然后他从 snapshot.data 中得到正确的字符串。

如果我更改了 Streambuilder-Stream

我的数据解析器从特征 2 中获取值。但是,如果一个流(wt_Ist_Stream 或 wt_Soll_stream)发生更改然后获取正确的值,我该如何更改我的解析器自动启动的应用程序。

Streambuilder 将正确的数据发送到 dataparser,但只发送流,它在流中被调用:

如何更改代码,让我的解析器从流更改开始并从 snapshot.data 获取正确的值?

数据解析器代码:

0 投票
0 回答
95 浏览

android - Android,BLE不断写入特征值断开gatt服务器

我注意到,如果我快速且连续地写入特征值,gatt 服务器将断开连接。我知道我必须等到onCharacteristicWrite回调,所以我认为这不是问题。

这是我的队列实现,我使用kotlin Channel来同步写入和读取。

我需要在队列处理中添加大约 100ms 的延迟以避免断开连接。


更新

设置writeType为默认值后,似乎onCharacteristicWrite更现实(我以前即使设备停止通信也得到 GATT_SUCCESS,所以我猜这是“虚拟”状态),现在当设备停止通信时它没有得到onCharacteristicWrite回调,虽然一段时间后它会以 status = 133 触发。

这是什么意思?