diff options
Diffstat (limited to 'proto/neighbor.proto')
-rw-r--r-- | proto/neighbor.proto | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/proto/neighbor.proto b/proto/neighbor.proto new file mode 100644 index 0000000..6fb7b05 --- /dev/null +++ b/proto/neighbor.proto @@ -0,0 +1,61 @@ +syntax = "proto3"; + +package bluetooth.neighbor; + +import "proto/common.proto"; + +service NeighborFacade { + rpc SetConnectability(EnableMsg) returns (facade.Empty) {} + rpc SetDiscoverability(DiscoverabilitiyMsg) returns (facade.Empty) {} + rpc SetInquiryMode(InquiryMsg) returns (stream InquiryResultMsg) { + // Sets inquiry mode and fetches inquiry result HCI packet + } + rpc ReadRemoteName(RemoteNameRequestMsg) returns (facade.Empty) {} + rpc GetRemoteNameEvents(facade.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 (facade.Empty) {} + rpc EnablePageScan(EnableMsg) returns (facade.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; +} |