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 17 package com.android.server.uwb.config; 18 19 import android.hardware.uwb.fira_android.UwbVendorCapabilityTlvTypes; 20 import android.hardware.uwb.fira_android.UwbVendorCapabilityTlvValues; 21 22 public class CapabilityParam { 23 /** 24 * CR 287 params Fira Version 1.0 25 */ 26 public static final int SUPPORTED_FIRA_PHY_VERSION_RANGE_VER_1_0 = 0x0; 27 public static final int SUPPORTED_FIRA_MAC_VERSION_RANGE_VER_1_0 = 0x1; 28 public static final int SUPPORTED_DEVICE_ROLES_VER_1_0 = 0x2; 29 public static final int SUPPORTED_RANGING_METHOD_VER_1_0 = 0x3; 30 public static final int SUPPORTED_STS_CONFIG_VER_1_0 = 0x4; 31 public static final int SUPPORTED_MULTI_NODE_MODES_VER_1_0 = 0x5; 32 public static final int SUPPORTED_RANGING_TIME_STRUCT_VER_1_0 = 0x6; 33 public static final int SUPPORTED_SCHEDULED_MODE_VER_1_0 = 0x7; 34 public static final int SUPPORTED_HOPPING_MODE_VER_1_0 = 0x8; 35 public static final int SUPPORTED_BLOCK_STRIDING_VER_1_0 = 0x9; 36 public static final int SUPPORTED_UWB_INITIATION_TIME_VER_1_0 = 0x0A; 37 public static final int SUPPORTED_CHANNELS_VER_1_0 = 0x0B; 38 public static final int SUPPORTED_RFRAME_CONFIG_VER_1_0 = 0x0C; 39 public static final int SUPPORTED_CC_CONSTRAINT_LENGTH_VER_1_0 = 0x0D; 40 public static final int SUPPORTED_BPRF_PARAMETER_SETS_VER_1_0 = 0x0E; 41 public static final int SUPPORTED_HPRF_PARAMETER_SETS_VER_1_0 = 0x0F; 42 public static final int SUPPORTED_AOA_VER_1_0 = 0x10; 43 public static final int SUPPORTED_EXTENDED_MAC_ADDRESS_VER_1_0 = 0x11; 44 public static final int SUPPORTED_MAX_MESSAGE_SIZE_VER_1_0 = 0x12; 45 public static final int SUPPORTED_MAX_DATA_PACKET_PAYLOAD_SIZE_VER_1_0 = 0x13; 46 47 /** 48 * CR 287 params Fira Version 2.0 49 */ 50 public static final int SUPPORTED_MAX_MESSAGE_SIZE_VER_2_0 = 0x0; 51 public static final int SUPPORTED_MAX_DATA_PACKET_PAYLOAD_SIZE_VER_2_0 = 0x1; 52 public static final int SUPPORTED_FIRA_PHY_VERSION_RANGE_VER_2_0 = 0x2; 53 public static final int SUPPORTED_FIRA_MAC_VERSION_RANGE_VER_2_0 = 0x3; 54 public static final int SUPPORTED_DEVICE_TYPE_VER_2_0 = 0x4; 55 public static final int SUPPORTED_DEVICE_ROLES_VER_2_0 = 0x5; 56 public static final int SUPPORTED_RANGING_METHOD_VER_2_0 = 0x6; 57 public static final int SUPPORTED_STS_CONFIG_VER_2_0 = 0x7; 58 public static final int SUPPORTED_MULTI_NODE_MODES_VER_2_0 = 0x8; 59 public static final int SUPPORTED_RANGING_TIME_STRUCT_VER_2_0 = 0x9; 60 public static final int SUPPORTED_SCHEDULED_MODE_VER_2_0 = 0x0A; 61 public static final int SUPPORTED_HOPPING_MODE_VER_2_0 = 0x0B; 62 public static final int SUPPORTED_BLOCK_STRIDING_VER_2_0 = 0x0C; 63 public static final int SUPPORTED_UWB_INITIATION_TIME_VER_2_0 = 0x0D; 64 public static final int SUPPORTED_CHANNELS_VER_2_0 = 0x0E; 65 public static final int SUPPORTED_RFRAME_CONFIG_VER_2_0 = 0x0F; 66 public static final int SUPPORTED_CC_CONSTRAINT_LENGTH_VER_2_0 = 0x10; 67 public static final int SUPPORTED_BPRF_PARAMETER_SETS_VER_2_0 = 0x11; 68 public static final int SUPPORTED_HPRF_PARAMETER_SETS_VER_2_0 = 0x12; 69 public static final int SUPPORTED_AOA_VER_2_0 = 0x13; 70 public static final int SUPPORTED_EXTENDED_MAC_ADDRESS_VER_2_0 = 0x14; 71 public static final int SUPPORTED_SUSPEND_RANGING_VER_2_0 = 0x15; 72 public static final int SUPPORTED_SESSION_KEY_LENGTH_VER_2_0 = 0x16; 73 public static final int SUPPORTED_DT_TAG_MAX_ACTIVE_RR_2_0 = 0x18; 74 75 /** 76 * CR 287 params common across versions 77 */ 78 public static final int SUPPORTED_AOA_RESULT_REQ_INTERLEAVING = 79 UwbVendorCapabilityTlvTypes.SUPPORTED_AOA_RESULT_REQ_ANTENNA_INTERLEAVING; 80 public static final int SUPPORTED_MIN_RANGING_INTERVAL_MS = 81 UwbVendorCapabilityTlvTypes.SUPPORTED_MIN_RANGING_INTERVAL_MS; 82 public static final int SUPPORTED_RANGE_DATA_NTF_CONFIG = 83 UwbVendorCapabilityTlvTypes.SUPPORTED_RANGE_DATA_NTF_CONFIG; 84 public static final int SUPPORTED_RSSI_REPORTING = 85 UwbVendorCapabilityTlvTypes.SUPPORTED_RSSI_REPORTING; 86 public static final int SUPPORTED_DIAGNOSTICS = 87 UwbVendorCapabilityTlvTypes.SUPPORTED_DIAGNOSTICS; 88 public static final int SUPPORTED_MIN_SLOT_DURATION_RSTU = 89 UwbVendorCapabilityTlvTypes.SUPPORTED_MIN_SLOT_DURATION_RSTU; 90 public static final int SUPPORTED_MAX_RANGING_SESSION_NUMBER = 91 UwbVendorCapabilityTlvTypes.SUPPORTED_MAX_RANGING_SESSION_NUMBER; 92 93 // CCC specific 94 public static final int CCC_SUPPORTED_VERSIONS = 95 UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_VERSIONS; 96 public static final int CCC_SUPPORTED_UWB_CONFIGS = 97 UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_UWB_CONFIGS; 98 public static final int CCC_SUPPORTED_PULSE_SHAPE_COMBOS = 99 UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_PULSE_SHAPE_COMBOS; 100 public static final int CCC_SUPPORTED_RAN_MULTIPLIER = 101 UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_RAN_MULTIPLIER; 102 public static final int CCC_SUPPORTED_MAX_RANGING_SESSION_NUMBER = 103 UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_MAX_RANGING_SESSION_NUMBER; 104 public static final int CCC_SUPPORTED_CHAPS_PER_SLOT = 105 UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_CHAPS_PER_SLOT; 106 public static final int CCC_SUPPORTED_SYNC_CODES = 107 UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_SYNC_CODES; 108 public static final int CCC_SUPPORTED_CHANNELS = 109 UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_CHANNELS; 110 public static final int CCC_SUPPORTED_HOPPING_CONFIG_MODES_AND_SEQUENCES = 111 UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_HOPPING_CONFIG_MODES_AND_SEQUENCES; 112 public static final int CCC_SUPPORTED_MIN_UWB_INITIATION_TIME_MS = 113 UwbVendorCapabilityTlvTypes.CCC_SUPPORTED_MIN_UWB_INITIATION_TIME_MS; 114 115 public static final int RESPONDER = 0x01; 116 public static final int INITIATOR = 0x02; 117 public static final int UT_SYNCHRONIZATION_ANCHOR = 0X04; 118 public static final int UT_ANCHOR = 0X08; 119 public static final int UT_TAG = 0X10; 120 public static final int ADVERTISER = 0X20; 121 public static final int OBSERVER = 0X40; 122 public static final int DT_ANCHOR = 0X80; 123 public static final int DT_TAG = 0X01; // First bit of 2nd byte of Device Role 124 125 public static final int OWR_UL_TDOA = 0x01; 126 public static final int SS_TWR_DEFERRED = 0x02; 127 public static final int DS_TWR_DEFERRED = 0x04; 128 public static final int SS_TWR_NON_DEFERRED = 0x08; 129 public static final int DS_TWR_NON_DEFERRED = 0x10; 130 public static final int OWR_DL_TDOA = 0x20; 131 public static final int OWR_AOA = 0x40; 132 public static final int ESS_TWR_NON_DEFERRED = 0x80; 133 public static final int ADS_TWR = 0x01; // First bit of 2nd byte of Ranging Method 134 135 public static final int STATIC_STS = 0x1; 136 public static final int DYNAMIC_STS = 0x2; 137 public static final int DYNAMIC_STS_RESPONDER_SPECIFIC_SUBSESSION_KEY = 0x4; 138 public static final int PROVISIONED_STS = 0x8; 139 public static final int PROVISIONED_STS_RESPONDER_SPECIFIC_SUBSESSION_KEY = 0x10; 140 141 public static final int UNICAST = 0x1; 142 public static final int ONE_TO_MANY = 0x2; 143 public static final int MANY_TO_MANY = 0x4; 144 145 public static final int INTERVAL_BASED_SCHEDULING = 0x1; 146 public static final int BLOCK_BASED_SCHEDULING = 0x2; 147 148 public static final int CONTENTION_BASED_RANGING = 0x1; 149 public static final int TIME_SCHEDULED_RANGING = 0x2; 150 151 public static final int CONSTRAINT_LENGTH_3 = 0x1; 152 public static final int CONSTRAINT_LENGTH_7 = 0x2; 153 154 public static final int NO_BLOCK_STRIDING = 0x0; 155 public static final int BLOCK_STRIDING = 0x1; 156 157 public static final int NO_HOPPING_MODE = 0x0; 158 public static final int HOPPING_MODE = 0x1; 159 160 public static final int NO_EXTENDED_MAC_ADDRESS = 0x0; 161 public static final int EXTENDED_MAC_ADDRESS = 0x1; 162 163 public static final int NO_UWB_INITIATION_TIME = 0x0; 164 public static final int UWB_INITIATION_TIME = 0x1; 165 166 public static final int CHANNEL_5 = 0x1; 167 public static final int CHANNEL_6 = 0x2; 168 public static final int CHANNEL_8 = 0x4; 169 public static final int CHANNEL_9 = 0x8; 170 public static final int CHANNEL_10 = 0x10; 171 public static final int CHANNEL_12 = 0x20; 172 public static final int CHANNEL_13 = 0x40; 173 public static final int CHANNEL_14 = 0x80; 174 175 public static final int SP0 = 0x1; 176 public static final int SP1 = 0x2; 177 public static final int SP2 = 0x4; 178 public static final int SP3 = 0x8; 179 180 public static final int CC_CONSTRAINT_LENGTH_K3 = 0x1; 181 public static final int CC_CONSTRAINT_LENGTH_K7 = 0x2; 182 183 public static final int AOA_AZIMUTH_90 = 0x1; 184 public static final int AOA_AZIMUTH_180 = 0x2; 185 public static final int AOA_ELEVATION = 0x4; 186 public static final int AOA_FOM = 0x8; 187 188 public static final int NO_EXTENDED_MAC = 0x0; 189 public static final int EXTENDED_MAC = 0x1; 190 191 public static final int NO_AOA_RESULT_REQ_INTERLEAVING = 0x0; 192 public static final int AOA_RESULT_REQ_INTERLEAVING = 0x1; 193 194 public static final int NO_RSSI_REPORTING = 0x0; 195 public static final int RSSI_REPORTING = 0x1; 196 197 public static final int NO_DIAGNOSTICS = 0x0; 198 public static final int DIAGNOSTICS = 0x1; 199 200 public static final int CCC_CHANNEL_5 = (int) UwbVendorCapabilityTlvValues.CCC_CHANNEL_5; 201 public static final int CCC_CHANNEL_9 = (int) UwbVendorCapabilityTlvValues.CCC_CHANNEL_9; 202 203 public static final int CCC_CHAPS_PER_SLOT_3 = 204 (int) UwbVendorCapabilityTlvValues.CHAPS_PER_SLOT_3; 205 public static final int CCC_CHAPS_PER_SLOT_4 = 206 (int) UwbVendorCapabilityTlvValues.CHAPS_PER_SLOT_4; 207 public static final int CCC_CHAPS_PER_SLOT_6 = 208 (int) UwbVendorCapabilityTlvValues.CHAPS_PER_SLOT_6; 209 public static final int CCC_CHAPS_PER_SLOT_8 = 210 (int) UwbVendorCapabilityTlvValues.CHAPS_PER_SLOT_8; 211 public static final int CCC_CHAPS_PER_SLOT_9 = 212 (int) UwbVendorCapabilityTlvValues.CHAPS_PER_SLOT_9; 213 public static final int CCC_CHAPS_PER_SLOT_12 = 214 (int) UwbVendorCapabilityTlvValues.CHAPS_PER_SLOT_12; 215 public static final int CCC_CHAPS_PER_SLOT_24 = 216 (int) UwbVendorCapabilityTlvValues.CHAPS_PER_SLOT_24; 217 218 public static final int CCC_HOPPING_CONFIG_MODE_NONE = 219 (int) UwbVendorCapabilityTlvValues.HOPPING_CONFIG_MODE_NONE; 220 public static final int CCC_HOPPING_CONFIG_MODE_CONTINUOUS = 221 (int) UwbVendorCapabilityTlvValues.HOPPING_CONFIG_MODE_CONTINUOUS; 222 public static final int CCC_HOPPING_CONFIG_MODE_ADAPTIVE = 223 (int) UwbVendorCapabilityTlvValues.HOPPING_CONFIG_MODE_ADAPTIVE; 224 225 public static final int CCC_HOPPING_SEQUENCE_AES = 226 (int) UwbVendorCapabilityTlvValues.HOPPING_SEQUENCE_AES; 227 public static final int CCC_HOPPING_SEQUENCE_DEFAULT = 228 (int) UwbVendorCapabilityTlvValues.HOPPING_SEQUENCE_DEFAULT; 229 230 public static final int SUPPORTED_POWER_STATS_QUERY = 231 UwbVendorCapabilityTlvTypes.SUPPORTED_POWER_STATS_QUERY; 232 233 public static final int RANGE_DATA_NTF_CONFIG_ENABLE = 1 << 0; 234 public static final int RANGE_DATA_NTF_CONFIG_DISABLE = 1 << 1; 235 public static final int RANGE_DATA_NTF_CONFIG_ENABLE_PROXIMITY_LEVEL_TRIG = 1 << 2; 236 public static final int RANGE_DATA_NTF_CONFIG_ENABLE_AOA_LEVEL_TRIG = 1 << 3; 237 public static final int RANGE_DATA_NTF_CONFIG_ENABLE_PROXIMITY_AOA_LEVEL_TRIG = 1 << 4; 238 public static final int RANGE_DATA_NTF_CONFIG_ENABLE_PROXIMITY_EDGE_TRIG = 1 << 5; 239 public static final int RANGE_DATA_NTF_CONFIG_ENABLE_AOA_EDGE_TRIG = 1 << 6; 240 public static final int RANGE_DATA_NTF_CONFIG_ENABLE_PROXIMITY_AOA_EDGE_TRIG = 1 << 7; 241 } 242