diff --git a/libraries/AP_MSP/AP_MSP_Telem_DisplayPort.cpp b/libraries/AP_MSP/AP_MSP_Telem_DisplayPort.cpp index 7734724b12..896003d73e 100644 --- a/libraries/AP_MSP/AP_MSP_Telem_DisplayPort.cpp +++ b/libraries/AP_MSP/AP_MSP_Telem_DisplayPort.cpp @@ -41,4 +41,16 @@ MSPCommandResult AP_MSP_Telem_DisplayPort::msp_process_out_fc_variant(sbuf_t *ds return MSP_RESULT_ACK; } +bool AP_MSP_Telem_DisplayPort::init_uart() +{ + if (_msp_port.uart != nullptr) { + // re-init port here for use in this thread + // displayport needs a bigger tx buffer + // rx buffer can be small for we mostly write + _msp_port.uart->begin(0, 256, 768); + return true; + } + return false; +} + #endif //HAL_WITH_MSP_DISPLAYPORT diff --git a/libraries/AP_MSP/AP_MSP_Telem_DisplayPort.h b/libraries/AP_MSP/AP_MSP_Telem_DisplayPort.h index 45b9bf5273..825e81622f 100644 --- a/libraries/AP_MSP/AP_MSP_Telem_DisplayPort.h +++ b/libraries/AP_MSP/AP_MSP_Telem_DisplayPort.h @@ -26,6 +26,7 @@ class AP_MSP_Telem_DisplayPort : public AP_MSP_Telem_Backend public: bool is_scheduler_enabled() const override { return false; } bool use_msp_thread() const override { return false; } + bool init_uart() override; AP_SerialManager::SerialProtocol get_serial_protocol() const override { return AP_SerialManager::SerialProtocol::SerialProtocol_MSP_DisplayPort; }; MSP::MSPCommandResult msp_process_out_fc_variant(MSP::sbuf_t *dst) override;