← Back

Module bluetooth

struct BluetoothAdapter

Bluetooth adapter handle

Source: bluetooth.joule:7

struct BluetoothAddress([u8; 6]);

Source: bluetooth.joule:18

fn new(bytes: [u8; 6]) -> Self

Source: bluetooth.joule:21

fn from_string(s: &str) -> Option<Self>

Source: bluetooth.joule:25

fn bytes(&self) -> &[u8; 6]

Source: bluetooth.joule:39

fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result

Source: bluetooth.joule:45

fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result

Source: bluetooth.joule:54

struct BluetoothDevice

Source: bluetooth.joule:61

enum DeviceClass

Source: bluetooth.joule:82

fn from_cod(cod: u32) -> Self

Source: bluetooth.joule:95

struct BluetoothUuid

Source: bluetooth.joule:113

fn from_u16(uuid: u16) -> Self

Create from 16-bit UUID

Source: bluetooth.joule:119

fn from_bytes(bytes: [u8; 16]) -> Self

Create from 128-bit UUID bytes

Source: bluetooth.joule:133

fn from_string(s: &str) -> Option<Self>

Parse from string (various formats supported)

Source: bluetooth.joule:138

const GENERIC_ACCESS: Self

Source: bluetooth.joule:153

const GENERIC_ATTRIBUTE: Self

Source: bluetooth.joule:154

const HEART_RATE: Self

Source: bluetooth.joule:155

const BATTERY_SERVICE: Self

Source: bluetooth.joule:156

const DEVICE_INFORMATION: Self

Source: bluetooth.joule:157

const SERIAL_PORT: Self

Source: bluetooth.joule:158

const HID: Self

Source: bluetooth.joule:159

const AUDIO_SINK: Self

Source: bluetooth.joule:160

const AUDIO_SOURCE: Self

Source: bluetooth.joule:161

const HEADSET: Self

Source: bluetooth.joule:162

