1// Copyright 2022, The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15// This file defines the requests and responses of the UwbService's methods. 16// Most of the elements are referred to the FiRa Consortium UWB Command 17// Interface Generic Techinal Specification Version 1.1.0. 18// 19// Note: Due to the protobuf's restriction: the first field of enum must be 20// zero, the value of some enum fields are not the same as the UCI 21// specification. Also, the default value of some fields defined at UCI 22// specification is not zero. The client should set all the fields when creating 23// protobuf structure, instead of relying the default value of protobuf. 24 25syntax = "proto3"; 26package uwb_core; 27 28// The status code of the method response, containing variants of error::Error 29// and OK. 30enum Status { 31 // The method is executed successfully. 32 OK = 0; 33 34 // The provided parameters are invalid, or the method is not allowed to be 35 // called in the current state. 36 BAD_PARAMETERS = 1; 37 38 // The maximum number of sessions has been reached. 39 MAX_SESSIONS_EXCEEDED = 2; 40 41 // Max ranging round retries reached. 42 MAX_RR_RETRY_REACHED = 3; 43 44 // Fails due to a protocol specific reason. 45 PROTOCOL_SPECIFIC = 4; 46 47 // The remote device has requested to change the session. 48 REMOTE_REQUEST = 5; 49 50 // The response or notification is not received in timeout. 51 TIMEOUT = 6; 52 53 // The command should be retried. 54 COMMAND_RETRY = 7; 55 56 // Duplicated SessionId. 57 DUPLICATED_SESSION_ID = 8; 58 59 // The unknown error. 60 UNKNOWN = 9; 61} 62 63// Represent uwb_uci_packets::StatusCode. 64enum StatusCode { 65 UCI_STATUS_OK = 0; 66 UCI_STATUS_REJECTED = 1; 67 UCI_STATUS_FAILED = 2; 68 UCI_STATUS_SYNTAX_ERROR = 3; 69 UCI_STATUS_INVALID_PARAM = 4; 70 UCI_STATUS_INVALID_RANGE = 5; 71 UCI_STATUS_INVALID_MSG_SIZE = 6; 72 UCI_STATUS_UNKNOWN_GID = 7; 73 UCI_STATUS_UNKNOWN_OID = 8; 74 UCI_STATUS_READ_ONLY = 9; 75 UCI_STATUS_COMMAND_RETRY = 10; 76 77 UCI_STATUS_SESSION_NOT_EXIST = 17; 78 UCI_STATUS_SESSION_DUPLICATE = 18; 79 UCI_STATUS_SESSION_ACTIVE = 19; 80 UCI_STATUS_MAX_SESSIONS_EXCEEDED = 20; 81 UCI_STATUS_SESSION_NOT_CONFIGURED = 21; 82 UCI_STATUS_ACTIVE_SESSIONS_ONGOING = 22; 83 UCI_STATUS_MULTICAST_LIST_FULL = 23; 84 UCI_STATUS_ADDRESS_NOT_FOUND = 24; 85 UCI_STATUS_ADDRESS_ALREADY_PRESENT = 25; 86 UCI_STATUS_OK_NEGATIVE_DISTANCE_REPORT = 27; 87 88 UCI_STATUS_RANGING_TX_FAILED = 32; 89 UCI_STATUS_RANGING_RX_TIMEOUT = 33; 90 UCI_STATUS_RANGING_RX_PHY_DEC_FAILED = 34; 91 UCI_STATUS_RANGING_RX_PHY_TOA_FAILED = 35; 92 UCI_STATUS_RANGING_RX_PHY_STS_FAILED = 36; 93 UCI_STATUS_RANGING_RX_MAC_DEC_FAILED = 37; 94 UCI_STATUS_RANGING_RX_MAC_IE_DEC_FAILED = 38; 95 UCI_STATUS_RANGING_RX_MAC_IE_MISSING = 39; 96 UCI_STATUS_ERROR_ROUND_INDEX_NOT_ACTIVATED = 40; 97 UCI_STATUS_ERROR_NUMBER_OF_ACTIVE_RANGING_ROUNDS_EXCEEDED = 41; 98 UCI_STATUS_ERROR_DL_TDOA_DEVICE_ADDRESS_NOT_MATCHING_IN_REPLY_TIME_LIST = 42; 99 100 UCI_STATUS_DATA_MAX_TX_PSDU_SIZE_EXCEEDED = 48; 101 UCI_STATUS_DATA_RX_CRC_ERROR = 49; 102 103 UCI_STATUS_ERROR_CCC_SE_BUSY = 80; 104 UCI_STATUS_ERROR_CCC_LIFECYCLE = 81; 105 UCI_STATUS_ERROR_STOPPED_DUE_TO_OTHER_SESSION_CONFLICT = 82; 106 // All vendor specific status code will be mapped to UCI_STATUS_VENDOR_SPECIFIC. 107 UCI_STATUS_RFU_OR_VENDOR_SPECIFIC = 255; 108} 109 110// Represent uwb_uci_packets::DeviceState. 111enum DeviceState { 112 DEVICE_STATE_READY = 0; 113 DEVICE_STATE_ACTIVE = 1; 114 DEVICE_STATE_ERROR = 2; 115} 116 117// Represent uwb_uci_packets::SessionState. 118enum SessionState { 119 INIT = 0; 120 DEINIT = 1; 121 ACTIVE = 2; 122 IDLE = 3; 123} 124 125// Represent uwb_uci_packets::ReasonCode. 126enum ReasonCode { 127 STATE_CHANGE_WITH_SESSION_MANAGEMENT_COMMANDS = 0; 128 MAX_RANGING_ROUND_RETRY_COUNT_REACHED = 1; 129 MAX_NUMBER_OF_MEASUREMENTS_REACHED = 2; 130 SESSION_SUSPENDED_DUE_TO_INBAND_SIGNAL = 3; 131 SESSION_RESUMED_DUE_TO_INBAND_SIGNAL = 4; 132 SESSION_STOPPED_DUE_TO_INBAND_SIGNAL = 5; 133 ERROR_INVALID_UL_TDOA_RANDOM_WINDOW = 29; 134 ERROR_MIN_RFRAMES_PER_RR_NOT_SUPPORTED = 30; 135 ERROR_TX_DELAY_NOT_SUPPORTED = 31; 136 ERROR_SLOT_LENGTH_NOT_SUPPORTED = 32; 137 ERROR_INSUFFICIENT_SLOTS_PER_RR = 33; 138 ERROR_MAC_ADDRESS_MODE_NOT_SUPPORTED = 34; 139 ERROR_INVALID_RANGING_DURATION = 35; 140 ERROR_INVALID_STS_CONFIG = 36; 141 ERROR_INVALID_RFRAME_CONFIG = 37; 142 ERROR_HUS_NOT_ENOUGH_SLOTS = 38; 143 ERROR_HUS_CFP_PHASE_TOO_SHORT = 39; 144 ERROR_HUS_CAP_PHASE_TOO_SHORT = 40; 145 ERROR_HUS_OTHERS = 41; 146 ERROR_STATUS_SESSION_KEY_NOT_FOUND = 42; 147 ERROR_STATUS_SUB_SESSION_KEY_NOT_FOUND = 43; 148 ERROR_INVALID_PREAMBLE_CODE_INDEX = 44; 149 ERROR_INVALID_SFD_ID = 45; 150 ERROR_INVALID_PSDU_DATA_RATE = 46; 151 ERROR_INVALID_PHR_DATA_RATE = 47; 152 ERROR_INVALID_PREAMBLE_DURATION = 48; 153 ERROR_INVALID_STS_LENGTH = 49; 154 ERROR_INVALID_NUM_OF_STS_SEGMENTS = 50; 155 ERROR_INVALID_NUM_OF_CONTROLEES = 51; 156 ERROR_MAX_RANGING_REPLY_TIME_EXCEEDED = 52; 157 ERROR_INVALID_DST_ADDRESS_LIST = 53; 158 ERROR_INVALID_OR_NOT_FOUND_SUB_SESSION_ID = 54; 159 ERROR_INVALID_RESULT_REPORT_CONFIG = 55; 160 ERROR_INVALID_RANGING_ROUND_CONTROL_CONFIG = 56; 161 ERROR_INVALID_RANGING_ROUND_USAGE = 57; 162 ERROR_INVALID_MULTI_NODE_MODE = 58; 163 ERROR_RDS_FETCH_FAILURE = 59; 164 ERROR_REF_UWB_SESSION_DOES_NOT_EXIST = 60; 165 ERROR_REF_UWB_SESSION_RANGING_DURATION_MISMATCH = 61; 166 ERROR_REF_UWB_SESSION_INVALID_OFFSET_TIME = 62; 167 ERROR_REF_UWB_SESSION_LOST = 63; 168 ERROR_INVALID_CHANNEL_WITH_AOA = 128; 169 ERROR_STOPPED_DUE_TO_OTHER_SESSION_CONFLICT = 129; 170 ERROR_DT_ANCHOR_RANGING_ROUNDS_NOT_CONFIGURED = 130; 171 ERROR_DT_TAG_RANGING_ROUNDS_NOT_CONFIGURED = 131; 172 // All vendor reason code will be mapped to ERROR_VENDOR_SPECIFIC. 173 ERROR_RFU_OR_VENDOR_SPECIFIC = 255; 174} 175 176// Represent uwb_uci_packets::RangingMeasurementType. 177enum RangingMeasurementType { 178 ONE_WAY = 0; 179 TWO_WAY = 1; 180 DL_TDOA = 2; 181 OWR_AOA = 3; 182} 183 184// Represent uwb_uci_packets::SessionType. 185enum SessionType { 186 FIRA_RANGING_SESSION = 0; 187 FIRA_DATA_TRANSFER = 1; 188 CCC = 2; 189 DEVICE_TEST_MODE = 3; 190} 191 192// Represent uwb_uci_packets::UpdateMulticastListAction. 193enum UpdateMulticastListAction { 194 ADD_CONTROLEE = 0; 195 REMOVE_CONTROLEE = 1; 196 ADD_CONTROLEE_WITH_SHORT_SUB_SESSION_KEY = 2; 197 ADD_CONTROLEE_WITH_LONG_SUB_SESSION_KEY = 3; 198} 199 200// Represent uwb_core::params::fira_app_config_params::DeviceType. 201enum DeviceType { 202 CONTROLEE = 0; 203 CONTROLLER = 1; 204} 205 206// Represent uwb_core::params::fira_app_config_params::RangingRoundUsage. 207enum RangingRoundUsage { 208 SS_TWR = 0; 209 DS_TWR = 1; 210 SS_TWR_NON = 2; 211 DS_TWR_NON = 3; 212} 213 214// Represent uwb_core::params::fira_app_config_params::StsConfig. 215enum StsConfig { 216 STATIC = 0; 217 DYNAMIC = 1; 218 DYNAMIC_FOR_CONTROLEE_INDIVIDUAL_KEY = 2; 219} 220 221// Represent uwb_core::params::fira_app_config_params::MultiNodeMode. 222enum MultiNodeMode { 223 UNICAST = 0; 224 ONE_TO_MANY = 1; 225 MANY_TO_MANY = 2; 226} 227 228// Represent uwb_core::params::fira_app_config_params::UwbChannel. 229enum UwbChannel { 230 CHANNEL_5 = 0; 231 CHANNEL_6 = 1; 232 CHANNEL_8 = 2; 233 CHANNEL_9 = 3; 234 CHANNEL_10 = 4; 235 CHANNEL_12 = 5; 236 CHANNEL_13 = 6; 237 CHANNEL_14 = 7; 238} 239 240// Represent uwb_core::params::fira_app_config_params::MacFcsType. 241enum MacFcsType { 242 CRC_16 = 0; 243 CRC_32 = 1; 244} 245 246// Represent uwb_core::params::fira_app_config_params::AoaResultRequest. 247enum AoaResultRequest { 248 NO_AOA_REPORT = 0; 249 REQ_AOA_RESULTS = 1; 250 REQ_AOA_RESULTS_AZIMUTH_ONLY = 2; 251 REQ_AOA_RESULTS_ELEVATION_ONLY = 3; 252 REQ_AOA_RESULTS_INTERLEAVED = 4; 253} 254 255// Represent uwb_core::params::fira_app_config_params::RangeDataNtfConfig. 256enum RangeDataNtfConfig { 257 RANGE_DATA_NTF_CONFIG_DISABLE = 0; 258 RANGE_DATA_NTF_CONFIG_ENABLE = 1; 259 RANGE_DATA_NTF_CONFIG_ENABLE_PROXIMITY = 2; 260} 261 262// Represent uwb_core::params::fira_app_config_params::DeviceRole. 263enum DeviceRole { 264 RESPONDER = 0; 265 INITIATOR = 1; 266} 267 268// Represent uwb_core::params::fira_app_config_params::RframeConfig. 269enum RframeConfig { 270 SP0 = 0; 271 SP1 = 1; 272 SP3 = 3; 273} 274 275// Represent uwb_core::params::fira_app_config_params::PsduDataRate. 276enum PsduDataRate { 277 RATE_6M_81 = 0; 278 RATE_7M_80 = 1; 279 RATE_27M_2 = 2; 280 RATE_31M_2 = 3; 281 RATE_850K = 4; 282} 283 284// Represent uwb_core::params::fira_app_config_params::PreambleDuration. 285enum PreambleDuration { 286 T32_SYMBOLS = 0; 287 T64_SYMBOLS = 1; 288} 289 290// Represent uwb_core::params::fira_app_config_params::RangingTimeStruct. 291enum RangingTimeStruct { 292 INTERVAL_BASED_SCHEDULING = 0; 293 BLOCK_BASED_SCHEDULING = 1; 294} 295 296// Represent uwb_core::params::fira_app_config_params::TxAdaptivePayloadPower. 297enum TxAdaptivePayloadPower { 298 TX_ADAPTIVE_PAYLOAD_POWER_DISABLE = 0; 299 TX_ADAPTIVE_PAYLOAD_POWER_ENABLE = 1; 300} 301 302// Represent uwb_core::params::fira_app_config_params::PrfMode. 303enum PrfMode { 304 BPRF = 0; 305 HPRF_WITH_124_8_MHZ = 1; 306 HPRF_WITH_249_6_MHZ = 2; 307} 308 309// Represent uwb_core::params::fira_app_config_params::ScheduledMode. 310enum ScheduledMode { 311 TIME_SCHEDULED_RANGING = 0; 312} 313 314// Represent uwb_core::params::fira_app_config_params::KeyRotation. 315enum KeyRotation { 316 KEY_ROTATION_DISABLE = 0; 317 KEY_ROTATION_ENABLE = 1; 318} 319 320// Represent uwb_core::params::fira_app_config_params::MacAddressMode. 321enum MacAddressMode { 322 MAC_ADDRESS_2_BYTES = 0; 323 MAC_ADDRESS_8_BYTES_2_BYTES_HEADER = 1; 324 MAC_ADDRESS_8_BYTES = 2; 325} 326 327// Represent uwb_core::params::fira_app_config_params::HoppingMode. 328enum HoppingMode { 329 HOPPING_MODE_DISABLE = 0; 330 FIRA_HOPPING_ENABLE = 1; 331} 332 333// Represent uwb_core::params::fira_app_config_params::BprfPhrDataRate. 334enum BprfPhrDataRate { 335 BPRF_PHR_DATA_RATE_850K = 0; 336 BPRF_PHR_DATA_RATE_6M_81 = 1; 337} 338 339// Represent uwb_core::params::fira_app_config_params::StsLength. 340enum StsLength { 341 LENGTH_32 = 0; 342 LENGTH_64 = 1; 343 LENGTH_128 = 2; 344} 345 346// Represent uwb_core::uci::uci_logger::UciLoggerMode. 347enum UciLoggerMode { 348 UCI_LOGGER_MODE_DISABLED = 0; 349 UCI_LOGGER_MODE_UNFILTERED = 1; 350 UCI_LOGGER_MODE_FILTERED = 2; 351} 352 353// Represent uwb_core::params::fira_app_config_params::RangingRoundControl. 354message RangingRoundControl { 355 bool ranging_result_report_message = 1; 356 bool control_message = 2; 357 bool measurement_report_message = 3; 358} 359 360// Represent uwb_core::params::fira_app_config_params::ResultReportConfig. 361message ResultReportConfig { 362 bool tof = 1; 363 bool aoa_azimuth = 2; 364 bool aoa_elevation = 3; 365 bool aoa_fom = 4; 366} 367 368// Represent uwb_core::params::fira_app_config_params::FiraAppConfigParams. 369message FiraAppConfigParams { 370 DeviceType device_type = 1; 371 RangingRoundUsage ranging_round_usage = 2; 372 StsConfig sts_config = 3; 373 MultiNodeMode multi_node_mode = 4; 374 UwbChannel channel_number = 5; 375 bytes device_mac_address = 6; 376 repeated bytes dst_mac_address = 7; 377 uint32 slot_duration_rstu = 8; 378 uint32 ranging_interval_ms = 9; 379 MacFcsType mac_fcs_type = 10; 380 RangingRoundControl ranging_round_control = 11; 381 AoaResultRequest aoa_result_request = 12; 382 RangeDataNtfConfig range_data_ntf_config = 13; 383 uint32 range_data_ntf_proximity_near_cm = 14; 384 uint32 range_data_ntf_proximity_far_cm = 15; 385 DeviceRole device_role = 16; 386 RframeConfig rframe_config = 17; 387 uint32 preamble_code_index = 18; 388 uint32 sfd_id = 19; 389 PsduDataRate psdu_data_rate = 20; 390 PreambleDuration preamble_duration = 21; 391 RangingTimeStruct ranging_time_struct = 22; 392 uint32 slots_per_rr = 23; 393 TxAdaptivePayloadPower tx_adaptive_payload_power = 24; 394 uint32 responder_slot_index = 25; 395 PrfMode prf_mode = 26; 396 ScheduledMode scheduled_mode = 27; 397 KeyRotation key_rotation = 28; 398 uint32 key_rotation_rate = 29; 399 uint32 session_priority = 30; 400 MacAddressMode mac_address_mode = 31; 401 bytes vendor_id = 32; 402 bytes static_sts_iv = 33; 403 uint32 number_of_sts_segments = 34; 404 uint32 max_rr_retry = 35; 405 uint32 uwb_initiation_time_ms = 36; 406 HoppingMode hopping_mode = 37; 407 uint32 block_stride_length = 38; 408 ResultReportConfig result_report_config = 39; 409 uint32 in_band_termination_attempt_count = 40; 410 uint32 sub_session_id = 41; 411 BprfPhrDataRate bprf_phr_data_rate = 42; 412 uint32 max_number_of_measurements = 43; 413 StsLength sts_length = 44; 414 uint32 number_of_range_measurements = 45; 415 uint32 number_of_aoa_azimuth_measurements = 46; 416 uint32 number_of_aoa_elevation_measurements = 47; 417} 418 419// Represent uwb_uci_packets::Controlee. 420message Controlee { 421 uint32 short_address = 1; 422 uint32 subsession_id = 2; 423} 424 425// Represent uwb_uci_packets::ShortAddressTwoWayRangingMeasurement or 426// uwb_uci_packets::ExtendedAddressTwoWayRangingMeasurement. 427message TwoWayRangingMeasurement { 428 uint64 mac_address = 1; 429 StatusCode status = 2; 430 uint32 nlos = 3; 431 uint32 distance = 4; 432 uint32 aoa_azimuth = 5; 433 uint32 aoa_azimuth_fom = 6; 434 uint32 aoa_elevation = 7; 435 uint32 aoa_elevation_fom = 8; 436 uint32 aoa_destination_azimuth = 9; 437 uint32 aoa_destination_azimuth_fom = 10; 438 uint32 aoa_destination_elevation = 11; 439 uint32 aoa_destination_elevation_fom = 12; 440 uint32 slot_index = 13; 441 uint32 rssi = 14; 442} 443 444// Represent uwb_uci_packets::ShortAddressOwrAoaRangingMeasurement or 445// uwb_uci_packets::ExtendedAddressOwrAoaRangingMeasurement. 446message OwrAoaRangingMeasurement { 447 uint64 mac_address = 1; 448 StatusCode status = 2; 449 uint32 nlos = 3; 450 uint32 block_index = 4; 451 uint32 frame_sequence_number = 5; 452 uint32 aoa_azimuth = 6; 453 uint32 aoa_azimuth_fom = 7; 454 uint32 aoa_elevation = 8; 455 uint32 aoa_elevation_fom = 9; 456} 457 458// Represent uwb_uci_packets::ShortAddressDlTdoaRangingMeasurement or 459// uwb_uci_packets::ExtendedAddressDlTdoaRangingMeasurement. 460message DlTDoARangingMeasurement { 461 uint64 mac_address = 1; 462 StatusCode status = 2; 463 uint32 message_control = 3; 464 uint32 block_index = 4; 465 uint32 round_index = 5; 466 uint32 nlos = 6; 467 uint32 aoa_azimuth = 7; 468 uint32 aoa_azimuth_fom = 8; 469 uint32 aoa_elevation = 9; 470 uint32 aoa_elevation_fom = 10; 471 uint32 rssi = 11; 472 uint64 tx_timestamp = 12; 473 uint64 rx_timestamp = 13; 474 uint32 anchor_cfo = 14; 475 uint32 cfo = 15; 476 uint32 initiator_reply_time = 16; 477 uint32 responder_reply_time = 17; 478 uint32 initiator_responder_tof = 18; 479 repeated uint32 dt_anchor_location = 19; 480 repeated uint32 ranging_rounds = 20; 481} 482 483// Represent uwb_core::uci::notification::SessionRangeData; 484message SessionRangeData { 485 uint32 sequence_number = 1; 486 uint32 session_id = 2; 487 uint32 current_ranging_interval_ms = 3; 488 RangingMeasurementType ranging_measurement_type = 4; 489 repeated TwoWayRangingMeasurement twoway_ranging_measurements = 5; 490 repeated DlTDoARangingMeasurement dltdoa_ranging_measurements = 6; 491 OwrAoaRangingMeasurement owraoa_ranging_measurement = 7; 492} 493 494// Represent uwb_uci_packets::PowerStats; 495message PowerStats { 496 StatusCode status = 1; 497 uint32 idle_time_ms = 2; 498 uint32 tx_time_ms = 3; 499 uint32 rx_time_ms = 4; 500 uint32 total_wake_count = 5; 501} 502 503// Response of the UwbService::enable() method. 504message EnableResponse { 505 Status status = 1; 506} 507 508// Response of the UwbService::disable() method. 509message DisableResponse { 510 Status status = 1; 511} 512 513// Argument of the UwbService::SetLoggerMode() method. 514message SetLoggerModeRequest { 515 UciLoggerMode logger_mode = 1; 516} 517 518// Response of the UwbService::SetLoggerMode() method. 519message SetLoggerModeResponse { 520 Status status = 1; 521} 522 523// Argument of the UwbService::InitSession() method. 524message InitSessionRequest { 525 uint32 session_id = 1; 526 SessionType session_type = 2; 527 FiraAppConfigParams params = 3; 528} 529 530// Response of the UwbService::InitSession() method. 531message InitSessionResponse { 532 Status status = 1; 533} 534 535// Argument of the UwbService::DeinitSession() method. 536message DeinitSessionRequest { 537 uint32 session_id = 1; 538} 539 540// Response of the UwbService::DeinitSession() method. 541message DeinitSessionResponse { 542 Status status = 1; 543} 544 545// Argument of the UwbService::StartRanging() method. 546message StartRangingRequest { 547 uint32 session_id = 1; 548} 549 550// Response of the UwbService::StartRanging() method. 551message StartRangingResponse { 552 Status status = 1; 553} 554 555// Argument of the UwbService::StopRanging() method. 556message StopRangingRequest { 557 uint32 session_id = 1; 558} 559 560// Response of the UwbService::StopRanging() method. 561message StopRangingResponse { 562 Status status = 1; 563} 564 565// Argument of the UwbService::SessionParams() method. 566message SessionParamsRequest { 567 uint32 session_id = 1; 568} 569 570// Response of the UwbService::SessionParams() method. 571message SessionParamsResponse { 572 Status status = 1; 573 FiraAppConfigParams params = 2; 574} 575 576// Argument of the UwbService::Reconfigure() method. 577message ReconfigureRequest { 578 uint32 session_id = 1; 579 FiraAppConfigParams params = 2; 580} 581 582// Response of the UwbService::Reconfigure() method. 583message ReconfigureResponse { 584 Status status = 1; 585} 586 587// Argument of the UwbService::UpdateControllerMulticastList() method. 588message UpdateControllerMulticastListRequest { 589 uint32 session_id = 1; 590 UpdateMulticastListAction action = 2; 591 repeated Controlee controlees = 3; 592} 593 594// Response of the UwbService::UpdateControllerMulticastList() method. 595message UpdateControllerMulticastListResponse { 596 Status status = 1; 597} 598 599// Argument of the UwbService::AndroidSetCountryCode() method. 600message AndroidSetCountryCodeRequest { 601 string country_code = 1; 602} 603 604// Response of the UwbService::AndroidSetCountryCode() method. 605message AndroidSetCountryCodeResponse { 606 Status status = 1; 607} 608 609// Response of the UwbService::AndroidGetPowerStats() method. 610message AndroidGetPowerStatsResponse { 611 Status status = 1; 612 PowerStats power_stats = 2; 613} 614 615// Argument of the UwbService::SendVendorCmd() method. 616message SendVendorCmdRequest { 617 uint32 gid = 1; 618 uint32 oid = 2; 619 bytes payload = 3; 620 uint32 mt = 4; 621} 622 623// Response of the UwbService::SendVendorCmd() method. 624message SendVendorCmdResponse { 625 Status status = 1; 626 uint32 gid = 2; 627 uint32 oid = 3; 628 bytes payload = 4; 629} 630 631// Argument of the UwbServiceCallback::onServiceReset() method. 632message ServiceResetSignal { 633 bool success = 1; 634} 635 636// Argument of the UwbServiceCallback::onUciDeviceStatusChanged() method. 637message UciDeviceStatusChangedSignal { 638 DeviceState state = 1; 639} 640 641// Argument of the UwbServiceCallback::onSessionStateChanged() method. 642message SessionStateChangedSignal { 643 uint32 session_id = 1; 644 SessionState session_state = 2; 645 ReasonCode reason_code = 3; 646} 647 648// Argument of the UwbServiceCallback::onRangeDataReceived() method. 649message RangeDataReceivedSignal { 650 uint32 session_id = 1; 651 SessionRangeData range_data = 2; 652} 653 654// Argument of the UwbServiceCallback::onVendorNotificationReceived() method. 655message VendorNotificationReceivedSignal { 656 uint32 gid = 1; 657 uint32 oid = 2; 658 bytes payload = 3; 659} 660