diff --git a/libraries/AP_HAL_PX4/AP_HAL_PX4_Namespace.h b/libraries/AP_HAL_PX4/AP_HAL_PX4_Namespace.h index 943df78e97..87a442ec3e 100644 --- a/libraries/AP_HAL_PX4/AP_HAL_PX4_Namespace.h +++ b/libraries/AP_HAL_PX4/AP_HAL_PX4_Namespace.h @@ -3,6 +3,7 @@ #define __AP_HAL_PX4_NAMESPACE_H__ namespace PX4 { + class PX4ConsoleDriver; } #endif //__AP_HAL_PX4_NAMESPACE_H__ diff --git a/libraries/AP_HAL_PX4/Console.cpp b/libraries/AP_HAL_PX4/Console.cpp new file mode 100644 index 0000000000..037766f547 --- /dev/null +++ b/libraries/AP_HAL_PX4/Console.cpp @@ -0,0 +1,81 @@ +#include + +#if CONFIG_HAL_BOARD == HAL_BOARD_PX4 +#include +#include "Console.h" +#include + +using namespace PX4; + +PX4ConsoleDriver::PX4ConsoleDriver() {} + +void PX4ConsoleDriver::init(void* unused) +{ +} + +void PX4ConsoleDriver::backend_open() +{} + +void PX4ConsoleDriver::backend_close() +{} + +size_t PX4ConsoleDriver::backend_read(uint8_t *data, size_t len) { + return 0; +} + +size_t PX4ConsoleDriver::backend_write(const uint8_t *data, size_t len) { + return 0; +} + +void PX4ConsoleDriver::print_P(const prog_char_t *pstr) { + print(pstr); +} + +void PX4ConsoleDriver::println_P(const prog_char_t *pstr) { + println(pstr); +} + +void PX4ConsoleDriver::printf(const char *fmt, ...) { + va_list ap; + va_start(ap, fmt); + vfprintf(stdout, fmt, ap); + va_end(ap); +} + +void PX4ConsoleDriver::_printf_P(const prog_char *fmt, ...) { + va_list ap; + va_start(ap,fmt); + vfprintf(stdout, fmt, ap); + va_end(ap); +} + +void PX4ConsoleDriver::vprintf(const char *fmt, va_list ap) { + vfprintf(stdout, fmt, ap); +} + +void PX4ConsoleDriver::vprintf_P(const prog_char *fmt, va_list ap) { + vfprintf(stdout, fmt, ap); +} + +int16_t PX4ConsoleDriver::available() { + return 0; +} + +int16_t PX4ConsoleDriver::txspace() { + return 0; +} + +int16_t PX4ConsoleDriver::read() { + return 0; +} + +int16_t PX4ConsoleDriver::peek() { + return 0; +} + +size_t PX4ConsoleDriver::write(uint8_t c) { + fputc(c, stdout); + return 1; +} + +#endif diff --git a/libraries/AP_HAL_PX4/Console.h b/libraries/AP_HAL_PX4/Console.h new file mode 100644 index 0000000000..04ece0c495 --- /dev/null +++ b/libraries/AP_HAL_PX4/Console.h @@ -0,0 +1,32 @@ + +#ifndef __AP_HAL_PX4_CONSOLE_H__ +#define __AP_HAL_PX4_CONSOLE_H__ + +#include +#include + +class PX4::PX4ConsoleDriver : public AP_HAL::ConsoleDriver { +public: + PX4ConsoleDriver(); + void init(void* machtnichts); + void backend_open(); + void backend_close(); + size_t backend_read(uint8_t *data, size_t len); + size_t backend_write(const uint8_t *data, size_t len); + + void print_P(const prog_char_t *pstr); + void println_P(const prog_char_t *pstr); + void printf(const char *pstr, ...); + void _printf_P(const prog_char *pstr, ...); + void vprintf(const char *pstr, va_list ap); + void vprintf_P(const prog_char *pstr, va_list ap); + + int16_t available(); + int16_t txspace(); + int16_t read(); + int16_t peek(); + + size_t write(uint8_t c); +}; + +#endif // __AP_HAL_PX4_CONSOLE_H__ diff --git a/libraries/AP_HAL_PX4/HAL_PX4_Class.cpp b/libraries/AP_HAL_PX4/HAL_PX4_Class.cpp index ea6bf3ace3..a424174320 100644 --- a/libraries/AP_HAL_PX4/HAL_PX4_Class.cpp +++ b/libraries/AP_HAL_PX4/HAL_PX4_Class.cpp @@ -7,10 +7,13 @@ #include #include "AP_HAL_PX4_Namespace.h" #include "HAL_PX4_Class.h" +#include "Console.h" #include #include +#include + using namespace PX4; static Empty::EmptyUARTDriver uartADriver; @@ -26,7 +29,7 @@ static Empty::EmptyRCOutput rcoutDriver; static Empty::EmptyScheduler schedulerInstance; static Empty::EmptyUtil utilInstance; -static Empty::EmptyConsoleDriver consoleDriver(&uartADriver); +static PX4ConsoleDriver consoleDriver; HAL_PX4::HAL_PX4() : AP_HAL::HAL( @@ -50,9 +53,6 @@ void HAL_PX4::init(int argc, char * const argv[]) const scheduler->init(NULL); uartA->begin(115200); console->init((void*) uartA); - rcin->init(NULL); - rcout->init(NULL); - analogin->init(NULL); } const HAL_PX4 AP_HAL_PX4;