如何在Linux中保持与蓝牙LE浴室秤的连接

时间:2015-10-06 23:58:38

标签: linux bluetooth-lowenergy bluez gatt

我刚买了蓝牙LE /智能浴室秤(型号Sanitas SBF 70)。我可以使用以下命令从中读取数据:

Sub TestSub2() Dim i As Integer, j As Integer, k As Integer, k2 As Integer 'i ->tier table row counter 'j ->column counter 'k ->"Reading Date" and "PM Executed?" table row counter '---TIER 1 TABLE--- k = 102 k2 = 84 For i = 21 To 35 k = k + 1 k2 = k2 + 1 For j = 27 To 149 Select Case Cells(k, j).Value Case "T1", "T1, T2", "T2, T1", "T1, T3", "T3, T1", "T1, T2, T3", "T1, T3, T2", "T2, T1, T3", "T2, T3, T1", "T3, T1, T2", "T3, T2, T1" Cells(i, 8) = Cells(i - 18, j) And Cells(i, 9) = Cells(k2, j) End Select Next j Next i

然后,当我站在它上面时,我会收到如下的多条通知消息: "通知句柄= 0x002e值:e7 58 01 05 e9" 最后两个字节是50g增量的质量。

我希望使用TCP或UDP套接字服务将其集成到一些应用程序中,该服务将这些消息广播到任何侦听客户端。

但经过一些研究后,我不知道什么是保持连接的最佳方式(几分钟后连接超时)。或者也可以在使用音阶时重新建立连接(我注意到很多活动来自' hcitool lescan'每当有人踏上音阶时)。

我不在乎使用什么语言/库。如果我可以将其推送到TCP / UDP套接字,那么其他应用程序使用这些信息将是微不足道的。

1 个答案:

答案 0 :(得分:1)

答案很简单:你没有。 您的秤很可能是电池供电的。因此,只有在测量您的体重后才能在短时间内启用蓝牙通信。您的应用程序只需要反复尝试连接到比例(捕获任何“无法连接超时”),直到您踩到它为止。并且在连接之前从BLE再次关闭之前获取数据。在伪代码中:

while true:
  while not_connected:
    try to connect
  receive notifications
  disconnect
由python模块pygatt包裹的gatttool非常适合解决这个挑战 在我的情况下,在启用3种不同特征的指示后,传输比例数据(前30个权重)。