当前位置: 首页 > 知识库问答 >
问题:

用网络蓝牙从BLE设备读取数据?

邓阳炎
2023-03-14

我是新来的JavaScript,所以我可能有一些非常规的编程方式。也就是说,我正在做一个项目,我需要读写数据到自定义BLE设备。我使用gatt服务器协议进行连接。我能够与设备连接,但现在我试图从寄存器中读取数据

我看了从谷歌以及网络蓝牙github的网络样本,但我无法理解它。下面的代码是我目前试图打破这一点。早期的尝试让我陷入了这样一个事实,即我得到的值是一个对象或一个promise对象。

function readFromPcb() {
    let p2 = new Promise((resolve, reject) => {
        if (device.connected === false) {
            reject('network Error');
        }
    })
        .then(characteristic => {
            readValue = characteristic.readValue();
            console.log('data is: ' + readValue);
        })
        .catch(error => {
            console.log('error: ' + error + DOMException.name);
        });
}

共有2个答案

戈念
2023-03-14

我成功了!我需要访问web bluetooth的特性级别。之后,我可以使用我的连接功能的promise来链接。然后是我的阅读功能。

谢谢你的帮助。

function readFromPcb() {
    prom.then(_ => {
        console.log('getting data...');
        gattChar.readValue();
    })
        .catch(error => {
            console.log('error: ' + error + ' ' + DOMException.name);
        });
}
宰父熙云
2023-03-14

我对网络蓝牙知之甚少,但我注意到你的最高promise从未兑现。如果设备未连接,它会拒绝,否则。。。什么都不做。如果您想运行然后回调,则需要在主promise的某个时刻调用resolve()。这就是说,既然你明确地构建了这个promise,它所解析的值就是你自己传递给resolve()的任何参数;这听起来不像你想要的。什么样的功能应该赋予你“特性”?它可能会返回一个promise,而你不需要自己构建一个,你只需将另一个链接起来,然后回调到它为你返回的promise上。

 类似资料:
  • 问题内容: 我正在使用蓝牙聊天功能,以便连接和接收来自蓝牙设备的数据。 我使用以下代码读取数据: 设备一直在发送数据而不会停止。 通过上面的代码,我得到以下消息: 然后转到下一行: 并且永远不会从该呼叫中返回。我猜这是因为它开始从设备读取数据,并且直到断开连接才停止。如何一次读取一定数量的字节? 编辑 除非由于它不保留代码,否则不从设备取回任何数据? 问题答案: 我改用DataInputStrea

  • 我拥有一个极地H10胸带,它以蓝牙低能量运行,并提供心率和心率变化。 我想用Android应用程序读取这些值。由于官方BLE教程中的帮助,我能够连接到设备。现在的问题是从设备中读取心率和心率变异性值。每次设备上有新值可用时,我都要读取该值(并且至少每秒都有新值)。 我找到了以下代码: 假设我与设备有连接,我如何使用它来提取心率和r-r间隔(节拍到节拍间隔)?如果有人能举个简短的例子,我会很高兴。此

  • 我试图用BLE API扫描附近的蓝牙设备,但它似乎不起作用 我已经在清单中添加了权限 以下内容在创建对象时 创建扫描仪回调对象并进一步扫描 在logcat中,我只看到以下内容 这是我的app build gradle } 有人能指出我在这里遗漏了什么吗?

  • 我想通过iPhone(5s)上的应用程序,在50-100米半径范围内同时跟踪大量信标(~500)。我已经看过了规范和在线版本,我看不出使用BLE一次可以跟踪的信标数量是否有任何限制。有人知道你可以跟踪的信标数量是否有限制,或者iphone5s是否能够完成跟踪那么多信标的任务?

  • 问题内容: 我想编写一个用于无线流量的实时分析工具。 有谁知道如何从C中的混杂(或嗅探)设备读取数据? 我知道您需要具有root用户访问权限才能执行此操作。我想知道是否有人知道执行此操作所需的功能。普通的插座在这里似乎没有意义。 问题答案: 在Linux上,您使用PF_PACKET套接字从原始设备读取数据,例如以混杂模式运行的以太网接口: 这会将收到的每个数据包的副本发送到您的套接字。但是,您很可

  • 我正试图在一个项目中实现蓝牙(BLE)网关,以便在硬件和带有应用程序的移动设备之间传输数据。硬件不是唯一的,它可以批量生产,控制器中有相同的程序。 如果制作了100个硬件产品,并排通电,那么设置BLE广播的信息以进行广告的最佳方式是什么,以便移动设备可以接收该信息,并且在任何时候只能连接1个硬件和移动设备。 例如,如果您同时拥有3个相同的健身跟踪手表,并且您只想连接其中一个,那么如何区分手机蓝牙配