问题标签 [bleno]
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.
node.js - 在 Node Promises 中有回调
使用子进程,我执行 Python 脚本会执行一些吐回数据的操作。我使用 Node 承诺等到我得到 Python 数据。
我面临的问题是匿名函数有一个回调,回调接受两个参数,其中一个是 python 数据。下面的代码解释。我如何调用承诺,等到它解决然后调用回调。
节点承诺
匿名函数
非常感谢
bluetooth-lowenergy - 布莱诺 BLE 库未按预期传输特征值
我正在为发送 BLE 数据的 IOT 外围设备开发 Android/iOS 应用程序。这两个应用程序实际上与物理外围设备(使用德州仪器的 BLE 库)配合得非常好。
现在实际的外围设备正在工作,我正在尝试使用Bleno编写一个模拟器,以便开发团队可以提高效率,但在传输特性的静态字符串值时遇到了问题。
我正在这样设置我的特征:
Bleno 说我必须使用 node.js 缓冲区来发送字符串数据,但是在 Android 和 IOS 上,接收到的数据不是12345
,而是这样的:
关于为什么会发生这种情况的想法?是否有一些我忘记在模拟器中设置的其他广告数据以使值按预期返回?
这是我如何读取有效负载值的示例。这是来自我们的 Android 应用程序:
注意:如果我可以发布任何其他相关代码,请告诉我。
node.js - 在节点缓冲区中写入浮点值
我正在读取传感器数据,我需要通过蓝牙发送这些数据,所以每次值变化时我都使用 noble/bleno 库订阅数据。在这里,我很困惑如何将数据作为缓冲区发送。
我有类似 value = 24.3756 的数据
所以我需要把它写在缓冲区中:
但是当我转换为 ArrayBuffer 值时只显示 24 (小数点后没有)
如何发送完整的浮点值并读取为数组缓冲区?
node.js - Gguide 在 bleno (BLE) 中实现绑定/配对
任何人都可以提供有关如何在 BLENO 中实现绑定/配对的说明列表吗?我创建了一个 ble 配置文件列表,但不知道要编写什么代码或做什么来实现配对。
javascript - 无法写入特征 WebBLE
我有这个 index.html 文件,它与通过 BLE 运行 bleno 应用程序的 Raspberry pi 3 对话。
我可以从 ble 外围设备读取特征,但由于 index.html 第 0 行的未知原因,我得到了 DOMException GATToperation failed。
我在 Pi 上的 bleno 应用,app.js
你们能帮我解决我哪里出错了吗?
谢谢
node.js - Bleno 在二进制数据上引发索引超出范围错误
我的提供 BLE 服务的代码在 nodejs 下运行并使用 bleno 包。
我的服务特点支持read
和notify
。
这是我对功能的简化实现onSubscribe
:
函数buildPacket
返回Uint8Array
20 个字节的 a。控制台语句显示缓冲区为 20 字节,并且具有预期值。
但是,调用会updateValueCallback
引发错误:
这是来自 gatt.js 的相关代码:
有没有我遗漏的步骤?
我读过的大多数关于 bleno 的例子似乎都发送字符串数据。但是,我需要发送二进制数据。发送二进制数据有什么特殊要求吗?
bluetooth-lowenergy - 为什么在使用低功耗蓝牙时必须停止蓝牙?
我已经实现了一个 BLE 外围设备。该设备基于 Ubuntu 操作系统。
我的应用程序在 Node.js 下运行。它使用 bleno ( https://github.com/noble/bleno ) 来宣传其 BLE 服务。
根据站点上的自述文件,为了提供 BLE 服务,bluetoothd
必须停止守护程序并可选择禁用守护程序。
此声明似乎是正确的,因为我的应用程序仅在此守护程序停止时才能按预期工作。
我很好奇为什么必须bluetoothd
停止守护进程。我在网上找不到任何解释。
node.js - Raspberry Pi 4 用作 BLE 中央设备连接问题
对于专业项目,我必须使用 RPI4 作为中央设备来连接特定的外围设备。为了测试,我开发了一个程序来模拟 RPi 上的外围设备(感谢 bleno Node.js 模块),通过设置 GATT 服务器并使用另一个 RPi 作为我的中心和 bluepy Python 库。
一切正常,但是当我在外围设备上设置高于 4000 毫秒的广告间隔时,连接不再起作用(即使在 RPi GATT 服务器或生产服务器上)。
我尝试在我的中心使用 gatttool/hcitool,同样的问题,它运行良好,但前提是广告间隔小于 4000 毫秒。但是当我尝试使用带有专用应用程序(nRF 连接)的手机连接到我的 GATT 服务器时,它可以工作。
经过一番研究,我发现 Linux 内核仅验证 7.5ms - 4000ms ( https://lkml.org/lkml/2019/8/2/358 ) 范围内的连接间隔值,这与我的实验值完全匹配. 但除非我不了解 BLE,否则连接间隔和广告间隔是完全独立的,应该不是问题。在蓝牙文档中,我发现最大广播间隔值应该是 10240ms。有一点我不明白。
如果您想重现它,这是我在一个 RPi4 上运行的 GATT 服务器。我使用 xxxx 开始它sudo BLENO_ADVERTISING_INTERVAL=xxxx node my_gatt_server.js
,我想要以毫秒为单位的广告间隔。
HCI 数据包日志
连接成功时
连接失败时
失败时,gatttool 输出错误为Error: connect error: Transport endpoint is not connected (107)
node.js - 写特性——Nodejs、Bleno、蓝牙
蓝牙设备正在接收写入请求,我可以在控制台中看到对此的确认,但是无论我在数据变量中传递什么,传递的数据变量都会导致相同的随机输出:我猜我'以错误的格式发送或接收数据变量?
这是来自我的 Android 设备的代码,向蓝牙设备发送写入请求
这是接收请求的蓝牙设备上的代码:
不同的输出结果:
this._value[0] = 158
this._value = ??e
etc, etc, etc.
bluetooth-lowenergy - 外设如何在蓝牙连接中获取中央设备名称
外设在建立蓝牙连接 (BLE) 时有什么方法可以获取中央设备的名称?我不确定 Bleno 是否有必要的工具来获得这个。