【问题标题】:Read RSSI value of all BLE devices on range读取范围内所有 BLE 设备的 RSSI 值
【发布时间】:2017-09-16 23:36:03
【问题描述】:

我正在做一个应用程序,需要测量所有 BLE 信标(估计)的信号强度以通过神经网络进行处理,我想将该 RSSI 存储在一个数组中,该数组将发送到用 C# 实现的服务器,我'已经用 wifi 实现了它并希望获得类似的结果,这是我的 Wifi 代码:

 ListaWifi = ObjWifi.getScanResults();
    rssi = new int[2];
    for (int i = 0; i < 2; i++) {
        rssi[i] = ListaWifi.get(i).level;
    }

我还希望数据始终具有相同的顺序:

int[] ret = new int[3];
for (int i = 0; i < tam; i++) {
            switch ((BSSID[i])) {
                case "9c:d6:43:94:ee:3f":
                    ret[0] = rssi[i];
                    break;
                case "9c:d6:43:94:f1:63":
                    ret[1] = rssi[i];
                    break;
                case "9c:d6:43:94:f1:99":
                    ret[2] = rssi[i];
                    break;
                default:
                    break;
            }
  }

有没有办法持续监控 BLE 信标的数据并以与 wifi 相同的方式存储??

【问题讨论】:

    标签: android bluetooth-lowenergy estimote rssi


    【解决方案1】:

    我认为 RSSI 值包含在广告数据包中。我不懂任何 C#,所以我无法帮助您了解从数据包中获取该值的具体细节(但应该可以)。

    但是,您的第二个规定是,它们总是以相同的顺序出现,这需要一些混乱。这些广告数据包以无特定顺序和多次在空中广播(信标不相互通信并协调它们的数据包)。您可以做的一种解决方案是听一段固定的时间,将所有广告数据包收集在一起,然后按地址对它们进行排序(您可能会从同一个地址获得多个,因此可能会平均 RSSI 值)。我不知道您为什么要求它们以相同的顺序排列,因此这可能不是解决您未说明的问题的最佳方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多