如何将 BLE RSSI 显示为信号强度条 iPhone

Posted

技术标签:

【中文标题】如何将 BLE RSSI 显示为信号强度条 iPhone【英文标题】:How to display BLE RSSI as signal strength bars iPhone 【发布时间】:2016-08-07 14:27:15 【问题描述】:

我正在编写一个显示 BLE 设备列表的应用程序。

我想以图形方式显示每个设备的信号强度,例如蜂窝信号条,而不是实际数量。

有人知道怎么做吗?

【问题讨论】:

【参考方案1】:

您可以使用UIImageView 仅渲染图像的一部分。让我们分解一下:

    拥有显示完整条形图的图像; 放置UIImageView 以在屏幕上显示您的图像; 创建一个CGRect 来分割您的图像部分并将其设置在your_image_view.layer.contentsRect - 注意1.0 = 100%; 使用CGRect 控制将显示图像的哪些部分;

例子:

UIImageView *view = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
CGRect frame = CGRectMake(/* x */ 0, /* y */ 0.5, /* width */ 1, /* height */ 0.25);
view.layer.contentsRect = frame;
view.image = [UIImage imageNamed:@"ble_bars.png"];

阅读有关 CGMakeRect 和 contentsRect 的文档应该会对您有所帮助。

【讨论】:

@Scott:他删除了不必要的标签。您可以查看历史记录以了解更改的内容。 我看到了,但为什么会给问题一个-1? @Scott 我不认为编辑是-1的原因。有人出于某种原因对您的 Q 投了反对票。 (S)他可能认为你的 Q 不好,或者没有提供足够的信息,或者你可以通过网站的搜索机制找到解决方案。或者也许是别的东西——我猜不出来。您可以发表评论,要求投反对票的人解释他投反对票的原因,但这并不能保证他会看到或回复。我一般建议您阅读FAQ,如果您还没有的话。遵循一些建议可能有助于避免未来的反对票。 另一个我同意的反对票的原因是你没有描述你为解决问题所做的任何努力。没有展示海报任何努力的问题通常被视为“请给我codez plz”。尽管如此,我相信大多数人在对问题或答案投反对票时,往往会留下评论或对现有评论投赞成票。并不是所有人都这样。 感谢您的回复。我通常不会在这里问任何我没有用尽互联网搜索来包含这个伟大网站的东西。我已经全职编码 3 年了,因为能够在这里找到答案,所以只需要问几个问题。我怎样才能知道谁对我投了反对票?【参考方案2】:

1) 你可以做一些快速而肮脏的事情,比如创建一堆代表每个条的 UIView,然后根据 BLE 设备的强度隐藏/显示它们。

2) 或者您可以创建一堆图像并根据信号强度选择要显示的正确图像。

3) 或者你可以走核心图形路线 (https://developer.apple.com/library/mac/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_paths/dq_paths.html#//apple_ref/doc/uid/TP30001066-CH211-TPXREF101)

【讨论】:

以上是关于如何将 BLE RSSI 显示为信号强度条 iPhone的主要内容,如果未能解决你的问题,请参考以下文章

Pile 0003: RSSI

从 Windows 上的 RSSI 检测蓝牙信号强度

BetaFlight模块设计之三十五:RSSI信号强度&链路稳定性分析

React Native、IBECONS、RSSI 值到距离的转换

无线接收信号强度(RSSI)那些事儿

LoRa模块能不能获取信号强度?