Expand description
§wrapper-ble-esp32c3mini
Bibliothèque no_std encapsulant l’initialisation d’un périphérique BLE
(rôle GATT peripheral) sur ESP32-C3, en s’appuyant sur :
esp-radiopour le contrôleur HCI matériel (BleConnector),bt-hciet sonExternalControllerpour exposer ce contrôleur au format attendu par la pile hôte,trouble-hostpour la pile hôte BLE (GAP, GATT, L2CAP) et l’exécution asynchrone via Embassy.
§Vue d’ensemble
Le point d’entrée est BleSystem::init, qui construit :
- le contrôleur BLE matériel (
BleController), - la pile hôte
trouble-hostconfigurée en rôle périphérique, - un serveur GATT
BleServerexposant le serviceDisplayService.
Le [Runner](trouble_host::Runner) renvoyé doit ensuite être piloté en
continu par la tâche run_ble_runner, typiquement spawnée sur
l’exécuteur Embassy du binaire final.
§Exemple d’utilisation (squelette)
ⓘ
#![no_std]
#![no_main]
use wrapper_ble_esp32c3mini::{BleSystem, run_ble_runner};
#[esp_hal_embassy::main]
async fn main(spawner: embassy_executor::Spawner) {
let peripherals = esp_hal::init(esp_hal::Config::default());
let BleSystem { runner, peripheral, server } = BleSystem::init(peripherals.BT);
spawner.spawn(ble_runner_task(runner)).unwrap();
// `peripheral` sert ensuite à publicité + acceptation de connexions,
// `server` expose les caractéristiques `command` / `status`.
}
#[embassy_executor::task]
async fn ble_runner_task(runner: trouble_host::Runner<'static, wrapper_ble_esp32c3mini::BleController, trouble_host::DefaultPacketPool>) {
wrapper_ble_esp32c3mini::run_ble_runner(runner).await;
}§Compatibilité des versions
Les versions figées dans Cargo.toml ne sont pas arbitraires : elles
forment le seul jeu de versions récentes qui se lient toutes ensemble au
moment de la rédaction de ce crate.
esp-radio = "0.18.0"exigeesp-haldans la plage~1.1.0-rc.0(doncesp-hal = "1.1.2", pas la branche1.2.x) etbt-hcidans la plage^0.8.0.bt-hci = "0.8.1"est donc la version retenue, ce qui impose à son tourtrouble-host = "0.6.0"(la seule branche detrouble-hostqui dépend elle-même debt-hci ^0.8, les versions0.7/0.8étant passées àbt-hci ^0.9/^0.10).
Si, à l’avenir, esp-radio publie une version qui suit esp-hal 1.2.x
et un bt-hci plus récent, il faudra remonter trouble-host en même
temps que bt-hci, pas séparément.
Structs§
- BleServer
- BleSystem
- Regroupe les trois composants nécessaires au fonctionnement de la pile BLE : le runner de la pile hôte, le rôle périphérique et le serveur GATT applicatif.
- Display
Service
Functions§
- run_
ble_ runner - Fait tourner indéfiniment la boucle d’évènements de la pile hôte BLE.
Type Aliases§
- BleController
- Taille (en octets) du buffer HCI utilisé par le contrôleur externe.