diff --git a/libraries/AP_Networking/AP_Networking.cpp b/libraries/AP_Networking/AP_Networking.cpp index df2f207e9c..76c7e95b5f 100644 --- a/libraries/AP_Networking/AP_Networking.cpp +++ b/libraries/AP_Networking/AP_Networking.cpp @@ -292,4 +292,31 @@ AP_Networking &network() } } +/* + debug printfs from LWIP + */ +int ap_networking_printf(const char *fmt, ...) +{ +#ifdef AP_NETWORKING_LWIP_DEBUG_PORT + static AP_HAL::UARTDriver *uart; + if (uart == nullptr) { + uart = hal.serial(AP_NETWORKING_LWIP_DEBUG_PORT); + if (uart == nullptr) { + return -1; + } + uart->begin(921600, 0, 50000); + } + va_list ap; + va_start(ap, fmt); + uart->vprintf(fmt, ap); + va_end(ap); +#else + va_list ap; + va_start(ap, fmt); + hal.console->vprintf(fmt, ap); + va_end(ap); +#endif + return 0; +} + #endif // AP_NETWORKING_ENABLED diff --git a/libraries/AP_Networking/AP_Networking.h b/libraries/AP_Networking/AP_Networking.h index 1359b3abe5..5c3b52be73 100644 --- a/libraries/AP_Networking/AP_Networking.h +++ b/libraries/AP_Networking/AP_Networking.h @@ -319,4 +319,8 @@ namespace AP AP_Networking &network(); }; +extern "C" { +int ap_networking_printf(const char *fmt, ...); +} + #endif // AP_NETWORKING_ENABLED