我正在做一个应用程序,需要确保所有BLE信标(estimote)的信号强度通过神经网络进行处理,我想将该RSSI存储在一个阵列中,该阵列将被发送到用C#实现的服务器,i&已经用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相同的方式存储??
答案 0 :(得分:1)
我认为RSSI值包含在广告包中。我不知道任何C#,所以我无法帮助你从数据包中获取该值的具体细节(但它应该是可能的)。
然而,你是第二个规定,他们总是按照相同的顺序,需要一些搞乱。那些广告包是通过空中无特定顺序和多次广播的(信标不相互通信并协调其包)。您可以做的一个解决方案是监听一段固定的时间,收集所有广告包,然后按地址排序(您可能会从同一地址获得多个,因此可能会平均RSSI值)。我不知道为什么你要求它们处于相同的顺序,所以这可能不是你没有说过的问题的最佳解决方案。