问题标签 [btle]
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.
bluetooth-lowenergy - 使用 BTLE/iBeacons 获取唯一的硬件标识符
我正在寻找一种通过 BTLE 区分硬件设备的方法。我很愿意使用任何系统(Estimote、Gimbal 等),但我需要在握手之前找到一种方法来识别设备。
例如:如果一个区域有 20 个启用 BTLE 的设备,我想在任何广播之前唯一地识别它们。
ios - 长时间与 iDevice 的 BLE 连接
我有一个带有 nrf51 无线电的传感器板,可以与 iDevice 连接(使用 CoreBluetooth.framework)。
我正在进行的实验(在一夜之间收集传感器数据)可以利用将此数据流推送到手机并让手机将其存储到文件中,因为我在传感器板上的闪存大小有限。虽然,我想知道是否有可能在一夜之间(约 6-8 小时)保持无线电和 iDevice 之间可靠的恒定 BLE 连接,前提是两者都有足够的功率?如果由于中断(例如应用程序被 iOS 终止或由于其他原因导致 BTLE 断开连接)导致我丢失数据,它不会中断。
另外,如果这个问题在 StackExchange 的正确区域,请告诉我。
android - 如果有太多数据包进入,则不会调用 onCharacteristicChanged() 回调
我等待onCharacteristicChanged()
回调通过 BLE 接收数据。但是,如果 BluetoothDevice 一次发送太多 20 字节的数据包,我最多会收到 10 个通知,而不是预期的 46 个 907 字节长的消息。少量的数据会被通知就好了。
在 onServicesDiscovered(BluetoothGatt gatt, int status) 我通过以下方式注册通知:
我是否必须以某种方式承认我获得了数据onCharacteristicChanged()
?
BluetoothDevice 通过将大于 20 字节的消息拆分为 20 字节块来发送消息。通常这些消息小于 200 字节。但是,当 BluetoothDevice 发送超过 900 个字节长的消息时,应用程序只能通过onCharacteristicChanged()
其中 200 个字节获得通知。
这些更大的消息在 iOS 上接收得很好。
objective-c - iBeacones 同时广播和收听
我有一个脚本,可以将手机变成信标并使用 iBeacons 功能广播其位置。这是非常简单的代码:
在同一台设备上,我想收听附近的其他信标……所以我运行了一个类似的脚本,并为“测距”服务加注星标。
我遇到的问题是,如果我同时广播和收听,它似乎不起作用......我有一个正在运行的脚本可以交替收听和广播,这似乎“正常”......但我真的更希望这些功能同时运行。
这甚至可能吗?
ios - iOS8 和 BTLE | CBCentralManager 找不到外围设备
我有一个使用 BTLE 连接到设备(arduino)的 iOS 应用程序。在我的 iPad iOS 7 上一切正常。升级到 iOS 8 后,CBCentralManager 没有找到任何外围设备。
我不知道可能是什么问题。
ios - 如何在 Swift 中从蓝牙特性中获取数据
我现在身边有一个Polar h7设备(它是 BTLE),我已经完成了一切工作,但我对如何获得 BPM 感到困惑,characteristic.value
因为它正在更新。我必须将一些字节转换为 bpm ......
我的外围设备正在更新:
我正在获取有关心率的信息:
我知道我需要将这些字节转换为 BPM。
根据bluetooth.org的规范(这是我感到困惑的地方) ,字节 0 将是 a1
或 a 0
.. 如果是 a 0
,则心率值是 an uint8
,如果是 a,1
那么它是 a uint16
,我可以从中获得 BPM。
如何确定 byte0
是 a1
还是 a 0
?如何将其变成uint8
or uint16
。如果我这样做了,我是直接得到 BPM 还是必须做其他事情?现在 BPM 以某种<16447d03>
有意义的方式回归。
ios - 使用 connectPeripheral IOS BTLE 进行同步调用
connectPeripheral 方法在具有 CBCentralManagerDelegate 的类中定义。I need to call connectPeripheral from the table view controller when didSelectRowAtIndexPath is selected. 连接外围设备后,它应该继续执行视图控制器中剩余的代码行。我能够连接到外围设备。但在连接完成之前,它会执行代码的剩余部分。由于外围设备尚未连接,因此它没有完成必要的工作。
我使用 dispatch_sync 来确保建立连接,然后执行剩余的代码,但它不起作用。我怎样才能解决这个问题?我对IOS编程比较陌生。任何输入都受到高度赞赏。
android - 多重特征是否会增加 BLE 吞吐量
我正在通过 BLE 在 Android 手机和嵌入式设备之间发送数据。我能够通过修改连接间隔来增加吞吐量。通过单个特征或多个特征发送大数据包之间有什么区别(数据速率)?
arduino - 通过 adafruit BTLE 传递一组 uint32_t uid
我有一个 arduino 草图,它监听 RFID 标签,并获取它们的 uid 并将它们存储在一个数组中uint32_t
这是一个带有adaFruit BTLE和adafruit NFC/RFID Shield的 arduino_uno 项目
数组是这样启动的:
然后在我的循环()中;
我找到一个像这样的 id:
并不是说该代码块会打印到串行监视器上:
似乎是 Mifare Classic 卡 #347161076
写入 BTLE:0x31 0x36 0x38 0x38 0x34
但是 BTLE 应用程序正在查看
16884
“作为卡片?
很明显,这是对由该BTLEserial.print()
方法处理的 uint32_t 上的一些奇怪的字节转换造成的。
当我找到 id 时,我在上面的 items 数组中最多存储了六个。我想通过蓝牙将整个阵列作为逗号分隔的字符串发送到我的设备。
请帮助将此 uint32_t 转换为可由 BTLE 处理的字符串或其他对象
ios - SPP使用核心蓝牙框架创建的BTLE设备还需要MFi芯片通过蓝牙ios进行通信吗?
我有由 SPP 制成的非 iOS 设备,我希望它在不使用 MFI 的情况下使用核心蓝牙框架与 iOS 设备通信。这可能吗?如果不可能,那么我应该做些什么改变?