summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--location/java/android/location/GpsClock.java16
-rw-r--r--location/java/android/location/GpsMeasurement.java136
-rw-r--r--location/java/android/location/GpsNavigationMessage.java19
3 files changed, 65 insertions, 106 deletions
diff --git a/location/java/android/location/GpsClock.java b/location/java/android/location/GpsClock.java
index 22ac1a9..4135a1c 100644
--- a/location/java/android/location/GpsClock.java
+++ b/location/java/android/location/GpsClock.java
@@ -19,7 +19,6 @@ package android.location;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
-import android.util.Log;
/**
* A class containing a GPS clock timestamp.
@@ -29,7 +28,6 @@ import android.util.Log;
*/
@SystemApi
public class GpsClock implements Parcelable {
- private static final String TAG = "GpsClock";
// The following enumerations must be in sync with the values declared in gps.h
@@ -109,17 +107,7 @@ public class GpsClock implements Parcelable {
* Sets the type of time reported.
*/
public void setType(byte value) {
- switch (value) {
- case TYPE_UNKNOWN:
- case TYPE_GPS_TIME:
- case TYPE_LOCAL_HW_TIME:
- mType = value;
- break;
- default:
- Log.d(TAG, "Sanitizing invalid 'type': " + value);
- mType = TYPE_UNKNOWN;
- break;
- }
+ mType = value;
}
/**
@@ -135,7 +123,7 @@ public class GpsClock implements Parcelable {
case TYPE_LOCAL_HW_TIME:
return "LocalHwClock";
default:
- return "<Invalid>";
+ return "<Invalid:" + mType + ">";
}
}
diff --git a/location/java/android/location/GpsMeasurement.java b/location/java/android/location/GpsMeasurement.java
index 1c50181..05bcf79 100644
--- a/location/java/android/location/GpsMeasurement.java
+++ b/location/java/android/location/GpsMeasurement.java
@@ -19,7 +19,6 @@ package android.location;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
-import android.util.Log;
/**
* A class representing a GPS satellite measurement, containing raw and computed information.
@@ -28,8 +27,6 @@ import android.util.Log;
*/
@SystemApi
public class GpsMeasurement implements Parcelable {
- private static final String TAG = "GpsMeasurement";
-
private int mFlags;
private byte mPrn;
private double mTimeOffsetInNs;
@@ -140,6 +137,12 @@ public class GpsMeasurement implements Parcelable {
public static final short STATE_TOW_DECODED = (1<<3);
/**
+ * All the GPS receiver state flags.
+ */
+ private static final short STATE_ALL =
+ STATE_CODE_LOCK | STATE_BIT_SYNC | STATE_SUBFRAME_SYNC | STATE_TOW_DECODED;
+
+ /**
* The state of the 'Accumulated Delta Range' is invalid or unknown.
*/
public static final short ADR_STATE_UNKNOWN = 0;
@@ -159,6 +162,11 @@ public class GpsMeasurement implements Parcelable {
*/
public static final short ADR_STATE_CYCLE_SLIP = (1<<2);
+ /**
+ * All the 'Accumulated Delta Range' flags.
+ */
+ private static final short ADR_ALL = ADR_STATE_VALID | ADR_STATE_RESET | ADR_STATE_CYCLE_SLIP;
+
// End enumerations in sync with gps.h
GpsMeasurement() {
@@ -263,19 +271,7 @@ public class GpsMeasurement implements Parcelable {
* Sets the sync state.
*/
public void setState(short value) {
- switch (value) {
- case STATE_UNKNOWN:
- case STATE_BIT_SYNC:
- case STATE_CODE_LOCK:
- case STATE_SUBFRAME_SYNC:
- case STATE_TOW_DECODED:
- mState = value;
- break;
- default:
- Log.d(TAG, "Sanitizing invalid 'sync state': " + value);
- mState = STATE_UNKNOWN;
- break;
- }
+ mState = value;
}
/**
@@ -283,20 +279,30 @@ public class GpsMeasurement implements Parcelable {
* For internal and logging use only.
*/
private String getStateString() {
- switch (mState) {
- case STATE_UNKNOWN:
- return "Unknown";
- case STATE_BIT_SYNC:
- return "BitSync";
- case STATE_CODE_LOCK:
- return "CodeLock";
- case STATE_SUBFRAME_SYNC:
- return "SubframeSync";
- case STATE_TOW_DECODED:
- return "TowDecoded";
- default:
- return "<Invalid>";
+ if (mState == STATE_UNKNOWN) {
+ return "Unknown";
+ }
+ StringBuilder builder = new StringBuilder();
+ if ((mState & STATE_CODE_LOCK) == STATE_CODE_LOCK) {
+ builder.append("CodeLock|");
+ }
+ if ((mState & STATE_BIT_SYNC) == STATE_BIT_SYNC) {
+ builder.append("BitSync|");
+ }
+ if ((mState & STATE_SUBFRAME_SYNC) == STATE_SUBFRAME_SYNC) {
+ builder.append("SubframeSync|");
+ }
+ if ((mState & STATE_TOW_DECODED) == STATE_TOW_DECODED) {
+ builder.append("TowDecoded|");
}
+ int remainingStates = mState & ~STATE_ALL;
+ if (remainingStates > 0) {
+ builder.append("Other(");
+ builder.append(Integer.toBinaryString(remainingStates));
+ builder.append(")|");
+ }
+ builder.deleteCharAt(builder.length() - 1);
+ return builder.toString();
}
/**
@@ -395,18 +401,7 @@ public class GpsMeasurement implements Parcelable {
* Sets the 'Accumulated Delta Range' state.
*/
public void setAccumulatedDeltaRangeState(short value) {
- switch (value) {
- case ADR_STATE_UNKNOWN:
- case ADR_STATE_VALID:
- case ADR_STATE_RESET:
- case ADR_STATE_CYCLE_SLIP:
- mAccumulatedDeltaRangeState = value;
- break;
- default:
- Log.d(TAG, "Sanitizing invalid 'Accumulated Delta Range state': " + value);
- mAccumulatedDeltaRangeState = ADR_STATE_UNKNOWN;
- break;
- }
+ mAccumulatedDeltaRangeState = value;
}
/**
@@ -414,18 +409,27 @@ public class GpsMeasurement implements Parcelable {
* For internal and logging use only.
*/
private String getAccumulatedDeltaRangeStateString() {
- switch (mAccumulatedDeltaRangeState) {
- case ADR_STATE_UNKNOWN:
- return "Unknown";
- case ADR_STATE_VALID:
- return "Valid";
- case ADR_STATE_RESET:
- return "Reset";
- case ADR_STATE_CYCLE_SLIP:
- return "CycleSlip";
- default:
- return "<Invalid>";
+ if (mAccumulatedDeltaRangeState == ADR_STATE_UNKNOWN) {
+ return "Unknown";
+ }
+ StringBuilder builder = new StringBuilder();
+ if ((mAccumulatedDeltaRangeState & ADR_STATE_VALID) == ADR_STATE_VALID) {
+ builder.append("Valid|");
+ }
+ if ((mAccumulatedDeltaRangeState & ADR_STATE_RESET) == ADR_STATE_RESET) {
+ builder.append("Reset|");
}
+ if ((mAccumulatedDeltaRangeState & ADR_STATE_CYCLE_SLIP) == ADR_STATE_CYCLE_SLIP) {
+ builder.append("CycleSlip|");
+ }
+ int remainingStates = mAccumulatedDeltaRangeState & ~ADR_ALL;
+ if (remainingStates > 0) {
+ builder.append("Other(");
+ builder.append(Integer.toBinaryString(remainingStates));
+ builder.append(")|");
+ }
+ builder.deleteCharAt(builder.length() - 1);
+ return builder.toString();
}
/**
@@ -744,17 +748,7 @@ public class GpsMeasurement implements Parcelable {
* Sets the 'loss of lock' status.
*/
public void setLossOfLock(byte value) {
- switch (value) {
- case LOSS_OF_LOCK_UNKNOWN:
- case LOSS_OF_LOCK_OK:
- case LOSS_OF_LOCK_CYCLE_SLIP:
- mLossOfLock = value;
- break;
- default:
- Log.d(TAG, "Sanitizing invalid 'loss of lock': " + value);
- mLossOfLock = LOSS_OF_LOCK_UNKNOWN;
- break;
- }
+ mLossOfLock = value;
}
/**
@@ -770,7 +764,7 @@ public class GpsMeasurement implements Parcelable {
case LOSS_OF_LOCK_CYCLE_SLIP:
return "CycleSlip";
default:
- return "<Invalid>";
+ return "<Invalid:" + mLossOfLock + ">";
}
}
@@ -919,17 +913,7 @@ public class GpsMeasurement implements Parcelable {
* Sets the 'multi-path' indicator.
*/
public void setMultipathIndicator(byte value) {
- switch (value) {
- case MULTIPATH_INDICATOR_UNKNOWN:
- case MULTIPATH_INDICATOR_DETECTED:
- case MULTIPATH_INDICATOR_NOT_USED:
- mMultipathIndicator = value;
- break;
- default:
- Log.d(TAG, "Sanitizing invalid 'muti-path indicator': " + value);
- mMultipathIndicator = MULTIPATH_INDICATOR_UNKNOWN;
- break;
- }
+ mMultipathIndicator = value;
}
/**
@@ -945,7 +929,7 @@ public class GpsMeasurement implements Parcelable {
case MULTIPATH_INDICATOR_NOT_USED:
return "NotUsed";
default:
- return "<Invalid>";
+ return "<Invalid:" + mMultipathIndicator + ">";
}
}
diff --git a/location/java/android/location/GpsNavigationMessage.java b/location/java/android/location/GpsNavigationMessage.java
index 42f8ee4..b893f3f 100644
--- a/location/java/android/location/GpsNavigationMessage.java
+++ b/location/java/android/location/GpsNavigationMessage.java
@@ -20,7 +20,6 @@ import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
-import android.util.Log;
import java.security.InvalidParameterException;
@@ -31,7 +30,7 @@ import java.security.InvalidParameterException;
*/
@SystemApi
public class GpsNavigationMessage implements Parcelable {
- private static final String TAG = "GpsNavigationMessage";
+
private static final byte[] EMPTY_ARRAY = new byte[0];
// The following enumerations must be in sync with the values declared in gps.h
@@ -102,19 +101,7 @@ public class GpsNavigationMessage implements Parcelable {
* Sets the type of the navigation message.
*/
public void setType(byte value) {
- switch (value) {
- case TYPE_UNKNOWN:
- case TYPE_L1CA:
- case TYPE_L2CNAV:
- case TYPE_L5CNAV:
- case TYPE_CNAV2:
- mType = value;
- break;
- default:
- Log.d(TAG, "Sanitizing invalid 'type': " + value);
- mType = TYPE_UNKNOWN;
- break;
- }
+ mType = value;
}
/**
@@ -134,7 +121,7 @@ public class GpsNavigationMessage implements Parcelable {
case TYPE_CNAV2:
return "CNAV-2";
default:
- return "<Invalid>";
+ return "<Invalid:" + mType + ">";
}
}