1

我可以得到蓝牙的 Dbm,但我想可视化信号强度。我想是否有人可以提供以下帮助:

  1. 最大/最小 RSSI 值
  2. RSSI (dbm) 自 百分比
  3. 简单的视觉表示(水平)。(目前,为了简单起见,我正在使用 ProgressBar,尽管让它看起来更加充实和专业可能会很好)。

我确实找到了以下代码,这可能会有所帮助:

public static int calculateSignalLevel(int rssi, int numLevels) {
   if (rssi <= MIN_RSSI){return 0;}
   else if (rssi >= MAX_RSSI){return numLevels - 1;} 
   else { 
      int partitionSize = (MAX_RSSI - MIN_RSSI) / (numLevels - 1);
      return (rssi - MIN_RSSI) / partitionSize;
   }      
}

编辑:在我的笔记本电脑旁边,我得到大约 -60 到 -70 (也许这可能是最接近的?)

4

1 回答 1

1

对于我的 Android 应用程序:“b 和 l 蓝牙文件扫描仪”,我使用不断更新的进度条,rssi 的范围为 -120 到 -40。我还提供了限制最小 rssi 和 LE 设备总数的设置,这样应用程序就不会尝试为每次 LE 扫描更新太多进度条。显然,您不能将 LeScanCallback 函数延迟超过几百毫秒,否则您可能无法在扫描中看到所有设备。为了提高效率,您可以跳过一定数量的未更改的 rssi 级别的视觉更新。

于 2014-06-15T17:02:51.857 回答