• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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