const fn from_u16_const(uuid: u16) -> Self {

Source: bluetooth.joule:164

fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result

Source: bluetooth.joule:174

fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result

Source: bluetooth.joule:188

struct BluetoothService

Source: bluetooth.joule:195

fn list() -> Result<Vec<BluetoothAdapter>, DeviceError>

Source: bluetooth.joule:203

fn default() -> Result<Self, DeviceError>

Source: bluetooth.joule:222

fn name(&self) -> &str

Get adapter name

Source: bluetooth.joule:228

fn address(&self) -> BluetoothAddress

Get adapter address

Source: bluetooth.joule:233

fn start_discovery(&self) -> Result<(), DeviceError>

Source: bluetooth.joule:239

fn stop_discovery(&self) -> Result<(), DeviceError>

Source: bluetooth.joule:253

fn devices(&self) -> Result<Vec<BluetoothDevice>, DeviceError>

Source: bluetooth.joule:267

fn paired_devices(&self) -> Result<Vec<BluetoothDevice>, DeviceError>

Source: bluetooth.joule:281

fn pair(&self, address: BluetoothAddress) -> Result<(), DeviceError>

Source: bluetooth.joule:289

fn unpair(&self, address: BluetoothAddress) -> Result<(), DeviceError>

Source: bluetooth.joule:303

fn connect(&self, address: BluetoothAddress) -> Result<BluetoothSocket, DeviceError>

Source: bluetooth.joule:317

struct BluetoothSocket

Classic Bluetooth socket (RFCOMM)

Source: bluetooth.joule:323

fn connect(address: BluetoothAddress) -> Result<Self, DeviceError>

Source: bluetooth.joule:331

fn connect_channel(address: BluetoothAddress, channel: u8) -> Result<Self, DeviceError>

Source: bluetooth.joule:337

fn remote_address(&self) -> BluetoothAddress

Get remote device address

Source: bluetooth.joule:350

fn read(&mut self, buf: &mut [u8]) -> Result<usize, DeviceError>

Source: bluetooth.joule:356

fn read(fd: i32, buf: *mut u8, count: usize) -> isize;

Source: bluetooth.joule:360

fn write(&mut self, buf: &[u8]) -> Result<usize, DeviceError>

Source: bluetooth.joule:377

fn write(fd: i32, buf: *const u8, count: usize) -> isize;

Source: bluetooth.joule:381

fn drop(&mut self)

Source: bluetooth.joule:398

fn close(fd: i32) -> i32;

Source: bluetooth.joule:402

struct BlePeripheral

Source: bluetooth.joule:415

struct BleConnection

BLE connection handle

Source: bluetooth.joule:431

struct BleCharacteristic

Source: bluetooth.joule:439

struct CharacteristicProperties

Source: bluetooth.joule:450

fn connect(peripheral: &BlePeripheral) -> Result<Self, DeviceError>

Source: bluetooth.joule:463

fn peripheral(&self) -> &BlePeripheral

Get peripheral info

Source: bluetooth.joule:476

fn discover_services(&self) -> Result<Vec<BluetoothUuid>, DeviceError>

Source: bluetooth.joule:482

fn discover_characteristics(&self, service: &BluetoothUuid) -> Result<Vec<BleCharacteristic>, DeviceError>

Source: bluetooth.joule:496

fn read_characteristic(&self, characteristic: &BleCharacteristic) -> Result<Vec<u8>, DeviceError>

Source: bluetooth.joule:510

fn write_characteristic(&self, characteristic: &BleCharacteristic, data: &[u8]) -> Result<(), DeviceError>

Source: bluetooth.joule:524

fn subscribe(&self, characteristic: &BleCharacteristic) -> Result<(), DeviceError>

Source: bluetooth.joule:538

fn unsubscribe(&self, characteristic: &BleCharacteristic) -> Result<(), DeviceError>

Source: bluetooth.joule:552

fn wait_notification(&self, timeout_ms: u32) -> Result<(u16, Vec<u8>), DeviceError>

Source: bluetooth.joule:566

fn drop(&mut self)

Source: bluetooth.joule:580

fn close(fd: i32) -> i32;

Source: bluetooth.joule:584

struct BleScanner

BLE scanner for discovering peripherals

Source: bluetooth.joule:592

fn new() -> Result<Self, DeviceError>

Source: bluetooth.joule:600

fn start(&self) -> Result<(), DeviceError>

Source: bluetooth.joule:614

fn stop(&self) -> Result<(), DeviceError>

Source: bluetooth.joule:628

fn peripherals(&self) -> Result<Vec<BlePeripheral>, DeviceError>

Source: bluetooth.joule:642

fn list_linux_adapters() -> Result<Vec<BluetoothAdapter>, DeviceError>

Source: bluetooth.joule:658

fn socket(domain: i32, socket_type: i32, protocol: i32) -> i32;

Source: bluetooth.joule:660

fn ioctl(fd: i32, request: u64, ...) -> i32;

Source: bluetooth.joule:661

fn close(fd: i32) -> i32;

Source: bluetooth.joule:662

const AF_BLUETOOTH: i32

Source: bluetooth.joule:665

const BTPROTO_HCI: i32

Source: bluetooth.joule:666

const SOCK_RAW: i32

Source: bluetooth.joule:667

const HCIGETDEVLIST: u64

Source: bluetooth.joule:668

const HCIGETDEVINFO: u64

Source: bluetooth.joule:669

struct HciDevReq

Source: bluetooth.joule:672

struct HciDevListReq

Source: bluetooth.joule:678

struct HciDevInfo

Source: bluetooth.joule:684

fn start_linux_discovery(_dev_id: i32) -> Result<(), DeviceError>

Source: bluetooth.joule:740

fn stop_linux_discovery(_dev_id: i32) -> Result<(), DeviceError>

Source: bluetooth.joule:746

fn get_linux_devices(_dev_id: i32) -> Result<Vec<BluetoothDevice>, DeviceError>

Source: bluetooth.joule:751

fn pair_linux_device(_dev_id: i32, _address: BluetoothAddress) -> Result<(), DeviceError>

Source: bluetooth.joule:757

fn unpair_linux_device(_dev_id: i32, _address: BluetoothAddress) -> Result<(), DeviceError>

Source: bluetooth.joule:763

fn connect_linux_rfcomm(address: BluetoothAddress, channel: u8) -> Result<BluetoothSocket, DeviceError>

Source: bluetooth.joule:768

fn socket(domain: i32, socket_type: i32, protocol: i32) -> i32;

Source: bluetooth.joule:770

fn connect(fd: i32, addr: *const std::ffi::c_void, len: u32) -> i32;

Source: bluetooth.joule:771

const AF_BLUETOOTH: i32

Source: bluetooth.joule:774

const BTPROTO_RFCOMM: i32

Source: bluetooth.joule:775

const SOCK_STREAM: i32

Source: bluetooth.joule:776

struct SockaddrRc

Source: bluetooth.joule:779

fn close(fd: i32) -> i32;

Source: bluetooth.joule:798

fn connect_linux_ble(peripheral: &BlePeripheral) -> Result<BleConnection, DeviceError>

Source: bluetooth.joule:812

fn discover_linux_ble_services(_fd: i32) -> Result<Vec<BluetoothUuid>, DeviceError>

Source: bluetooth.joule:817

fn discover_linux_ble_characteristics(_fd: i32, _service: &BluetoothUuid) -> Result<Vec<BleCharacteristic>, DeviceError>

Source: bluetooth.joule:822

fn read_linux_ble_characteristic(_fd: i32, _handle: u16) -> Result<Vec<u8>, DeviceError>

Source: bluetooth.joule:827

fn write_linux_ble_characteristic(_fd: i32, _handle: u16, _data: &[u8]) -> Result<(), DeviceError>

Source: bluetooth.joule:832

fn subscribe_linux_ble_characteristic(_fd: i32, _handle: u16) -> Result<(), DeviceError>

Source: bluetooth.joule:837

fn unsubscribe_linux_ble_characteristic(_fd: i32, _handle: u16) -> Result<(), DeviceError>

Source: bluetooth.joule:842

fn wait_linux_ble_notification(_fd: i32, _timeout_ms: u32) -> Result<(u16, Vec<u8>), DeviceError>

Source: bluetooth.joule:847

fn create_linux_ble_scanner() -> Result<BleScanner, DeviceError>

Source: bluetooth.joule:852

fn start_linux_ble_scan(_fd: i32) -> Result<(), DeviceError>

Source: bluetooth.joule:857

fn stop_linux_ble_scan(_fd: i32) -> Result<(), DeviceError>

Source: bluetooth.joule:862

fn get_linux_ble_peripherals(_fd: i32) -> Result<Vec<BlePeripheral>, DeviceError>

Source: bluetooth.joule:867

fn list_macos_adapters() -> Result<Vec<BluetoothAdapter>, DeviceError>

Source: bluetooth.joule:872