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:
Unknown 2017-12-04 03:56:47 -08:00
parent cff886ba12
commit 91b63f6d69
2 changed files with 11 additions and 6 deletions

View file

@ -29,16 +29,20 @@
#define CONDITIONALS_ADV_H #define CONDITIONALS_ADV_H
#ifndef USBCON #ifndef USBCON
// Define constants and variables for buffering incoming serial data. // Define constants and variables for buffering serial data.
// Use only powers of 2. // Use only 0 or powers of 2 greater than 1
// : [0, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, ...] // : [0, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, ...]
#ifndef RX_BUFFER_SIZE #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
// : [0, 4, 8, 16, 32, 64, 128, 256]
#ifndef TX_BUFFER_SIZE #ifndef TX_BUFFER_SIZE
#define TX_BUFFER_SIZE 32 #define TX_BUFFER_SIZE 32
#endif #endif
#else
// SERIAL_XON_XOFF not supported on USB-native devices
#undef SERIAL_XON_XOFF
#endif #endif
#endif // CONDITIONALS_ADV_H #endif // CONDITIONALS_ADV_H

View file

@ -253,17 +253,18 @@
*/ */
#ifndef USBCON #ifndef USBCON
#if ENABLED(SERIAL_XON_XOFF) && RX_BUFFER_SIZE < 1024 #if ENABLED(SERIAL_XON_XOFF) && RX_BUFFER_SIZE < 1024
#error "XON/XOFF requires RX_BUFFER_SIZE >= 1024 for reliable transfers without drops." #error "SERIAL_XON_XOFF requires RX_BUFFER_SIZE >= 1024 for reliable transfers without drops."
#endif #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
// 256 is the max limit due to uint8_t head and tail. Use only powers of 2. (...,16,32,64,128,256)
#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
#elif ENABLED(SERIAL_XON_XOFF)
#error "SERIAL_XON_XOFF is not supported on USB-native AVR devices."
#endif #endif
/** /**