blob: bf80ab92d789b2f9cc077a4ed227b67a52c0ab61 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
syntax = "proto3";
package blueberry;
import "google/protobuf/empty.proto";
// Service to trigger Bluetooth Host procedures
//
// At startup, the Host must be in BR/EDR connectable mode
// (see GAP connectability modes)
service Host {
// Reset the host.
// **After** responding to this command, the GRPC server should loose
// all its state.
// This is comparable to a process restart or an hardware reset.
// The GRPC server might take some time to be available after
// this command.
rpc Reset(google.protobuf.Empty) returns (google.protobuf.Empty);
// Create an ACL BR/EDR connection to a peer.
// This should send a CreateConnection on the HCI level.
// If the two devices have not established a previous bond,
// the peer must be discoverable.
rpc Connect(ConnectRequest) returns (ConnectResponse);
// Get an active ACL BR/EDR connection to a peer.
rpc GetConnection(GetConnectionRequest) returns (GetConnectionResponse);
// Wait for an ACL BR/EDR connection from a peer.
rpc WaitConnection(WaitConnectionRequest) returns (WaitConnectionResponse);
// Disconnect an ACL BR/EDR connection. The Connection must not be reused afterwards.
rpc Disconnect(DisconnectRequest) returns (DisconnectResponse);
// Read the local Bluetooth device address.
// This should return the same value as a Read BD_ADDR HCI command.
rpc ReadLocalAddress(google.protobuf.Empty) returns (ReadLocalAddressResponse);
}
// A Token representing an ACL connection.
// It's acquired via a Connect on the Host service.
message Connection {
// Opaque value filled by the GRPC server, must not
// be modified nor crafted.
bytes cookie = 1;
}
// Request of the `Connect` method.
message ConnectRequest {
// Peer Bluetooth Device Address as array of 6 bytes.
bytes address = 1;
}
// Response of the `Connect` method.
message ConnectResponse {
// Result of the `Connect` call:
// - If successfull: a Connection
oneof result {
Connection connection = 1;
}
}
// Request of the `GetConnection` method.
message GetConnectionRequest {
// Peer Bluetooth Device Address as array of 6 bytes.
bytes address = 1;
}
// Response of the `GetConnection` method.
message GetConnectionResponse {
// Result of the `GetConnection` call:
// - If successfull: a Connection
oneof result {
Connection connection = 1;
}
}
// Request of the `WaitConnection` method.
message WaitConnectionRequest {
// Peer Bluetooth Device Address as array of 6 bytes.
bytes address = 1;
}
// Response of the `WaitConnection` method.
message WaitConnectionResponse {
// Result of the `WaitConnection` call:
// - If successfull: a Connection
oneof result {
Connection connection = 1;
}
}
// Request of the `Disconnect` method.
message DisconnectRequest {
// Connection that should be disconnected.
Connection connection = 1;
}
// Response of the `Disconnect` method.
message DisconnectResponse {}
// Response of the `ReadLocalAddress` method.
message ReadLocalAddressResponse {
// Local Bluetooth Device Address as array of 6 bytes.
bytes address = 1;
}
|