RSSI和TXPower的变化

时间:2018-07-31 06:31:38

标签: variations rssi transmission

我的情况是我试图将设备用作信标并尝试设置txpower,只要我不在其范围内,我都希望我的信标从Locate App中消失,所以我尝试将txpower距离设置为1米,但是在我超出信标的范围后,假设3-4米,即使我将其设置为1米,我仍然在Locate App上看到我的信标,因为它的rssi功率总是变化,这实际上是信号传输的一部分,我尝试了设置硬代码rssi功率,但是仍然在Locate App上看到信标后,它会变化,当我在3-4米的距离时,我可以在Locate App上看到我的信标。

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

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);
        }
    });

寻求解决方案,谢谢。

1 个答案:

答案 0 :(得分:0)

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