#[cfg(feature = "defmt")]
mod defmt_logger;
mod espressif_config;
pub use espressif_config::{Config as RustmeterConfig, *};
mod tracing_esp;
mod local_critical_section;
mod printing;
#[cfg(any(feature = "esp32", feature = "esp32s3", feature = "esp32p4"))]
pub const NUM_CORES: usize = 2;
#[cfg(any(
feature = "esp32s2",
feature = "esp32c3",
feature = "esp32c6",
feature = "esp32h2"
))]
pub const NUM_CORES: usize = 1;
#[derive(Debug)]
pub enum InitializationError {
UartConfigError(esp_hal::uart::ConfigError),
TaskSpawnError(embassy_executor::SpawnError),
}
pub fn init_rustmeter_beacon<P: ConfigPrinterBuild>(
config: RustmeterConfig<P>,
spawner: &embassy_executor::Spawner,
) -> Result<(), InitializationError> {
let printer_route = config
.build_printer_route()
.map_err(InitializationError::UartConfigError)?;
spawner
.spawn(printing::connector(printer_route, config.cpu_freq))
.map_err(InitializationError::TaskSpawnError)?;
Ok(())
}