Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d69d86e3 authored by Ningyuan Wang's avatar Ningyuan Wang
Browse files

WifiInfo: Add getters for success tx/rx rate

This adds getters to get success tx/rx rate, returning in the
unit of 'packets per second'.
This also adjusts the constant OUTPUT_SCALE_FACTOR so it can
be more informative.

Bug: 62428282
Test: compile, unit tests
Change-Id: I989defd8fdc14dfc78692385fda86fb20b369b7b
parent dc7b2bc5
Loading
Loading
Loading
Loading
+22 −5
Original line number Original line Diff line number Diff line
@@ -142,8 +142,9 @@ public class WifiInfo implements Parcelable {
    /**
    /**
     * This factor is used to adjust the rate output under the new algorithm
     * This factor is used to adjust the rate output under the new algorithm
     * such that the result is comparable to the previous algorithm.
     * such that the result is comparable to the previous algorithm.
     * This actually converts from unit 'packets per second' to 'packets per 5 seconds'.
     */
     */
    private static final long OUTPUT_SCALE_FACTOR = 5000;
    private static final long OUTPUT_SCALE_FACTOR = 5;
    private long mLastPacketCountUpdateTimeStamp;
    private long mLastPacketCountUpdateTimeStamp;


    /**
    /**
@@ -189,16 +190,16 @@ public class WifiInfo implements Parcelable {
                    double currentSampleWeight = 1.0 - lastSampleWeight;
                    double currentSampleWeight = 1.0 - lastSampleWeight;


                    txBadRate = txBadRate * lastSampleWeight
                    txBadRate = txBadRate * lastSampleWeight
                        + (txbad - txBad) * OUTPUT_SCALE_FACTOR / timeDelta
                        + (txbad - txBad) * OUTPUT_SCALE_FACTOR * 1000 / timeDelta
                        * currentSampleWeight;
                        * currentSampleWeight;
                    txSuccessRate = txSuccessRate * lastSampleWeight
                    txSuccessRate = txSuccessRate * lastSampleWeight
                        + (txgood - txSuccess) * OUTPUT_SCALE_FACTOR / timeDelta
                        + (txgood - txSuccess) * OUTPUT_SCALE_FACTOR * 1000 / timeDelta
                        * currentSampleWeight;
                        * currentSampleWeight;
                    rxSuccessRate = rxSuccessRate * lastSampleWeight
                    rxSuccessRate = rxSuccessRate * lastSampleWeight
                        + (rxgood - rxSuccess) * OUTPUT_SCALE_FACTOR / timeDelta
                        + (rxgood - rxSuccess) * OUTPUT_SCALE_FACTOR * 1000 / timeDelta
                        * currentSampleWeight;
                        * currentSampleWeight;
                    txRetriesRate = txRetriesRate * lastSampleWeight
                    txRetriesRate = txRetriesRate * lastSampleWeight
                        + (txretries - txRetries) * OUTPUT_SCALE_FACTOR / timeDelta
                        + (txretries - txRetries) * OUTPUT_SCALE_FACTOR * 1000/ timeDelta
                        * currentSampleWeight;
                        * currentSampleWeight;
            } else {
            } else {
                txBadRate = 0;
                txBadRate = 0;
@@ -437,6 +438,22 @@ public class WifiInfo implements Parcelable {
        return ScanResult.is5GHz(mFrequency);
        return ScanResult.is5GHz(mFrequency);
    }
    }


    /**
     * @hide
     * This returns txSuccessRate in packets per second.
     */
    public double getTxSuccessRatePps() {
        return txSuccessRate / OUTPUT_SCALE_FACTOR;
    }

    /**
     * @hide
     * This returns rxSuccessRate in packets per second.
     */
    public double getRxSuccessRatePps() {
        return rxSuccessRate / OUTPUT_SCALE_FACTOR;
    }

    /**
    /**
     * Record the MAC address of the WLAN interface
     * Record the MAC address of the WLAN interface
     * @param macAddress the MAC address in {@code XX:XX:XX:XX:XX:XX} form
     * @param macAddress the MAC address in {@code XX:XX:XX:XX:XX:XX} form