问题标签 [iobluetooth]

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 投票
0 回答
258 浏览

macos - IOBluetooth + Arduino:writeSync:length:数据格式错误?

我无法将数据从我的 mac 发送到蓝牙 arduino 板。

看来正在发送的数据在某种程度上是畸形的,因为 arduino 看到从 mac 发送的每个字节的随机值。

NSData 创建

我创建了一个具有以下结构的 NSData 对象。

字节 0:uint8_t 标签字节 1:uint8_t 操作码字节 2:uint8_t 终止符

例如 0x01 0x20 0xff

在致电之前,我会检查数据是否存在任何格式错误

数据总是好的。

Arduino 串行读取

出于调试目的,我执行以下操作 - 对于 Arduino 板接收的每个字节,它将返回 32 个字节的数据,其中传入字节作为第一个字节,然后是 30 0x00,然后是一个终止字节。见下文。

我已经使用 CoolTerm 对此进行了测试,并且效果很好。

IOBluetooth 读取数据

当收到 Arduino 响应时,我将其添加到缓冲区中,然后将其解析为 32 字节块

然而,无论我尝试多少次,第一个字节 - “标签” - 似乎都是一个随机数。然而,这个随机标签总是能被 16 整除。

帮助!

我已经尝试将硬编码值从 ardunio 发送到 mac,并且这些值可以完美传输,所以我知道这不是 arduino Serial.write 方法不正确。

有谁知道为什么会发生这种情况?因为它,我真的把我的头发拉了出来。

0 投票
0 回答
278 浏览

macos - IOBluetooth (OSX) 中是否有用于设置主机控制器地址的 API?

我搜索了IOBluetooth API,但找不到设置主机控制器地址的方法。可以通过这个API吗?如果没有,是否有其他解决方法?

0 投票
29 回答
461256 浏览

objective-c - Xcode 构建失败“架构 x86_64 的未定义符号”

一个 Xcode 初学者的问题:

这是我第一次使用 Xcode 4.6.3。

我正在尝试编写一个非常简单的控制台程序,它搜索配对的 BT 设备并将它们打印到 NSLog。

它构建时出现以下错误:

我疯狂地寻找。常见的问题应该是对文件的引用,其中只有头文件被导入,链接器没有找到实现(*.m-file)。然而,IOBluetooth 库是一个类似于 Foundation Framework 的标准框架。

我在上述陈述中遗漏了什么?

我也尝试过为 32 位机器构建它(构建再次失败)。这显然是一个链接器错误,但我不知道它与什么相关,除了在 x86 和 x64 架构上找到 IOBluetoothDevice 的实现时存在问题,而头文件来自标准包含的框架,称为IO蓝牙?

供您参考,我的主要代码“main.m”是:

感谢您提供任何帮助或指向正确方向的指示。

0 投票
1 回答
903 浏览

ios - 如何通过蓝牙将文件从 iPhone 发送到 mac

我创建了通用设备应用程序,以使用 GameKit 框架通过蓝牙传输任何类型的文件。我的问题是如何在具有相同流程的桌面应用程序上创建或有任何框架?这也可以在设备上进行通信。请给我任何样品或提示如何做。

有使用低功耗协议的核心蓝牙。但我不知道怎么做?任何人请给出一些想法或任何我可以使用它的东西。

谢谢

0 投票
1 回答
2334 浏览

objective-c - 需要有关 IOBlueTooth 的信息

我需要了解一些有关 MAC 的 IOBlueTooth 框架的信息:

  1. 这个框架是否支持 BTLE?
  2. 它与 iOS 框架 CoreBlueTooth 有什么不同?
  3. 为了在 MAC OSX 上支持 BTLE,我们需要 IOBlueTooth 和 CoreBlueTooth 框架吗?请分享一些示例应用程序的链接,如果有的话?

另外,请指点我一些关于 IOBlueTooth 框架的优秀文档或 WWDC 视频。

0 投票
0 回答
496 浏览

objective-c - 蓝牙服务未启动,控制台显示:sandboxd blued deny file-read-metadata

我有一个应用程序,它使用 IOBluetooth 将自己注册为蓝牙服务,并在接收到传入的 RFCOMM 连接时将自己设置为自动启动。

它在 OS X Lion 上运行。

但是在 Mavericks 上,应用程序无法启动,如果我打开控制台,我会看到:

看起来沙盒正在阻止我。为什么?IOBluetooth API 不应该处理这个吗?我怎样才能防止这种情况发生?

0 投票
1 回答
627 浏览

ios - 我在哪里可以找到 BR-LE4.0-S2A 技术规格。即,服务和特性的 UUID 列表?

我正在开发一个 iOS 应用程序来与 BLE 设备通信。我有一个 BR-LE4.0-S2A 设备,但我不知道它的规格。我只知道一旦我将我的 iPhone 与设备配对,我必须将时间和序列 ID 写入 BLE 设备。如果写入成功,BLE 将开始广播一些数据。但是我不确定我必须将这些值写入哪个特征(UUID)。如果有人知道特征 id 或流程如何从 BLE 发起数据广播,请告诉我。这对我会有很大的帮助。我能够连接到设备并从设备读取设备名称。

