首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RSSI和txpower变体

RSSI和txpower变体
EN

Stack Overflow用户
提问于 2018-07-31 14:31:38
回答 1查看 136关注 0票数 1

在我的情况下,我试图将我的设备作为信标,并尝试设置txpower每当我超出其范围时,我希望我的信标从定位应用程序中消失,所以我尝试将txpower距离设置为1米,但即使我超出了信标的范围,比如说3-4米,我仍然在定位应用程序上看到我的信标,即使我将其设置为1米,因为它的rssi功率总是变化的,这实际上是信号传输部分,我试着设置硬编码rssi电源,但在定位应用程序上看到信标后,它仍然不同,当我在3-4米的距离时,我能够在定位应用程序上看到我的信标。

下面是我尝试设置信标的代码。

代码语言:javascript
复制
Beacon beacon = new Beacon.Builder()
            .setId1("2f234454-cf6d-4a0f-adf2-f4911ba9ffa6")
            .setId2(String.valueOf(major))
            .setId3(String.valueOf(minor))
            .setManufacturer(0x004C)
            .setTxPower(-84)
            .setRssi(-49)
            .setDataFields(Arrays.asList(new Long[]{0l}))
            .build();


    BeaconParser beaconParser = new BeaconParser()
            .setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24");//

    beaconTransmitter = new BeaconTransmitter(this, beaconParser);
    beaconTransmitter.startAdvertising(beacon, new AdvertiseCallback() {

        @Override
        public void onStartFailure(int errorCode) {
            Log.e("Class", "Advertisement start failed with code: " + errorCode);
        }

        @Override
        public void onStartSuccess(AdvertiseSettings settingsInEffect) {
            Log.i("class", "Advertisement start succeeded."+settingsInEffect.getTxPowerLevel());
            Log.i("class", "Advertisement start succeeded."+settingsInEffect);
        }
    });

非常感谢您的解决方案。

EN

回答 1

Stack Overflow用户

发布于 2018-07-31 14:54:20

您需要校准您的传输功率,以便BLE信号不会传输超过一米(或任何您的限制)的距离。不同的设备具有不同的硬件,具有不同的行为,因此如果为任何BLE设备设置了传输功率,则不存在在1m范围内传输的确切传输功率。此外,RSSI是一个测量值,它必须随着发射器和接收器之间的距离变化而变化。设置的RSSI值是感测信标的其他设备用来校准这些设备执行的涉及信标的计算的值。例如,当信标距离接收器1米时,您可以将RSSI设置为近似测量的RSSI的值。当用不同的接收器感知信标时,这可以帮助计算到信标的距离。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51606776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档