/* simple test of UART interfaces */ #include #if HAL_OS_POSIX_IO #include #endif void setup(); void loop(); const AP_HAL::HAL& hal = AP_HAL::get_HAL(); /* setup one UART at 57600 */ static void setup_uart(AP_HAL::UARTDriver *uart, const char *name) { if (uart == nullptr) { // that UART doesn't exist on this platform return; } uart->begin(57600); } void setup(void) { /* start all UARTs at 57600 with default buffer sizes */ hal.scheduler->delay(1000); //Ensure that the uartA can be initialized setup_uart(hal.uartA, "uartA"); // console setup_uart(hal.uartB, "uartB"); // 1st GPS setup_uart(hal.uartC, "uartC"); // telemetry 1 setup_uart(hal.uartD, "uartD"); // telemetry 2 setup_uart(hal.uartE, "uartE"); // 2nd GPS } static void test_uart(AP_HAL::UARTDriver *uart, const char *name) { if (uart == nullptr) { // that UART doesn't exist on this platform return; } uart->printf("Hello on UART %s at %.3f seconds\n", name, (double)(AP_HAL::millis() * 0.001f)); } void loop(void) { test_uart(hal.uartA, "uartA"); test_uart(hal.uartB, "uartB"); test_uart(hal.uartC, "uartC"); test_uart(hal.uartD, "uartD"); test_uart(hal.uartE, "uartE"); // also do a raw printf() on some platforms, which prints to the // debug console #if HAL_OS_POSIX_IO ::printf("Hello on debug console at %.3f seconds\n", (double)(AP_HAL::millis() * 0.001f)); #endif hal.scheduler->delay(1000); } AP_HAL_MAIN();