Bluetooth
The Bluetooth API enables communication with external Bluetooth Low Energy (BLE) devices. This API provides methods for device connection, characteristic reading/writing, and real-time status monitoring.
Protocol Buffer Definition
syntax = "proto3";
service BluetoothService {
// Establishes connection to a BLE device
rpc ConnectToDevice (BluetoothConnectionInformationMessage) returns (BluetoothDeviceMessage);
// Streams real-time device status updates
rpc StreamDeviceStatusUpdate (BluetoothConnectionInformationMessage) returns (stream BluetoothDeviceStatusMessage);
// Retrieves complete device information
rpc GetDeviceInformation (BluetoothConnectionInformationMessage) returns (BluetoothDeviceMessage);
// Writes data to a characteristic as a stream
rpc WriteCharacteristicAsStream (stream BluetoothCharacteristicContentMessage) returns (BluetoothDeviceMessage);
// Reads data from a characteristic
rpc ReadCharacteristic (BluetoothCharacteristicContentMessage) returns (BluetoothCharacteristicContentMessage);
// Streams notifications from a characteristic
rpc StreamCharacteristicNotifications (BluetoothCharacteristicContentMessage) returns (stream BluetoothCharacteristicContentMessage);
}
// Connection parameters
message BluetoothConnectionInformationMessage {
string bluetooth_address = 1; // Device MAC address
int32 connection_timeout = 2; // (Will be removed in a future version)
}
// Complete device information
message BluetoothDeviceMessage {
string address = 1; // Device MAC address
string alias = 2; // Human-readable name
bool paired = 3; // Pairing status
BluetoothDeviceStatus status = 4; // Current connection status
repeated BluetoothCharacteristicContentMessage characteristics = 5; // Available characteristics
}
// Characteristic data container
message BluetoothCharacteristicContentMessage {
string bluetooth_address = 1; // Device MAC address
string service_uuid = 2; // Service UUID
string characteristic_uuid = 3; // Characteristic UUID
bytes content = 4; // Characteristic value
}
// Connection status update message
message BluetoothDeviceStatusMessage {
BluetoothDeviceStatus status = 1;
}
// Connection status enum
enum BluetoothDeviceStatus {
DISCONNECTED = 0;
CONNECTED = 1;
}