Skip to main content

Crate wrapper_ble_esp32c3mini

Crate wrapper_ble_esp32c3mini 

Source
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 :

§Vue d’ensemble

Le point d’entrée est BleSystem::init, qui construit :

  1. le contrôleur BLE matériel (BleController),
  2. la pile hôte trouble-host configurée en rôle périphérique,
  3. un serveur GATT BleServer exposant le service DisplayService.

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" exige esp-hal dans la plage ~1.1.0-rc.0 (donc esp-hal = "1.1.2", pas la branche 1.2.x) et bt-hci dans la plage ^0.8.0.
  • bt-hci = "0.8.1" est donc la version retenue, ce qui impose à son tour trouble-host = "0.6.0" (la seule branche de trouble-host qui dépend elle-même de bt-hci ^0.8, les versions 0.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.
DisplayService

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.