【问题标题】:noble.state is set to "poweredOff" immediately after running the program. (Node.js Noble)运行程序后,noble.state 立即设置为 \"poweredOff\"。 (Node.js 高贵)
【发布时间】:2022-08-10 18:12:16
【问题描述】:

正如标题所示,我用 Node.js 和 Noble 制作了一个简单的程序来扫描具有蓝牙 LE 的设备。我的最终目标是连接到我的白日梦视图控制器并从中接收信息。

我的问题是,每当我运行文件时,状态设置为 \"poweredOff\",即使我将其设置为 \"poweredOn\"。当状态设置为“poweroff”时,它会停止扫描,所以我永远无法找到设备。

这是我的代码:

const noble = require(\'noble\')

noble.on(\'stateChange\', function(state) {
    console.log(\"[STATE] State changed to: \", state)
    if (state === \'poweredOn\') {
        console.log(\"[STATE] Powered on, now scanning\")
        noble.startScanning();
    } else {
        console.log(\"[STATE] Powered off, stopped scanning\")
        noble.stopScanning();
    }
})
  
noble.state = \"poweredOn\"

// we found something
noble.on(\"discover\", function(peripheral){
    console.log(peripheral)
})

这是我运行后得到的输出:

[STATE] State changed to:  poweredOff
[STATE] Powered off, stopped scanning

我尝试了什么?

我检查了我是否具备 Noble 的所有先决条件。

我尝试运行 Noble 提供的示例。 (同样的事情发生)

我已经尝试在noble.on(\'stateChange\') 事件的上方和下方移动noble.state = \"poweredOn\"

我还发现问题不在于 Daydream 控制器,因为我在手机上下载了 LightBlue 应用程序,它可以检测并连接到 Daydream 控制器。我没有得到任何错误或任何东西。这对我来说很奇怪,我希望有人能帮助我。

提前致谢。

    标签: node.js bluetooth-lowenergy daydream noble-count


    【解决方案1】:

    您的代码似乎对我来说很好,我在我的脚本中复制并使用它,没有修改。在我的情况下,我什至不必将noble.state 设置为poweredOn。我知道这是一个非常微不足道的建议,但是您是否检查过您的蓝牙适配器是否已打开?

    我让它在 RPi3 上运行,我使用 @abandonware/noble 而不是高贵。但是,我相信这没有什么区别。您能否提供有关您在哪个平台上使用它的更多详细信息?

    【讨论】:

      猜你喜欢
      • 2015-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-14
      相关资源
      最近更新 更多