diff --git a/libraries/AP_HAL/UARTDriver.h b/libraries/AP_HAL/UARTDriver.h index d2d0ef9370..5bbd16ebbe 100644 --- a/libraries/AP_HAL/UARTDriver.h +++ b/libraries/AP_HAL/UARTDriver.h @@ -9,6 +9,10 @@ class ExpandingString; /* Pure virtual UARTDriver class */ class AP_HAL::UARTDriver : public AP_HAL::BetterStream { +private: + // option bits for port + uint16_t _last_options; + public: UARTDriver() {} /* Do not allow copies */ @@ -61,8 +65,8 @@ public: virtual int16_t read_locked(uint32_t key) { return -1; } // control optional features - virtual bool set_options(uint16_t options) { return options==0; } - virtual uint8_t get_options(void) const { return 0; } + virtual bool set_options(uint16_t options) { _last_options = options; return options==0; } + virtual uint16_t get_options(void) const { return _last_options; } enum { OPTION_RXINV = (1U<<0), // invert RX line @@ -77,6 +81,7 @@ public: OPTION_NODMA_TX = (1U<<9), // don't use DMA for TX OPTION_MAVLINK_NO_FORWARD = (1U<<10), // don't forward MAVLink data to or from this device OPTION_NOFIFO = (1U<<11), // disable hardware FIFO + OPTION_NOSTREAMOVERRIDE = (1U<<12), // don't allow GCS to override streamrates }; enum flow_control {