#include #include #include #include #include namespace sta { PrintableUART::PrintableUART(UART * intf) : intf_{intf} { STA_ASSERT(intf != nullptr); STA_ASSERT(intf->settings().mode == UARTMode::RX || intf->settings().mode == UARTMode::RX_TX); } void PrintableUART::print(const char * str, size_t length, bool newline /* = false */) { intf_->acquire(); intf_->transfer(reinterpret_cast(str), length); if (newline) { const char * linebreak = "\r\n"; intf_->transfer(reinterpret_cast(linebreak), 2); } intf_->release(); } void PrintableUART::read(uint8_t * buffer, size_t length) { intf_->acquire(); intf_->receive(buffer, length); intf_->release(); } } // namespace sta