| syntax = "proto3"; |
| |
| package bluetooth.neighbor; |
| |
| import "google/protobuf/empty.proto"; |
| |
| service NeighborFacade { |
| rpc SetConnectability(EnableMsg) returns (google.protobuf.Empty) {} |
| rpc SetDiscoverability(DiscoverabilitiyMsg) returns (google.protobuf.Empty) {} |
| rpc SetInquiryMode(InquiryMsg) returns (stream InquiryResultMsg) { |
| // Sets inquiry mode and fetches inquiry result HCI packet |
| } |
| rpc ReadRemoteName(RemoteNameRequestMsg) returns (google.protobuf.Empty) {} |
| rpc GetRemoteNameEvents(google.protobuf.Empty) returns (stream RemoteNameResponseMsg) {} |
| // TODO: Should we use a blocking call for ReadRemoteName instead? (Note: blocking model may not work for GD stack) |
| rpc EnableInquiryScan(EnableMsg) returns (google.protobuf.Empty) {} |
| rpc EnablePageScan(EnableMsg) returns (google.protobuf.Empty) {} |
| } |
| |
| message EnableMsg { |
| bool enabled = 1; |
| } |
| |
| enum DiscoverabilityMode { |
| OFF = 0; |
| LIMITED = 1; |
| GENERAL = 2; |
| } |
| |
| message DiscoverabilitiyMsg { |
| DiscoverabilityMode mode = 1; |
| } |
| |
| enum ResultMode { |
| STANDARD = 0; |
| RSSI = 1; |
| EXTENDED = 2; |
| } |
| |
| message InquiryMsg { |
| DiscoverabilityMode inquiry_mode = 1; |
| ResultMode result_mode = 2; |
| uint32 length_1_28s = 3; |
| uint32 max_results = 4; // 0 is unlimited |
| } |
| |
| message InquiryResultMsg { |
| bytes packet = 1; |
| } |
| |
| message RemoteNameRequestMsg { |
| bytes address = 1; |
| uint32 page_scan_repetition_mode = 2; // r0, r1, r2 |
| uint32 clock_offset = 3; |
| } |
| |
| message RemoteNameResponseMsg { |
| uint32 status = 1; |
| bytes address = 2; |
| bytes name = 3; |
| } |