1 /* 2 * Copyright (C) 2021 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package com.android.server.uwb.data; 17 18 import java.util.Arrays; 19 20 public class UwbRangingData { 21 public long mSeqCounter; 22 public long mSessionId; 23 public int mRcrIndication; 24 public long mCurrRangingInterval; 25 public int mRangingMeasuresType; 26 public long mHusPrimarySessionId; 27 public int mMacAddressMode; 28 public int mNoOfRangingMeasures; 29 public UwbTwoWayMeasurement[] mRangingTwoWayMeasures; 30 public byte[] mRawNtfData; 31 public UwbOwrAoaMeasurement mRangingOwrAoaMeasure; 32 public UwbDlTDoAMeasurement[] mUwbDlTDoAMeasurements; 33 UwbRangingData(long seqCounter, long sessionId, int rcrIndication, long currRangingInterval, int rangingMeasuresType, long husPrimarySessionId, int macAddressMode, int noOfRangingMeasures, UwbTwoWayMeasurement[] rangingTwoWayMeasures, byte[] rawNtfData)34 public UwbRangingData(long seqCounter, long sessionId, int rcrIndication, 35 long currRangingInterval, int rangingMeasuresType, long husPrimarySessionId, 36 int macAddressMode, int noOfRangingMeasures, 37 UwbTwoWayMeasurement[] rangingTwoWayMeasures, byte[] rawNtfData) { 38 this.mSeqCounter = seqCounter; 39 this.mSessionId = sessionId; 40 this.mRcrIndication = rcrIndication; 41 this.mCurrRangingInterval = currRangingInterval; 42 this.mRangingMeasuresType = rangingMeasuresType; 43 this.mHusPrimarySessionId = husPrimarySessionId; 44 this.mMacAddressMode = macAddressMode; 45 this.mNoOfRangingMeasures = noOfRangingMeasures; 46 this.mRangingTwoWayMeasures = rangingTwoWayMeasures; 47 this.mRawNtfData = rawNtfData; 48 } 49 UwbRangingData(long seqCounter, long sessionId, int rcrIndication, long currRangingInterval, int rangingMeasuresType, long husPrimarySessionId, int macAddressMode, int noOfRangingMeasures, UwbOwrAoaMeasurement rangingOwrAoaMeasure, byte[] rawNtfData)50 public UwbRangingData(long seqCounter, long sessionId, int rcrIndication, 51 long currRangingInterval, int rangingMeasuresType, long husPrimarySessionId, 52 int macAddressMode, int noOfRangingMeasures, UwbOwrAoaMeasurement rangingOwrAoaMeasure, 53 byte[] rawNtfData) { 54 this.mSeqCounter = seqCounter; 55 this.mSessionId = sessionId; 56 this.mRcrIndication = rcrIndication; 57 this.mCurrRangingInterval = currRangingInterval; 58 this.mRangingMeasuresType = rangingMeasuresType; 59 this.mHusPrimarySessionId = husPrimarySessionId; 60 this.mMacAddressMode = macAddressMode; 61 this.mNoOfRangingMeasures = noOfRangingMeasures; 62 this.mRangingOwrAoaMeasure = rangingOwrAoaMeasure; 63 this.mRawNtfData = rawNtfData; 64 } 65 UwbRangingData(long seqCounter, long sessionId, int rcrIndication, long currRangingInterval, int rangingMeasuresType, long husPrimarySessionId, int macAddressMode, int noOfRangingMeasures, UwbDlTDoAMeasurement[] uwbDlTDoAMeasurements, byte[] rawNtfData)66 public UwbRangingData(long seqCounter, long sessionId, int rcrIndication, 67 long currRangingInterval, int rangingMeasuresType, long husPrimarySessionId, 68 int macAddressMode, int noOfRangingMeasures, 69 UwbDlTDoAMeasurement[] uwbDlTDoAMeasurements, byte[] rawNtfData) { 70 this.mSeqCounter = seqCounter; 71 this.mSessionId = sessionId; 72 this.mRcrIndication = rcrIndication; 73 this.mCurrRangingInterval = currRangingInterval; 74 this.mRangingMeasuresType = rangingMeasuresType; 75 this.mHusPrimarySessionId = husPrimarySessionId; 76 this.mMacAddressMode = macAddressMode; 77 this.mNoOfRangingMeasures = noOfRangingMeasures; 78 this.mUwbDlTDoAMeasurements = uwbDlTDoAMeasurements; 79 this.mRawNtfData = rawNtfData; 80 } 81 getSequenceCounter()82 public long getSequenceCounter() { 83 return mSeqCounter; 84 } 85 getSessionId()86 public long getSessionId() { 87 return mSessionId; 88 } 89 getRcrIndication()90 public int getRcrIndication() { 91 return mRcrIndication; 92 } 93 getCurrRangingInterval()94 public long getCurrRangingInterval() { 95 return mCurrRangingInterval; 96 } 97 getRangingMeasuresType()98 public int getRangingMeasuresType() { 99 return mRangingMeasuresType; 100 } 101 getHusPrimarySessionId()102 public long getHusPrimarySessionId() { 103 return mHusPrimarySessionId; 104 } 105 getMacAddressMode()106 public int getMacAddressMode() { 107 return mMacAddressMode; 108 } 109 getNoOfRangingMeasures()110 public int getNoOfRangingMeasures() { 111 return mNoOfRangingMeasures; 112 } 113 getRangingTwoWayMeasures()114 public UwbTwoWayMeasurement[] getRangingTwoWayMeasures() { 115 return mRangingTwoWayMeasures; 116 } 117 getRawNtfData()118 public byte[] getRawNtfData() { 119 return mRawNtfData; 120 } 121 getRangingOwrAoaMeasure()122 public UwbOwrAoaMeasurement getRangingOwrAoaMeasure() { 123 return mRangingOwrAoaMeasure; 124 } 125 getUwbDlTDoAMeasurements()126 public UwbDlTDoAMeasurement[] getUwbDlTDoAMeasurements() { 127 return mUwbDlTDoAMeasurements; 128 } 129 toString()130 public String toString() { 131 if (mRangingMeasuresType == UwbUciConstants.RANGING_MEASUREMENT_TYPE_TWO_WAY) { 132 return "UwbRangingData { " 133 + " SeqCounter = " + mSeqCounter 134 + ", SessionId = " + mSessionId 135 + ", RcrIndication = " + mRcrIndication 136 + ", CurrRangingInterval = " + mCurrRangingInterval 137 + ", RangingMeasuresType = " + mRangingMeasuresType 138 + ", HusPrimarySessionId = " + mHusPrimarySessionId 139 + ", MacAddressMode = " + mMacAddressMode 140 + ", NoOfRangingMeasures = " + mNoOfRangingMeasures 141 + ", RangingTwoWayMeasures = " + Arrays.toString(mRangingTwoWayMeasures) 142 + ", RawNotificationData = " + Arrays.toString(mRawNtfData) 143 + '}'; 144 } else if (mRangingMeasuresType == UwbUciConstants.RANGING_MEASUREMENT_TYPE_OWR_AOA) { 145 return "UwbRangingData { " 146 + " SeqCounter = " + mSeqCounter 147 + ", SessionId = " + mSessionId 148 + ", RcrIndication = " + mRcrIndication 149 + ", CurrRangingInterval = " + mCurrRangingInterval 150 + ", RangingMeasuresType = " + mRangingMeasuresType 151 + ", HusPrimarySessionId = " + mHusPrimarySessionId 152 + ", MacAddressMode = " + mMacAddressMode 153 + ", NoOfRangingMeasures = " + mNoOfRangingMeasures 154 + ", RangingOwrAoaMeasure = " + mRangingOwrAoaMeasure.toString() 155 + ", RawNotificationData = " + Arrays.toString(mRawNtfData) 156 + '}'; 157 } else if (mRangingMeasuresType == UwbUciConstants.RANGING_MEASUREMENT_TYPE_DL_TDOA) { 158 return "UwbRangingData { " 159 + " SeqCounter = " + mSeqCounter 160 + ", SessionId = " + mSessionId 161 + ", RcrIndication = " + mRcrIndication 162 + ", CurrRangingInterval = " + mCurrRangingInterval 163 + ", RangingMeasuresType = " + mRangingMeasuresType 164 + ", HusPrimarySessionId = " + mHusPrimarySessionId 165 + ", MacAddressMode = " + mMacAddressMode 166 + ", NoOfRangingMeasures = " + mNoOfRangingMeasures 167 + ", RangingDlTDoAMeasure = " + Arrays.toString(mUwbDlTDoAMeasurements) 168 + ", RawNotificationData = " + Arrays.toString(mRawNtfData) 169 + '}'; 170 } else { 171 // TODO(jh0.jang) : ONE WAY RANGING(TDOA)? 172 return null; 173 } 174 } 175 } 176