summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShreshta Manu <shreshtabm@google.com>2023-09-28 17:22:56 +0000
committerShreshta Manu <shreshtabm@google.com>2023-09-28 17:24:38 +0000
commit63b6e0b8cfd3ddf16d454fc2865a148653a36750 (patch)
tree7d190cf95d15f16fee59a25c04bd85d387eaa1f4
parent3a111b13846a510dbdb1c1087c2e6b0ec159df75 (diff)
downloadUwb-63b6e0b8cfd3ddf16d454fc2865a148653a36750.tar.gz
[uwb] Interpret sync code as byte array
Test: atest ServiceUwbTests Bug: 299072849 Change-Id: If159d67182b5a5e770a951b6050a957647f7238c
-rw-r--r--service/java/com/android/server/uwb/params/CccDecoder.java14
-rw-r--r--service/tests/src/com/android/server/uwb/params/CccDecoderTest.java2
2 files changed, 9 insertions, 7 deletions
diff --git a/service/java/com/android/server/uwb/params/CccDecoder.java b/service/java/com/android/server/uwb/params/CccDecoder.java
index 2761e580..8a94c160 100644
--- a/service/java/com/android/server/uwb/params/CccDecoder.java
+++ b/service/java/com/android/server/uwb/params/CccDecoder.java
@@ -62,7 +62,6 @@ import android.util.Log;
import com.android.server.uwb.config.ConfigParam;
import com.google.uwb.support.base.Params;
-import com.google.uwb.support.ccc.CccParams;
import com.google.uwb.support.ccc.CccProtocolVersion;
import com.google.uwb.support.ccc.CccPulseShapeCombo;
import com.google.uwb.support.ccc.CccRangingStartedParams;
@@ -162,11 +161,14 @@ public class CccDecoder extends TlvDecoder {
if (isBitSet(chapsPerslot, CCC_CHAPS_PER_SLOT_24)) {
builder.addChapsPerSlot(CHAPS_PER_SLOT_24);
}
- // Don't use TlvDecodeBuffer#getInt() to avoid conversion to little endian.
- int syncCodes = ByteBuffer.wrap(tlvs.getByteArray(CCC_SUPPORTED_SYNC_CODES)).getInt();
- for (int i = 0; i < 32; i++) {
- if (isBitSet(syncCodes, 1 << i)) {
- builder.addSyncCode(i + 1);
+ byte[] syncCodes = tlvs.getByteArray(CCC_SUPPORTED_SYNC_CODES);
+ for (int byteIndex = 0; byteIndex < syncCodes.length; byteIndex++) {
+ byte syncCodeByte = syncCodes[byteIndex];
+ for (int bitIndex = 0; bitIndex < 8; bitIndex++) {
+ if ((syncCodeByte & (1 << bitIndex)) != 0) {
+ int syncCodeValue = (byteIndex * 8) + bitIndex + 1;
+ builder.addSyncCode(syncCodeValue);
+ }
}
}
diff --git a/service/tests/src/com/android/server/uwb/params/CccDecoderTest.java b/service/tests/src/com/android/server/uwb/params/CccDecoderTest.java
index a7fcad4d..c3325f61 100644
--- a/service/tests/src/com/android/server/uwb/params/CccDecoderTest.java
+++ b/service/tests/src/com/android/server/uwb/params/CccDecoderTest.java
@@ -112,7 +112,7 @@ public class CccDecoderTest {
assertThat(cccSpecificationParams.getChapsPerSlot()).isEqualTo(
List.of(CHAPS_PER_SLOT_3, CHAPS_PER_SLOT_9));
assertThat(cccSpecificationParams.getSyncCodes()).isEqualTo(
- List.of(2, 8));
+ List.of(26, 32));
assertThat(cccSpecificationParams.getChannels()).isEqualTo(List.of(5, 9));
assertThat(cccSpecificationParams.getHoppingConfigModes()).isEqualTo(
List.of(HOPPING_CONFIG_MODE_CONTINUOUS, HOPPING_CONFIG_MODE_ADAPTIVE));