#include "bsp_cellular.hpp" #if defined(TARGET_RT1051) #include "board/rt1051/bsp/cellular/rt1051_cellular.hpp" #elif defined(TARGET_Linux) #include "cellular/linux_cellular.hpp" #else #error "Unsupported target" #endif namespace bsp { std::optional> Cellular::create([[maybe_unused]] const char *term, uint32_t portSpeed) { std::unique_ptr inst; #if defined(TARGET_RT1051) inst = std::make_unique(); #elif defined(TARGET_Linux) inst = std::make_unique(term, portSpeed); #else #error "Unsupported target" #endif if (inst->isInitialized) { return inst; } return {}; } [[nodiscard]] auto Cellular::getCellularDevice() const noexcept -> std::shared_ptr { return driverLPUART; } [[nodiscard]] auto Cellular::getLastCommunicationTimestamp() const noexcept -> TickType_t { return lastCommunicationTimestamp; } [[nodiscard]] auto Cellular::isCellularInSleepMode() const noexcept -> bool { return isInSleepMode; } } // namespace bsp