[1.1.x] SERIAL_XON_XOFF not supported on USB-native AVR devices (#8653)

* SERIAL_XON_XOFF not supported on USB-native AVR devices

User could enable SERIAL_XON_XOFF on USB-native devices and it would not be enabled without warning, but M115 would report the capability as available.
This commit is contained in:
Dave Johnson 2017-12-04 14:48:19 -08:00 committed by Scott Lahteine
parent 3abd307691
commit 860d98a897
2 changed files with 21 additions and 15 deletions

View File

@ -75,27 +75,26 @@
#define BIN 2 #define BIN 2
#define BYTE 0 #define BYTE 0
#ifndef USBCON // Define constants and variables for buffering serial data.
// Define constants and variables for buffering incoming serial data. We're // Use only 0 or powers of 2 greater than 1
// using a ring buffer (I think), in which rx_buffer_head is the index of the // : [0, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, ...]
// location to which to write the next incoming character and rx_buffer_tail #ifndef RX_BUFFER_SIZE
// is the index of the location from which to read.
// Use only powers of 2.
// : [0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, ...]
#ifndef RX_BUFFER_SIZE
#define RX_BUFFER_SIZE 128 #define RX_BUFFER_SIZE 128
#endif #endif
// 256 is the max TX buffer climit due to uint8_t head and tail. // 256 is the max TX buffer limit due to uint8_t head and tail.
#ifndef TX_BUFFER_SIZE #ifndef TX_BUFFER_SIZE
#define TX_BUFFER_SIZE 32 #define TX_BUFFER_SIZE 32
#endif
#ifndef USBCON
#if ENABLED(SERIAL_XON_XOFF) && RX_BUFFER_SIZE < 1024
#error "SERIAL_XON_XOFF requires RX_BUFFER_SIZE >= 1024 for reliable transfers without drops."
#endif #endif
#if ENABLED(SERIAL_XON_XOFF) && RX_BUFFER_SIZE < 1024
#error "XON/XOFF requires RX_BUFFER_SIZE >= 1024 for reliable transfers without drops."
#endif
#if !IS_POWER_OF_2(RX_BUFFER_SIZE) || RX_BUFFER_SIZE < 2 #if !IS_POWER_OF_2(RX_BUFFER_SIZE) || RX_BUFFER_SIZE < 2
#error "RX_BUFFER_SIZE must be a power of 2 greater than 1." #error "RX_BUFFER_SIZE must be a power of 2 greater than 1."
#endif #endif
#if TX_BUFFER_SIZE && (TX_BUFFER_SIZE < 2 || TX_BUFFER_SIZE > 256 || !IS_POWER_OF_2(TX_BUFFER_SIZE)) #if TX_BUFFER_SIZE && (TX_BUFFER_SIZE < 2 || TX_BUFFER_SIZE > 256 || !IS_POWER_OF_2(TX_BUFFER_SIZE))
#error "TX_BUFFER_SIZE must be 0, a power of 2 greater than 1, and no greater than 256." #error "TX_BUFFER_SIZE must be 0, a power of 2 greater than 1, and no greater than 256."
#endif #endif

View File

@ -245,6 +245,13 @@
#error "WEBSITE_URL must be specified." #error "WEBSITE_URL must be specified."
#endif #endif
/**
* Serial
*/
#if defined(USBCON) && ENABLED(SERIAL_XON_XOFF)
#error "SERIAL_XON_XOFF is not supported on USB-native AVR devices."
#endif
/** /**
* Dual Stepper Drivers * Dual Stepper Drivers
*/ */