use esp_hal::peripherals::BT;
use esp_radio::ble::{Config, InvalidConfigError, controller::{BleConnector, BleInitError}};
use thiserror_no_std::Error;
#[derive(Debug, Error)]
pub enum RadioError {
#[error("Failed to initialize BLE controller")]
BleInitError(#[from] BleInitError),
#[error("Failed to initialize BLE controller")]
BleConfigError(#[from] InvalidConfigError),
}
pub struct BleRadio {
pub ble_connector: BleConnector<'static>,
}
impl BleRadio {
pub fn new(bt: BT<'static>) -> Result<Self, RadioError> {
let cfg = Config::default()
.with_task_priority(10)
.with_max_connections(1)
.with_scan_duplicate_list_count(10)
.with_task_stack_size(8192);
let ble_connector = BleConnector::new(bt, cfg)?;
Ok(Self { ble_connector })
}
}