Merge "Add getTimingAdvance API to NR signal strength"
This commit is contained in:
@@ -42834,6 +42834,7 @@ package android.telephony {
|
||||
method public int getSsRsrp();
|
||||
method public int getSsRsrq();
|
||||
method public int getSsSinr();
|
||||
method @IntRange(from=0, to=1282) public int getTimingAdvanceMicros();
|
||||
method public void writeToParcel(android.os.Parcel, int);
|
||||
field @NonNull public static final android.os.Parcelable.Creator<android.telephony.CellSignalStrengthNr> CREATOR;
|
||||
}
|
||||
|
||||
@@ -155,6 +155,16 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
|
||||
*/
|
||||
private int mParametersUseForLevel;
|
||||
|
||||
/**
|
||||
* Timing advance value for a one way trip from cell to device in microseconds.
|
||||
* Approximate distance is calculated using 300m/us * timingAdvance.
|
||||
*
|
||||
* Reference: 3GPP TS 36.213 section 4.2.3.
|
||||
*
|
||||
* Range: [0, 1282]
|
||||
*/
|
||||
private int mTimingAdvance;
|
||||
|
||||
/** @hide */
|
||||
public CellSignalStrengthNr() {
|
||||
setDefaultValues();
|
||||
@@ -169,10 +179,11 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
|
||||
* @param ssRsrp SS reference signal received power.
|
||||
* @param ssRsrq SS reference signal received quality.
|
||||
* @param ssSinr SS signal-to-noise and interference ratio.
|
||||
* @param timingAdvance Timing advance.
|
||||
* @hide
|
||||
*/
|
||||
public CellSignalStrengthNr(int csiRsrp, int csiRsrq, int csiSinr, int csiCqiTableIndex,
|
||||
List<Byte> csiCqiReport, int ssRsrp, int ssRsrq, int ssSinr) {
|
||||
List<Byte> csiCqiReport, int ssRsrp, int ssRsrq, int ssSinr, int timingAdvance) {
|
||||
mCsiRsrp = inRangeOrUnavailable(csiRsrp, -156, -31);
|
||||
mCsiRsrq = inRangeOrUnavailable(csiRsrq, -20, -3);
|
||||
mCsiSinr = inRangeOrUnavailable(csiSinr, -23, 23);
|
||||
@@ -183,6 +194,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
|
||||
mSsRsrp = inRangeOrUnavailable(ssRsrp, -156, -31);
|
||||
mSsRsrq = inRangeOrUnavailable(ssRsrq, -43, 20);
|
||||
mSsSinr = inRangeOrUnavailable(ssSinr, -23, 40);
|
||||
mTimingAdvance = inRangeOrUnavailable(timingAdvance, 0, 1282);
|
||||
updateLevel(null, null);
|
||||
}
|
||||
|
||||
@@ -198,7 +210,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
|
||||
public CellSignalStrengthNr(
|
||||
int csiRsrp, int csiRsrq, int csiSinr, int ssRsrp, int ssRsrq, int ssSinr) {
|
||||
this(csiRsrp, csiRsrq, csiSinr, CellInfo.UNAVAILABLE, Collections.emptyList(),
|
||||
ssRsrp, ssRsrq, ssSinr);
|
||||
ssRsrp, ssRsrq, ssSinr, CellInfo.UNAVAILABLE);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -302,6 +314,22 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
|
||||
return mCsiCqiReport;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the timing advance value for a one way trip from cell to device for NR in microseconds.
|
||||
* {@link android.telephony.CellInfo#UNAVAILABLE} is reported when there is no
|
||||
* active RRC connection.
|
||||
*
|
||||
* Reference: 3GPP TS 36.213 section 4.2.3.
|
||||
* Range: 0 us to 1282 us.
|
||||
*
|
||||
* @return the NR timing advance if available or
|
||||
* {@link android.telephony.CellInfo#UNAVAILABLE} if unavailable.
|
||||
*/
|
||||
@IntRange(from = 0, to = 1282)
|
||||
public int getTimingAdvanceMicros() {
|
||||
return mTimingAdvance;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
@@ -319,6 +347,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
|
||||
dest.writeInt(mSsRsrq);
|
||||
dest.writeInt(mSsSinr);
|
||||
dest.writeInt(mLevel);
|
||||
dest.writeInt(mTimingAdvance);
|
||||
}
|
||||
|
||||
private CellSignalStrengthNr(Parcel in) {
|
||||
@@ -331,6 +360,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
|
||||
mSsRsrq = in.readInt();
|
||||
mSsSinr = in.readInt();
|
||||
mLevel = in.readInt();
|
||||
mTimingAdvance = in.readInt();
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
@@ -346,6 +376,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
|
||||
mSsSinr = CellInfo.UNAVAILABLE;
|
||||
mLevel = SIGNAL_STRENGTH_NONE_OR_UNKNOWN;
|
||||
mParametersUseForLevel = USE_SSRSRP;
|
||||
mTimingAdvance = CellInfo.UNAVAILABLE;
|
||||
}
|
||||
|
||||
/** {@inheritDoc} */
|
||||
@@ -495,6 +526,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
|
||||
mSsSinr = s.mSsSinr;
|
||||
mLevel = s.mLevel;
|
||||
mParametersUseForLevel = s.mParametersUseForLevel;
|
||||
mTimingAdvance = s.mTimingAdvance;
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
@@ -506,7 +538,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(mCsiRsrp, mCsiRsrq, mCsiSinr, mCsiCqiTableIndex,
|
||||
mCsiCqiReport, mSsRsrp, mSsRsrq, mSsSinr, mLevel);
|
||||
mCsiCqiReport, mSsRsrp, mSsRsrq, mSsSinr, mLevel, mTimingAdvance);
|
||||
}
|
||||
|
||||
private static final CellSignalStrengthNr sInvalid = new CellSignalStrengthNr();
|
||||
@@ -525,7 +557,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
|
||||
&& mCsiCqiTableIndex == o.mCsiCqiTableIndex
|
||||
&& mCsiCqiReport.equals(o.mCsiCqiReport)
|
||||
&& mSsRsrp == o.mSsRsrp && mSsRsrq == o.mSsRsrq && mSsSinr == o.mSsSinr
|
||||
&& mLevel == o.mLevel;
|
||||
&& mLevel == o.mLevel && mTimingAdvance == o.mTimingAdvance;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -543,6 +575,7 @@ public final class CellSignalStrengthNr extends CellSignalStrength implements Pa
|
||||
.append(" ssSinr = " + mSsSinr)
|
||||
.append(" level = " + mLevel)
|
||||
.append(" parametersUseForLevel = " + mParametersUseForLevel)
|
||||
.append(" timingAdvance = " + mTimingAdvance)
|
||||
.append(" }")
|
||||
.toString();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user