我不确定我是否可以在 Stack 中提出这种类型的问题。堆栈是我留下的唯一希望。

0 投票
1 回答
978 浏览

macos - IOBluetooth 未返回某些服务的特征

我正在尝试从蓝牙 LE 设备上的服务中读取特征。出于某种原因,对于某些特性,在调用 之后-[CBPeripheralManager discoverCharacteristics:forService]peripheral:didDiscoverServices:回调得到 0 个特性。是否有任何解决方法可以让我阅读此服务的特征?

在为 Xcode 安装硬件 IO 工具并运行 PacketLogger 时,很明显,discoverServices 调用导致了 0x08 Read By Type 请求(Bluetooth® 核心规范第 3 卷,第 F 部分,第 3.4.4.1 节),起始句柄=0x1a,结束句柄=0x1a,属性类型=0x2803。

此外,通过定义以下类扩展来读取受保护的字段,很明显,我感兴趣的服务 0x180a=设备信息也具有太接近舒适的 ATT 句柄:_startHandle=0x1a 和 _endHandle=0x1a。

顺便说一句,当我在 iPhone 4S 上从 LightBlue 读取设备时,该服务运行良好,我可以读取该服务的 3 个特征。

我正在使用 Apple 蓝牙软件版本:4.2.0f6 12982 在 OSX 10.9 Mavericks 上对此进行测试。我正在测试的设备是 Livescribe 3。

这是实际 GATT 句柄、CBService 句柄和 UUID 的表。在 128 位 UUID 弄乱了表格之后,它看起来像有一个 16 位 UUID。蓝牙 4.0 第 3.1 节规定 16 位 UUID 服务“应该”为了性能而组合在一起,但我认为它们不是必须的。

  1. 0001–0004 0001–0004 uuid:1801
  2. 0005–0009 0005–0009 uuid:1800
  3. 0010–0019 0010–0019 uuid:128 位 UUID
  4. 001A–0020 001A–001A uuid:180a
  5. 0021–0023 缺少uuid:180f
  6. 0024–002A 0021–0027 uuid:128 位 UUID
  7. 002E–0031 002B –002E uuid:128 位 UUID
0 投票
5 回答
2378 浏览

bluetooth-lowenergy - ibeacon 和 sensortag 是否相同?

我知道两者都是蓝牙智能设备。我需要知道两者是否可以用于相同的应用程序。如果不是,它们有什么共同点,又有什么不同?

0 投票
2 回答
3121 浏览

ios - OSX 蓝牙 LE 外设传输速率很慢

背景资料:

我已经为 OSX 实现了一个蓝牙 LE 外设,它公开了两个特性(使用 CoreBluetooth)。一个是可读的,一个是可写的(都带有指示)。我在 iOS 上实现了一个蓝牙 LE Central,它将读取可读特性并写入可写特性。我已对其进行设置,以便每次读取特征值时都会更新该值(以类似于此示例的方式)。我通过这种设置获得的传输速率非常慢(以大约 340字节/秒的测量持续速度达到顶峰)。这个速度是实际数据,而不是包括数据包详细信息、ACK 等在内的衡量标准。

问题:

这种持续的速度太慢了。我考虑了两种解决方案:

  1. CoreBluetooth 中有一些我错过的参数可以帮助我提高速度。
  2. 我需要使用 IOBluetooth 类而不是 CoreBluetooth 来实现自定义蓝牙 LE 服务。

我相信,我已经用尽了选项 1。我没有看到任何其他可以调整的参数。我被限制为每条消息发送 20 个字节。其他任何事情,我都会在 iOS 设备上收到关于未知错误、不太可能的错误或值为“不长”的神秘错误。由于演示项目还指示 20 字节 MTU,我会接受这可能是不可能的。

所以我只剩下选项 2。我正在尝试以某种方式修改 OSX 上蓝牙 LE 的连接参数,希望能够提高传输速度(通过将最小和最大连接间隔分别设置为 20 毫秒和 40 毫秒 - 如以及每个连接间隔发送多个 BT 数据包)。看起来在 IOBluetooth 上提供我自己的 SDP 服务是在 OSX 上实现这一目标的唯一方法。问题在于如何做到这一点的文档可以忽略不计甚至不存在。

告诉我如何实现我自己的服务(尽管使用不推荐使用的 API),但是,它没有解释注册 SDP 服务所需的参数。所以我想知道:

  1. 我在哪里可以找到这本词典所需的参数?
  2. 如何定义这些参数以提供蓝牙 LE 服务?
  3. 有没有其他方法可以通过另一个框架在 OSX 上提供蓝牙 LE 外设(Python 库?虚拟机中的 Linux 可以访问蓝牙堆栈?我想完全避免这种情况。)