|
| #define | DEBUGGING(F) (marlin_debug_flags & (MARLIN_DEBUG_## F)) |
| |
| #define | SERIAL_BOTH 0x7F |
| |
| #define | _PORT_REDIRECT(n, p) NOOP |
| |
| #define | _PORT_RESTORE(n) NOOP |
| |
| #define | SERIAL_OUT(WHAT, V...) (void)MYSERIAL0.WHAT(V) |
| |
| #define | SERIAL_ASSERT(P) NOOP |
| |
| #define | PORT_REDIRECT(p) _PORT_REDIRECT(1,p) |
| |
| #define | PORT_RESTORE() _PORT_RESTORE(1) |
| |
| #define | SERIAL_CHAR(x) SERIAL_OUT(write, x) |
| |
| #define | SERIAL_ECHO(x) SERIAL_OUT(print, x) |
| |
| #define | SERIAL_ECHO_F(V...) SERIAL_OUT(print, V) |
| |
| #define | SERIAL_ECHOLN(x) SERIAL_OUT(println, x) |
| |
| #define | SERIAL_PRINT(x, b) SERIAL_OUT(print, x, b) |
| |
| #define | SERIAL_PRINTLN(x, b) SERIAL_OUT(println, x, b) |
| |
| #define | SERIAL_PRINTF(V...) SERIAL_OUT(printf, V) |
| |
| #define | SERIAL_FLUSH() SERIAL_OUT(flush) |
| |
| #define | SERIAL_FLUSHTX() SERIAL_OUT(flushTX) |
| |
| #define | __SEP_N(N, V...) _SEP_##N(V) |
| |
| #define | _SEP_N(N, V...) __SEP_N(N,V) |
| |
| #define | _SEP_1(PRE) SERIAL_ECHOPGM(PRE) |
| |
| #define | _SEP_2(PRE, V) serial_echopair_PGM(PSTR(PRE),V) |
| |
| #define | _SEP_3(a, b, c) do{ _SEP_2(a,b); SERIAL_ECHOPGM(c); }while(0) |
| |
| #define | _SEP_4(a, b, V...) do{ _SEP_2(a,b); _SEP_2(V); }while(0) |
| |
| #define | _SEP_5(a, b, V...) do{ _SEP_2(a,b); _SEP_3(V); }while(0) |
| |
| #define | _SEP_6(a, b, V...) do{ _SEP_2(a,b); _SEP_4(V); }while(0) |
| |
| #define | _SEP_7(a, b, V...) do{ _SEP_2(a,b); _SEP_5(V); }while(0) |
| |
| #define | _SEP_8(a, b, V...) do{ _SEP_2(a,b); _SEP_6(V); }while(0) |
| |
| #define | _SEP_9(a, b, V...) do{ _SEP_2(a,b); _SEP_7(V); }while(0) |
| |
| #define | _SEP_10(a, b, V...) do{ _SEP_2(a,b); _SEP_8(V); }while(0) |
| |
| #define | _SEP_11(a, b, V...) do{ _SEP_2(a,b); _SEP_9(V); }while(0) |
| |
| #define | _SEP_12(a, b, V...) do{ _SEP_2(a,b); _SEP_10(V); }while(0) |
| |
| #define | _SEP_13(a, b, V...) do{ _SEP_2(a,b); _SEP_11(V); }while(0) |
| |
| #define | _SEP_14(a, b, V...) do{ _SEP_2(a,b); _SEP_12(V); }while(0) |
| |
| #define | _SEP_15(a, b, V...) do{ _SEP_2(a,b); _SEP_13(V); }while(0) |
| |
| #define | _SEP_16(a, b, V...) do{ _SEP_2(a,b); _SEP_14(V); }while(0) |
| |
| #define | _SEP_17(a, b, V...) do{ _SEP_2(a,b); _SEP_15(V); }while(0) |
| |
| #define | _SEP_18(a, b, V...) do{ _SEP_2(a,b); _SEP_16(V); }while(0) |
| |
| #define | _SEP_19(a, b, V...) do{ _SEP_2(a,b); _SEP_17(V); }while(0) |
| |
| #define | _SEP_20(a, b, V...) do{ _SEP_2(a,b); _SEP_18(V); }while(0) |
| |
| #define | _SEP_21(a, b, V...) do{ _SEP_2(a,b); _SEP_19(V); }while(0) |
| |
| #define | _SEP_22(a, b, V...) do{ _SEP_2(a,b); _SEP_20(V); }while(0) |
| |
| #define | _SEP_23(a, b, V...) do{ _SEP_2(a,b); _SEP_21(V); }while(0) |
| |
| #define | _SEP_24(a, b, V...) do{ _SEP_2(a,b); _SEP_22(V); }while(0) |
| |
| #define | SERIAL_ECHOPAIR(V...) _SEP_N(NUM_ARGS(V),V) |
| |
| #define | __SELP_N(N, V...) _SELP_##N(V) |
| |
| #define | _SELP_N(N, V...) __SELP_N(N,V) |
| |
| #define | _SELP_1(PRE) SERIAL_ECHOLNPGM(PRE) |
| |
| #define | _SELP_2(PRE, V) do{ serial_echopair_PGM(PSTR(PRE),V); SERIAL_EOL(); }while(0) |
| |
| #define | _SELP_3(a, b, c) do{ _SEP_2(a,b); SERIAL_ECHOLNPGM(c); }while(0) |
| |
| #define | _SELP_4(a, b, V...) do{ _SEP_2(a,b); _SELP_2(V); }while(0) |
| |
| #define | _SELP_5(a, b, V...) do{ _SEP_2(a,b); _SELP_3(V); }while(0) |
| |
| #define | _SELP_6(a, b, V...) do{ _SEP_2(a,b); _SELP_4(V); }while(0) |
| |
| #define | _SELP_7(a, b, V...) do{ _SEP_2(a,b); _SELP_5(V); }while(0) |
| |
| #define | _SELP_8(a, b, V...) do{ _SEP_2(a,b); _SELP_6(V); }while(0) |
| |
| #define | _SELP_9(a, b, V...) do{ _SEP_2(a,b); _SELP_7(V); }while(0) |
| |
| #define | _SELP_10(a, b, V...) do{ _SEP_2(a,b); _SELP_8(V); }while(0) |
| |
| #define | _SELP_11(a, b, V...) do{ _SEP_2(a,b); _SELP_9(V); }while(0) |
| |
| #define | _SELP_12(a, b, V...) do{ _SEP_2(a,b); _SELP_10(V); }while(0) |
| |
| #define | _SELP_13(a, b, V...) do{ _SEP_2(a,b); _SELP_11(V); }while(0) |
| |
| #define | _SELP_14(a, b, V...) do{ _SEP_2(a,b); _SELP_12(V); }while(0) |
| |
| #define | _SELP_15(a, b, V...) do{ _SEP_2(a,b); _SELP_13(V); }while(0) |
| |
| #define | _SELP_16(a, b, V...) do{ _SEP_2(a,b); _SELP_14(V); }while(0) |
| |
| #define | _SELP_17(a, b, V...) do{ _SEP_2(a,b); _SELP_15(V); }while(0) |
| |
| #define | _SELP_18(a, b, V...) do{ _SEP_2(a,b); _SELP_16(V); }while(0) |
| |
| #define | _SELP_19(a, b, V...) do{ _SEP_2(a,b); _SELP_17(V); }while(0) |
| |
| #define | _SELP_20(a, b, V...) do{ _SEP_2(a,b); _SELP_18(V); }while(0) |
| |
| #define | _SELP_21(a, b, V...) do{ _SEP_2(a,b); _SELP_19(V); }while(0) |
| |
| #define | _SELP_22(a, b, V...) do{ _SEP_2(a,b); _SELP_20(V); }while(0) |
| |
| #define | _SELP_23(a, b, V...) do{ _SEP_2(a,b); _SELP_21(V); }while(0) |
| |
| #define | _SELP_24(a, b, V...) do{ _SEP_2(a,b); _SELP_22(V); }while(0) |
| |
| #define | SERIAL_ECHOLNPAIR(V...) _SELP_N(NUM_ARGS(V),V) |
| |
| #define | __SLST_N(N, V...) _SLST_##N(V) |
| |
| #define | _SLST_N(N, V...) __SLST_N(N,V) |
| |
| #define | _SLST_1(a) SERIAL_ECHO(a) |
| |
| #define | _SLST_2(a, b) do{ SERIAL_ECHO(a); SERIAL_ECHOPAIR(", ",b); }while(0) |
| |
| #define | _SLST_3(a, b, c) do{ SERIAL_ECHO(a); _SEP_2(", ",b); _SLST_1(c); }while(0) |
| |
| #define | _SLST_4(a, b, V...) do{ SERIAL_ECHO(a); _SEP_2(", ",b); _SLST_2(V); }while(0) |
| |
| #define | _SLST_5(a, b, V...) do{ SERIAL_ECHO(a); _SEP_2(", ",b); _SLST_3(V); }while(0) |
| |
| #define | _SLST_6(a, b, V...) do{ SERIAL_ECHO(a); _SEP_2(", ",b); _SLST_4(V); }while(0) |
| |
| #define | _SLST_7(a, b, V...) do{ SERIAL_ECHO(a); _SEP_2(", ",b); _SLST_5(V); }while(0) |
| |
| #define | _SLST_8(a, b, V...) do{ SERIAL_ECHO(a); _SEP_2(", ",b); _SLST_6(V); }while(0) |
| |
| #define | _SLST_9(a, b, V...) do{ SERIAL_ECHO(a); _SEP_2(", ",b); _SLST_7(V); }while(0) |
| |
| #define | _SLST_10(a, b, V...) do{ SERIAL_ECHO(a); _SEP_2(", ",b); _SLST_8(V); }while(0) |
| |
| #define | _SLST_11(a, b, V...) do{ SERIAL_ECHO(a); _SEP_2(", ",b); _SLST_9(V); }while(0) |
| |
| #define | _SLST_12(a, b, V...) do{ SERIAL_ECHO(a); _SEP_2(", ",b); _SLST_10(V); }while(0) |
| |
| #define | _SLST_13(a, b, V...) do{ SERIAL_ECHO(a); _SEP_2(", ",b); _SLST_11(V); }while(0) |
| |
| #define | _SLST_14(a, b, V...) do{ SERIAL_ECHO(a); _SEP_2(", ",b); _SLST_12(V); }while(0) |
| |
| #define | _SLST_15(a, b, V...) do{ SERIAL_ECHO(a); _SEP_2(", ",b); _SLST_13(V); }while(0) |
| |
| #define | _SLST_16(a, b, V...) do{ SERIAL_ECHO(a); _SEP_2(", ",b); _SLST_14(V); }while(0) |
| |
| #define | _SLST_17(a, b, V...) do{ SERIAL_ECHO(a); _SEP_2(", ",b); _SLST_15(V); }while(0) |
| |
| #define | _SLST_18(a, b, V...) do{ SERIAL_ECHO(a); _SEP_2(", ",b); _SLST_16(V); }while(0) |
| |
| #define | _SLST_19(a, b, V...) do{ SERIAL_ECHO(a); _SEP_2(", ",b); _SLST_17(V); }while(0) |
| |
| #define | _SLST_20(a, b, V...) do{ SERIAL_ECHO(a); _SEP_2(", ",b); _SLST_18(V); }while(0) |
| |
| #define | SERIAL_ECHOLIST(pre, V...) do{ SERIAL_ECHOPGM(pre); _SLST_N(NUM_ARGS(V),V); }while(0) |
| |
| #define | SERIAL_ECHOLIST_N(N, V...) _SLST_N(N,LIST_N(N,V)) |
| |
| #define | SERIAL_ECHOPGM(S) (serialprintPGM(PSTR(S))) |
| |
| #define | SERIAL_ECHOLNPGM(S) (serialprintPGM(PSTR(S "\n"))) |
| |
| #define | SERIAL_ECHOPAIR_F(S, V...) do{ SERIAL_ECHOPGM(S); SERIAL_ECHO_F(V); }while(0) |
| |
| #define | SERIAL_ECHOLNPAIR_F(V...) do{ SERIAL_ECHOPAIR_F(V); SERIAL_EOL(); }while(0) |
| |
| #define | SERIAL_ECHO_START() serial_echo_start() |
| |
| #define | SERIAL_ERROR_START() serial_error_start() |
| |
| #define | SERIAL_EOL() SERIAL_CHAR('\n') |
| |
| #define | SERIAL_ECHO_MSG(S) do{ SERIAL_ECHO_START(); SERIAL_ECHOLNPGM(S); }while(0) |
| |
| #define | SERIAL_ERROR_MSG(S) do{ SERIAL_ERROR_START(); SERIAL_ECHOLNPGM(S); }while(0) |
| |
| #define | SERIAL_ECHO_SP(C) serial_spaces(C) |
| |
| #define | SERIAL_ECHO_TERNARY(TF, PRE, ON, OFF, POST) serial_ternary(TF, PSTR(PRE), PSTR(ON), PSTR(OFF), PSTR(POST)) |
| |
| #define | SERIAL_POS(SUFFIX, VAR) do { print_xyz(VAR, PSTR(" " STRINGIFY(VAR) "="), PSTR(" : " SUFFIX "\n")); }while(0) |
| |
| #define | SERIAL_XYZ(PREFIX, V...) do { print_xyz(V, PSTR(PREFIX), nullptr); }while(0) |
| |