Bumble crate 0.2.0

This commit is contained in:
Marshall Pierce
2024-03-21 12:31:02 -06:00
parent a9c62c44b3
commit b8214bf948
7 changed files with 16 additions and 8 deletions

View File

@@ -1,7 +1,10 @@
# Next # 0.2.0
- Code-gen company ID table - Code-gen company ID table
- Unstable support for extended advertisements
- CLI tools for downloading Realtek firmware
- PDL-generated types for HCI commands
# 0.1.0 # 0.1.0
- Initial release - Initial release

2
rust/Cargo.lock generated
View File

@@ -182,7 +182,7 @@ dependencies = [
[[package]] [[package]]
name = "bumble" name = "bumble"
version = "0.1.0" version = "0.2.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"bytes", "bytes",

View File

@@ -1,7 +1,7 @@
[package] [package]
name = "bumble" name = "bumble"
description = "Rust API for the Bumble Bluetooth stack" description = "Rust API for the Bumble Bluetooth stack"
version = "0.1.0" version = "0.2.0"
edition = "2021" edition = "2021"
license = "Apache-2.0" license = "Apache-2.0"
homepage = "https://google.github.io/bumble/index.html" homepage = "https://google.github.io/bumble/index.html"

View File

@@ -37,6 +37,11 @@ PYTHONPATH=..:[virtualenv site-packages] \
cargo run --features bumble-tools --bin bumble -- --help cargo run --features bumble-tools --bin bumble -- --help
``` ```
Notable subcommands:
- `firmware realtek download`: download Realtek firmware for various chipsets so that it can be automatically loaded when needed
- `usb probe`: show USB devices, highlighting the ones usable for Bluetooth
# Development # Development
Run the tests: Run the tests:
@@ -63,4 +68,4 @@ To regenerate the assigned number tables based on the Python codebase:
``` ```
PYTHONPATH=.. cargo run --bin gen-assigned-numbers --features dev-tools PYTHONPATH=.. cargo run --bin gen-assigned-numbers --features dev-tools
``` ```

View File

@@ -35,7 +35,7 @@ impl Controller {
/// module specifies the defaults. Must be called from a thread with a Python event loop, which /// module specifies the defaults. Must be called from a thread with a Python event loop, which
/// should be true on `tokio::main` and `async_std::main`. /// should be true on `tokio::main` and `async_std::main`.
/// ///
/// For more info, see https://awestlake87.github.io/pyo3-asyncio/master/doc/pyo3_asyncio/#event-loop-references-and-contextvars. /// For more info, see <https://awestlake87.github.io/pyo3-asyncio/master/doc/pyo3_asyncio/#event-loop-references-and-contextvars>.
pub async fn new( pub async fn new(
name: &str, name: &str,
host_source: Option<TransportSource>, host_source: Option<TransportSource>,

View File

@@ -149,7 +149,7 @@ impl ToPyObject for Address {
/// An error meaning that the u64 value did not represent a valid BT address. /// An error meaning that the u64 value did not represent a valid BT address.
#[derive(Debug)] #[derive(Debug)]
pub struct InvalidAddress(u64); pub struct InvalidAddress(#[allow(unused)] u64);
impl TryInto<packets::Address> for Address { impl TryInto<packets::Address> for Address {
type Error = ConversionError<InvalidAddress>; type Error = ConversionError<InvalidAddress>;

View File

@@ -71,7 +71,7 @@ impl LeConnectionOrientedChannel {
/// Must be called from a thread with a Python event loop, which should be true on /// Must be called from a thread with a Python event loop, which should be true on
/// `tokio::main` and `async_std::main`. /// `tokio::main` and `async_std::main`.
/// ///
/// For more info, see https://awestlake87.github.io/pyo3-asyncio/master/doc/pyo3_asyncio/#event-loop-references-and-contextvars. /// For more info, see <https://awestlake87.github.io/pyo3-asyncio/master/doc/pyo3_asyncio/#event-loop-references-and-contextvars>.
pub async fn disconnect(&mut self) -> PyResult<()> { pub async fn disconnect(&mut self) -> PyResult<()> {
Python::with_gil(|py| { Python::with_gil(|py| {
self.0 self.0