#include "nrf52_debug_console.h" #include #include #include #include namespace platform::nrf52::debug_console { namespace { constexpr unsigned long kBaudRate = 115200UL; bool usbSerialWritable(std::size_t len) { return static_cast(Serial) && Serial.dtr() != 0 && Serial.availableForWrite() >= static_cast(len); } void writeToUsbSerial(const char* text) { if (!text) { return; } const std::size_t len = std::strlen(text); if (!usbSerialWritable(len)) { return; } Serial.print(text); } void writeToJlinkSerial(const char* text) { if (!text) { return; } Serial2.print(text); } } // namespace void begin() { Serial.begin(kBaudRate); Serial2.begin(kBaudRate); delay(80); } void print(const char* text) { writeToUsbSerial(text); writeToJlinkSerial(text); } void println() { Serial.println(); Serial2.println(); } void println(const char* text) { writeToUsbSerial(text); writeToJlinkSerial(text); println(); } void printf(const char* format, ...) { if (!format) { return; } char buffer[192] = {}; va_list args; va_start(args, format); vsnprintf(buffer, sizeof(buffer), format, args); va_end(args); print(buffer); } } // namespace platform::nrf52::debug_console