Skip to main content

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;
}