Crate bluez_async_ots

Source
Expand description

§Bluetooth OTS client

github crate docs MIT Apache-2.0 CI

This crate implements Bluetooth Object Transfer Service (OTS) client for bluez using bluez-async. Implementation compatible with OTS 1.0 specification.

§Usage example

use bluez_async::{BluetoothSession, DeviceId};
use bluez_async_ots::{DirEntries, OtsClient, Result};

#[tokio::main]
async fn main() -> Result<()> {
    // First initiate bluetooth session as usual
    let (_, bs) = BluetoothSession::new().await?;

    // Next discover and connect to get interesting device identifier
    let dev_id: DeviceId = todo!();

    // Create OTS client using session and device id
    // Session will be cloned by client internally
    let ots = OtsClient::new(&bs, &dev_id, &Default::default()).await?;

    // Now you can list objects by reading special object with zero id

    // First we need select required object by identifier
    ots.go_to(0).await?;
    // Follow we can read binary data from current object
    let data = ots.read(0, None).await?;
    // To extract objects info from binary data we have create iterator
    for entry in DirEntries::from(data.as_ref()) {
        println!("{:?}", entry?);
    }

    // Sometimes server hasn't provide special object with objects info
    // In such case alternative way of exploring objects is selecting
    // first (or last) object and iterate over list to last (or first)
    // step by step

    // Select first available object
    ots.first().await?;
    loop {
        // Get all available info about current object
        println!("{:?}", ots.metadata().await?);
        // Try go to the next object
        if !ots.next().await? {
            break;
        }
    }

    Ok(())
}

Structs§

ActionFeature
Object action feature flags
ClientConfig
Object Transfer Service (OTS) client configuration
DateTime
Object date and time
DirEntries
Iterator over directory entries
ListFeature
Object list feature flags
Metadata
Object metadata
OtsClient
Object Transfer Service (OTS) client
Property
Object property flags
Security
Bluetooth security
WriteMode
Object write action mode flags

Enums§

ActionRc
Object action operation result code
CoreError
OTS client error
Error
OTS client error
ListRc
Object list operation result code
SecurityLevel
Bluetooth security level
SortOrder
Object List Sort Order

Type Aliases§

Result
OTS client result