62 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
syntax = "proto3";
 | 
						|
 | 
						|
package blueberry.facade.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;
 | 
						|
}
 |