对于学生项目,我们正在将蓝牙LE设备(既传输又接收)连接到iPhone或iPad,以便从其读取数据以向用户显示实时。我们已经证明,制造该设备的公司可以做到这一点,并且我们实际上已经设法获得连接并获取一些数据。但是,它每隔5-10秒钟就会进行一次,似乎是一个随机数字子集,只需很少的更改在设备上改变了某些东西之后,这让我们不再聪明。'激活'蓝牙LE能量数据流
当然,我们去了制作设备和应用程序的公司,我们确实已经批准我们使用他们的硬件,但一直没有能够从他们那里获得SDK/API来使用它应用程序。所以,我们的计划是通过我们自己的方式来找到我们需要的东西。
这是我们陷入困境的地方。我们有以下几种:基于名称或蓝牙设备地址
- 连接
- 扫描服务(和级联扫描的情况下,作为CoreBluetooth文档中指定的服务将在其内部服务)
- 阅读从上述特点服务。
- 将值解密为8位UInt,以便我们获得一些实际可读的数据。
这是我们所用值还是因为它来自于得到了一个例子。
Service: 0x1c0476440, is Primary = yes. UUID: 058d0001-ca72-4c8b-8084-25e049936b31
value <53636da1 7a616c74 73616c74 73616c74 73616c27>
现在,看着这一切,我相信这里的服务是某种形式的“住活着'ping,并提供有关设备当前状态的一些辅助信息。
我们接下来的问题归结为:
如何才能进一步“探讨”的设备?我们似乎没有得到任何额外的输出除了这个然而,在设备管理器看,从窗户,我们得到了几个命中,看起来像这样(例):
{058d0001-ca72-4c8b-8084-25e049936b31}[6]
它在任一十六进制值有值,布尔值或日期时间,但没有明确的标识符。有没有办法让我们发送消息给设备,使用Swift更改uuid中的值,或者这是不可能的?
您可以打印您感兴趣的特征吗?该服务不应该有一个“保持活力”,它的一个特点可能就是它的变化,比如订阅可能性('setNotify :()')。也许是一个字符在哪里写改变模式。 – Larme
您可以使用App Store中的LightBlue应用程序来探索外围设备服务和特性 – Paulw11
@Larme抱歉回复。在上个月的过程中进一步深入研究表明,这只是一个表明它还活着的信号。它也用盐进行内部加密。它工作了一点,我们做了以下内容: 打印每一个服务 打印每一个特征 登录蓝牙交通和分析 到目前为止,我们还没有“中”,但我们正在向指出它对我们可用。 – Veraduxxz