【问题标题】:'Activate' Bluetooth LE Energy Data stream“激活”蓝牙 LE 能量数据流
【发布时间】:2017-09-27 12:35:50
【问题描述】:

对于一个学生项目,我们正在努力将蓝牙 LE 设备(既可以发送也可以接收)连接到 iPhone 或 iPad,以便从中读取数据以实时显示给用户。我们有证据表明制造该设备的公司可以做到这一点,并且我们实际上已经设法建立连接并获取一些数据..但是它每 5-10 秒 ping 一次,并且似乎是一个随机的数字子集,变化很小在更改了设备上的某些内容之后,这让我们变得更聪明了。

现在,当然,我们首先找到了制造设备和应用程序的公司,我们确实获得了使用他们硬件的批准,但无法从他们那里获得 SDK / API 以用于应用。因此,我们的计划是通过自己的方式找到我们需要的东西。

这就是我们陷入困境的地方。我们有以下内容:

  • 基于名称或蓝牙设备地址的连接
  • 扫描服务(以及级联扫描,以防服务中包含 CoreBluetooth 文档中指定的服务)
  • 从所述服务中读取特征。
  • 将值解密为 8 位 UInt,以便我们得到一些实际可读的数据。

这是一个例子,说明我们所获得的价值仍然是原样。

Service: 0x1c0476440, is Primary = yes. UUID: 058d0001-ca72-4c8b-8084-25e049936b31
value <53636da1 7a616c74 73616c74 73616c74 73616c27>

现在,看看这一切,我认为这里的服务是某种“活着”的 ping,它提供了一些关于设备当前状态的辅助信息。

我们的问题归结为:

我们如何进一步“探索”该设备?除此之外,我们似乎没有得到任何额外的输出,但是从 Windows 中查看设备管理器,我们得到了一些看起来像这样的点击(示例):

 {058d0001-ca72-4c8b-8084-25e049936b31}[6]

具有十六进制值、布尔值或日期时间的值,没有明确的标识符。我们有没有办法使用 Swift 向设备发送消息以更改该 uuid 中的值,或者这不可能?

【问题讨论】:

  • 您能打印出您感兴趣的特征吗?服务不应该有“活着”,一个特性可能有它,比如订阅它的变化的可能性(setNotify:())。也许还有一个字符来改变模式。
  • 您可以使用 App Store 中的 LightBlue 应用来探索外围服务和特性
  • @Larme 抱歉回复。在上个月的过程中深入研究它向我们表明,它只是一个表明它还活着的信号。它还使用盐进行内部加密。经过一段时间的研究,我们做了以下工作: 打印每个服务 打印每个特征 记录蓝牙流​​量并分析它 到目前为止,我们还没有“进入”,但我们已经到了它对我们有用的地步.

标签: swift bluetooth bluetooth-lowenergy core-bluetooth


【解决方案1】:

虽然现在解决了,但我不接受这个作为答案。我的解决方案?尝试事情。愚蠢的“干草堆上的针”的事情。

我将 uuid 从 058d0001-ca72-4c8b-8084-25e049936b31 更改为 058d0002-ca72-4c8b-8084-25e049936b31

瞧。我可以做得更多。我试了 3 次,又一次,一个新的结果和一个工作数据流......

@Paulw11 的评论也是解决我们发现的这个问题的好方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 2017-10-26
    • 2013-10-25
    • 1970-01-01
    • 2011-05-01
    • 2011-07-29
    相关资源
    最近更新 更多