Template struct simplification for serial (#11990)
This commit is contained in:
parent
348004c34f
commit
001f26b642
4 changed files with 38 additions and 68 deletions
|
@ -705,35 +705,35 @@
|
||||||
|
|
||||||
// Hookup ISR handlers
|
// Hookup ISR handlers
|
||||||
ISR(SERIAL_REGNAME(USART,SERIAL_PORT,_RX_vect)) {
|
ISR(SERIAL_REGNAME(USART,SERIAL_PORT,_RX_vect)) {
|
||||||
MarlinSerial<MarlinSerialCfg1>::store_rxd_char();
|
MarlinSerial<MarlinSerialCfg<SERIAL_PORT>>::store_rxd_char();
|
||||||
}
|
}
|
||||||
|
|
||||||
ISR(SERIAL_REGNAME(USART,SERIAL_PORT,_UDRE_vect)) {
|
ISR(SERIAL_REGNAME(USART,SERIAL_PORT,_UDRE_vect)) {
|
||||||
MarlinSerial<MarlinSerialCfg1>::_tx_udr_empty_irq();
|
MarlinSerial<MarlinSerialCfg<SERIAL_PORT>>::_tx_udr_empty_irq();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Preinstantiate
|
// Preinstantiate
|
||||||
template class MarlinSerial<MarlinSerialCfg1>;
|
template class MarlinSerial<MarlinSerialCfg<SERIAL_PORT>>;
|
||||||
|
|
||||||
// Instantiate
|
// Instantiate
|
||||||
MarlinSerial<MarlinSerialCfg1> customizedSerial1;
|
MarlinSerial<MarlinSerialCfg<SERIAL_PORT>> customizedSerial1;
|
||||||
|
|
||||||
#ifdef SERIAL_PORT_2
|
#ifdef SERIAL_PORT_2
|
||||||
|
|
||||||
// Hookup ISR handlers
|
// Hookup ISR handlers
|
||||||
ISR(SERIAL_REGNAME(USART,SERIAL_PORT_2,_RX_vect)) {
|
ISR(SERIAL_REGNAME(USART,SERIAL_PORT_2,_RX_vect)) {
|
||||||
MarlinSerial<MarlinSerialCfg2>::store_rxd_char();
|
MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>>::store_rxd_char();
|
||||||
}
|
}
|
||||||
|
|
||||||
ISR(SERIAL_REGNAME(USART,SERIAL_PORT_2,_UDRE_vect)) {
|
ISR(SERIAL_REGNAME(USART,SERIAL_PORT_2,_UDRE_vect)) {
|
||||||
MarlinSerial<MarlinSerialCfg2>::_tx_udr_empty_irq();
|
MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>>::_tx_udr_empty_irq();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Preinstantiate
|
// Preinstantiate
|
||||||
template class MarlinSerial<MarlinSerialCfg2>;
|
template class MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>>;
|
||||||
|
|
||||||
// Instantiate
|
// Instantiate
|
||||||
MarlinSerial<MarlinSerialCfg2> customizedSerial2;
|
MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>> customizedSerial2;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -255,9 +255,9 @@
|
||||||
static void printFloat(double, uint8_t);
|
static void printFloat(double, uint8_t);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Serial port configuration
|
template <uint8_t serial>
|
||||||
struct MarlinSerialCfg1 {
|
struct MarlinSerialCfg {
|
||||||
static constexpr int PORT = SERIAL_PORT;
|
static constexpr int PORT = serial;
|
||||||
static constexpr unsigned int RX_SIZE = RX_BUFFER_SIZE;
|
static constexpr unsigned int RX_SIZE = RX_BUFFER_SIZE;
|
||||||
static constexpr unsigned int TX_SIZE = TX_BUFFER_SIZE;
|
static constexpr unsigned int TX_SIZE = TX_BUFFER_SIZE;
|
||||||
static constexpr bool XONOFF = bSERIAL_XON_XOFF;
|
static constexpr bool XONOFF = bSERIAL_XON_XOFF;
|
||||||
|
@ -267,29 +267,14 @@
|
||||||
static constexpr bool RX_FRAMING_ERRORS = bSERIAL_STATS_RX_FRAMING_ERRORS;
|
static constexpr bool RX_FRAMING_ERRORS = bSERIAL_STATS_RX_FRAMING_ERRORS;
|
||||||
static constexpr bool MAX_RX_QUEUED = bSERIAL_STATS_MAX_RX_QUEUED;
|
static constexpr bool MAX_RX_QUEUED = bSERIAL_STATS_MAX_RX_QUEUED;
|
||||||
};
|
};
|
||||||
|
extern MarlinSerial<MarlinSerialCfg<SERIAL_PORT>> customizedSerial1;
|
||||||
extern MarlinSerial<MarlinSerialCfg1> customizedSerial1;
|
|
||||||
|
|
||||||
#ifdef SERIAL_PORT_2
|
#ifdef SERIAL_PORT_2
|
||||||
|
|
||||||
// Serial port configuration
|
extern MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>> customizedSerial2;
|
||||||
struct MarlinSerialCfg2 {
|
|
||||||
static constexpr int PORT = SERIAL_PORT_2;
|
|
||||||
static constexpr unsigned int RX_SIZE = RX_BUFFER_SIZE;
|
|
||||||
static constexpr unsigned int TX_SIZE = TX_BUFFER_SIZE;
|
|
||||||
static constexpr bool XONOFF = bSERIAL_XON_XOFF;
|
|
||||||
static constexpr bool EMERGENCYPARSER = bEMERGENCY_PARSER;
|
|
||||||
static constexpr bool DROPPED_RX = bSERIAL_STATS_DROPPED_RX;
|
|
||||||
static constexpr bool RX_OVERRUNS = bSERIAL_STATS_RX_BUFFER_OVERRUNS;
|
|
||||||
static constexpr bool RX_FRAMING_ERRORS = bSERIAL_STATS_RX_FRAMING_ERRORS;
|
|
||||||
static constexpr bool MAX_RX_QUEUED = bSERIAL_STATS_MAX_RX_QUEUED;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern MarlinSerial<MarlinSerialCfg2> customizedSerial2;
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#endif // !USBCON
|
#endif // !USBCON
|
||||||
|
|
||||||
// Use the UART for Bluetooth in AT90USB configurations
|
// Use the UART for Bluetooth in AT90USB configurations
|
||||||
|
|
|
@ -631,20 +631,20 @@ void MarlinSerial<Cfg>::printFloat(double number, uint8_t digits) {
|
||||||
#if SERIAL_PORT >= 0
|
#if SERIAL_PORT >= 0
|
||||||
|
|
||||||
// Preinstantiate
|
// Preinstantiate
|
||||||
template class MarlinSerial<MarlinSerialCfg1>;
|
template class MarlinSerial<MarlinSerialCfg<SERIAL_PORT>>;
|
||||||
|
|
||||||
// Instantiate
|
// Instantiate
|
||||||
MarlinSerial<MarlinSerialCfg1> customizedSerial1;
|
MarlinSerial<MarlinSerialCfg<SERIAL_PORT>> customizedSerial1;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef SERIAL_PORT_2
|
#ifdef SERIAL_PORT_2
|
||||||
|
|
||||||
// Preinstantiate
|
// Preinstantiate
|
||||||
template class MarlinSerial<MarlinSerialCfg2>;
|
template class MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>>;
|
||||||
|
|
||||||
// Instantiate
|
// Instantiate
|
||||||
MarlinSerial<MarlinSerialCfg2> customizedSerial2;
|
MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>> customizedSerial2;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MarlinSerial_Due.h - Hardware serial library for Arduino DUE
|
* MarlinSerial_Due.h - Hardware serial library for Arduino DUE
|
||||||
|
@ -26,9 +27,6 @@
|
||||||
* Based on MarlinSerial for AVR, copyright (c) 2006 Nicholas Zambetti. All right reserved.
|
* Based on MarlinSerial for AVR, copyright (c) 2006 Nicholas Zambetti. All right reserved.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef MARLINSERIAL_DUE_H
|
|
||||||
#define MARLINSERIAL_DUE_H
|
|
||||||
|
|
||||||
#include "../shared/MarlinSerial.h"
|
#include "../shared/MarlinSerial.h"
|
||||||
|
|
||||||
#include <WString.h>
|
#include <WString.h>
|
||||||
|
@ -159,11 +157,10 @@ private:
|
||||||
static void printFloat(double, uint8_t);
|
static void printFloat(double, uint8_t);
|
||||||
};
|
};
|
||||||
|
|
||||||
#if SERIAL_PORT >= 0
|
// Serial port configuration
|
||||||
|
template <uint8_t serial>
|
||||||
// Serial port configuration
|
struct MarlinSerialCfg {
|
||||||
struct MarlinSerialCfg1 {
|
static constexpr int PORT = serial;
|
||||||
static constexpr int PORT = SERIAL_PORT;
|
|
||||||
static constexpr unsigned int RX_SIZE = RX_BUFFER_SIZE;
|
static constexpr unsigned int RX_SIZE = RX_BUFFER_SIZE;
|
||||||
static constexpr unsigned int TX_SIZE = TX_BUFFER_SIZE;
|
static constexpr unsigned int TX_SIZE = TX_BUFFER_SIZE;
|
||||||
static constexpr bool XONOFF = bSERIAL_XON_XOFF;
|
static constexpr bool XONOFF = bSERIAL_XON_XOFF;
|
||||||
|
@ -172,29 +169,17 @@ private:
|
||||||
static constexpr bool RX_OVERRUNS = bSERIAL_STATS_RX_BUFFER_OVERRUNS;
|
static constexpr bool RX_OVERRUNS = bSERIAL_STATS_RX_BUFFER_OVERRUNS;
|
||||||
static constexpr bool RX_FRAMING_ERRORS = bSERIAL_STATS_RX_FRAMING_ERRORS;
|
static constexpr bool RX_FRAMING_ERRORS = bSERIAL_STATS_RX_FRAMING_ERRORS;
|
||||||
static constexpr bool MAX_RX_QUEUED = bSERIAL_STATS_MAX_RX_QUEUED;
|
static constexpr bool MAX_RX_QUEUED = bSERIAL_STATS_MAX_RX_QUEUED;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern MarlinSerial<MarlinSerialCfg1> customizedSerial1;
|
#if SERIAL_PORT >= 0
|
||||||
|
|
||||||
|
extern MarlinSerial<MarlinSerialCfg<SERIAL_PORT>> customizedSerial1;
|
||||||
|
|
||||||
#endif // SERIAL_PORT >= 0
|
#endif // SERIAL_PORT >= 0
|
||||||
|
|
||||||
#ifdef SERIAL_PORT_2
|
#ifdef SERIAL_PORT_2
|
||||||
|
|
||||||
// Serial port configuration
|
extern MarlinSerial<MarlinSerialCfg<SERIAL_PORT_2>> customizedSerial2;
|
||||||
struct MarlinSerialCfg2 {
|
|
||||||
static constexpr int PORT = SERIAL_PORT_2;
|
|
||||||
static constexpr unsigned int RX_SIZE = RX_BUFFER_SIZE;
|
|
||||||
static constexpr unsigned int TX_SIZE = TX_BUFFER_SIZE;
|
|
||||||
static constexpr bool XONOFF = bSERIAL_XON_XOFF;
|
|
||||||
static constexpr bool EMERGENCYPARSER = bEMERGENCY_PARSER;
|
|
||||||
static constexpr bool DROPPED_RX = bSERIAL_STATS_DROPPED_RX;
|
|
||||||
static constexpr bool RX_OVERRUNS = bSERIAL_STATS_RX_BUFFER_OVERRUNS;
|
|
||||||
static constexpr bool RX_FRAMING_ERRORS = bSERIAL_STATS_RX_FRAMING_ERRORS;
|
|
||||||
static constexpr bool MAX_RX_QUEUED = bSERIAL_STATS_MAX_RX_QUEUED;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern MarlinSerial<MarlinSerialCfg2> customizedSerial2;
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // MARLINSERIAL_DUE_H
|
|
||||||
|
|
Reference in a new issue