'激活'蓝牙LE能源数据流

时间:2017-09-27 12:35:51

标签: swift bluetooth bluetooth-lowenergy core-bluetooth

对于学生项目,我们正在努力将蓝牙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中的值,或者这是不可能的?

1 个答案:

答案 0 :(得分:0)

现在解决了,我不接受这个作为答案。我的解决方案尝试一下。愚蠢的&#39;针在一个大包&#39;的东西。

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

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

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