From ee40d7884c8e5b2323a534effa05beb0adfb1fe5 Mon Sep 17 00:00:00 2001 From: Rob Giseburt Date: Mon, 18 Nov 2019 11:07:28 -0600 Subject: [PATCH] Work to allow `AXES == 6` or `9`, `TOOLS` to be `5` or `32`, and to allow disabling `__USER_DATA` Also added `HAS_HOBBY_SERVO_MOTOR` where, if defined, the Quintic will output motor 6 to a PWM --- g2core/board/gquintic/board_stepper.cpp | 10 ++- g2core/board/gquintic/board_stepper.h | 4 ++ g2core/board/gquintic/gquintic-c-pinout.h | 2 +- g2core/board/gquintic/hardware.h | 11 ++- g2core/canonical_machine.cpp | 21 +++++- g2core/config_app.cpp | 82 ++++++++++++++++++++++- g2core/g2core.h | 23 ++++++- g2core/gcode_parser.cpp | 2 + g2core/plan_line.cpp | 2 + g2core/stepper.cpp | 8 +++ g2core/util.h | 7 +- 11 files changed, 158 insertions(+), 14 deletions(-) diff --git a/g2core/board/gquintic/board_stepper.cpp b/g2core/board/gquintic/board_stepper.cpp index f9e4a2e0..57e99858 100644 --- a/g2core/board/gquintic/board_stepper.cpp +++ b/g2core/board/gquintic/board_stepper.cpp @@ -53,9 +53,12 @@ HOT_DATA Trinamic2130 motor_4 {spiBus, spiCSPinMux.getCS(0)}; +#if HAS_HOBBY_SERVO_MOTOR HOT_DATA StepDirHobbyServo motor_5; - Stepper* const Motors[MOTORS] = {&motor_1, &motor_2, &motor_3, &motor_4, &motor_5}; +#else +Stepper* const Motors[MOTORS] = {&motor_1, &motor_2, &motor_3, &motor_4}; +#endif #endif // 'C' #if QUINTIC_REVISION == 'D' @@ -84,9 +87,12 @@ HOT_DATA Trinamic2130 motor_5 {spiBus, spiCSPinMux.getCS(0)}; +#if HAS_HOBBY_SERVO_MOTOR HOT_DATA StepDirHobbyServo motor_6; - Stepper* const Motors[MOTORS] = {&motor_1, &motor_2, &motor_3, &motor_4, &motor_5, &motor_6}; +#else +Stepper* const Motors[MOTORS] = {&motor_1, &motor_2, &motor_3, &motor_4, &motor_5}; +#endif #endif // 'D' #if (KINEMATICS == KINE_FOUR_CABLE) diff --git a/g2core/board/gquintic/board_stepper.h b/g2core/board/gquintic/board_stepper.h index 37859058..e7c6974f 100644 --- a/g2core/board/gquintic/board_stepper.h +++ b/g2core/board/gquintic/board_stepper.h @@ -55,7 +55,9 @@ extern Trinamic2130 motor_4; +#if HAS_HOBBY_SERVO_MOTOR extern StepDirHobbyServo motor_5; +#endif #endif // 'C' #if QUINTIC_REVISION == 'D' @@ -88,7 +90,9 @@ extern Trinamic2130 motor_5; +#if HAS_HOBBY_SERVO_MOTOR extern StepDirHobbyServo motor_6; +#endif #endif // 'D' extern Stepper* const Motors[MOTORS]; diff --git a/g2core/board/gquintic/gquintic-c-pinout.h b/g2core/board/gquintic/gquintic-c-pinout.h index ae7b7da3..08cfc856 100755 --- a/g2core/board/gquintic/gquintic-c-pinout.h +++ b/g2core/board/gquintic/gquintic-c-pinout.h @@ -66,7 +66,7 @@ */ -#include +// #include // We don't have all of the inputs, so we have to indicate as much: #define INPUT1_AVAILABLE 1 diff --git a/g2core/board/gquintic/hardware.h b/g2core/board/gquintic/hardware.h index 8671bab1..14c6a0c6 100644 --- a/g2core/board/gquintic/hardware.h +++ b/g2core/board/gquintic/hardware.h @@ -45,12 +45,17 @@ // These must be defines (not enums) so expressions like this: // #if (MOTORS >= 6) will work -#if QUINTIC_REVISION == 'C' -#define MOTORS 5 // number of motors on the board - 4 Trinamics + 1 servo +#ifndef HAS_HOBBY_SERVO_MOTOR +#define HAS_HOBBY_SERVO_MOTOR 0 +#endif + +#if QUINTIC_REVISION == 'C' or !HAS_HOBBY_SERVO_MOTOR +#define MOTORS 5 // number of motors on the board - 5Trinamics OR 4 Trinamics + 1 servo #else #define MOTORS 6 // number of motors on the board - 5 Trinamics + 1 servo #endif #define PWMS 2 // number of PWM channels supported the hardware +#define AXES 6 // axes to support -- must be 6 or 9 #define MOTOR_1_IS_TRINAMIC #define MOTOR_2_IS_TRINAMIC @@ -127,7 +132,7 @@ using Motate::OutputPin; // #define MIN_SEGMENT_MS ((float)0.125) // S70 can handle much much smaller segements #define MIN_SEGMENT_MS ((float)0.5) // S70 can handle much much smaller segements -#define PLANNER_QUEUE_SIZE (60) +// #define PLANNER_QUEUE_SIZE (60) /**** Motate Definitions ****/ diff --git a/g2core/canonical_machine.cpp b/g2core/canonical_machine.cpp index fa175521..3862d926 100644 --- a/g2core/canonical_machine.cpp +++ b/g2core/canonical_machine.cpp @@ -581,7 +581,7 @@ float cm_get_display_position(const GCodeState_t *gcode_state, const uint8_t axi } else { position = mp_get_runtime_display_position(axis); } - if (axis <= AXIS_W) { // linears + if (axis <= LAST_LINEAR_AXIS) { // linears if (gcode_state->units_mode == INCHES) { position /= MM_PER_INCH; } @@ -639,7 +639,11 @@ stat_t cm_deferred_write_callback() nvObj_t nv; for (uint8_t i=1; i<=COORDS; i++) { for (uint8_t j=0; jcoord_offset[i][j]; nv_persist(&nv); // Note: nv_persist() only writes values that have changed @@ -827,7 +831,7 @@ void cm_set_model_target(const float target[], const bool flags[]) copy_vector(cm->gm.target, cm->gmx.position); // process linear axes (XYZUVW) first - for (axis=AXIS_X; axis<=AXIS_W; axis++) { + for (axis=AXIS_X; axis<=LAST_LINEAR_AXIS; axis++) { if (!flags[axis] || cm->a[axis].axis_mode == AXIS_DISABLED) { continue; // skip axis if not flagged for update or its disabled } else if ((cm->a[axis].axis_mode == AXIS_STANDARD) || (cm->a[axis].axis_mode == AXIS_INHIBITED)) { @@ -1250,7 +1254,9 @@ stat_t cm_straight_traverse(const float *target, const bool *flags, const uint8_ // it's legal for a G0 to have no axis words but we don't want to process it if (!(flags[AXIS_X] | flags[AXIS_Y] | flags[AXIS_Z] | +#if (AXES == 9) flags[AXIS_U] | flags[AXIS_V] | flags[AXIS_W] | +#endif flags[AXIS_A] | flags[AXIS_B] | flags[AXIS_C])) { return(STAT_OK); } @@ -1409,7 +1415,9 @@ stat_t cm_straight_feed(const float *target, const bool *flags, const uint8_t mo // it's legal for a G0 to have no axis words but we don't want to process it if (!(flags[AXIS_X] | flags[AXIS_Y] | flags[AXIS_Z] | +#if (AXES == 9) flags[AXIS_U] | flags[AXIS_V] | flags[AXIS_W] | +#endif flags[AXIS_A] | flags[AXIS_B] | flags[AXIS_C])) { return(STAT_OK); } @@ -1908,8 +1916,11 @@ static int8_t _axis(const nvObj_t *nv) // otherwise it's an axis. Or undefined, which is usually a global. char *ptr; +#if (AXES == 9) char axes[] = {"xyzuvwabc"}; - +#else + char axes[] = {"xyzabc"}; +#endif if ((ptr = strchr(axes, c)) == NULL) { // not NULL indicates a prefixed axis c = *(cfgArray[nv->index].token + strlen(cfgArray[nv->index].token) -1); // get the last character if ((ptr = strchr(axes, c)) == NULL) { // test for a postfixed axis @@ -1933,7 +1944,11 @@ cmAxisType cm_get_axis_type(const nvObj_t *nv) char cm_get_axis_char(const int8_t axis) // Uses internal axis numbering { +#if (AXES == 9) char axis_char[] = "XYZUVWABC"; +#else + char axis_char[] = "XYZABC"; +#endif if ((axis < 0) || (axis > AXES)) return (' '); return (axis_char[axis]); } diff --git a/g2core/config_app.cpp b/g2core/config_app.cpp index 858c6172..a5ddd85e 100644 --- a/g2core/config_app.cpp +++ b/g2core/config_app.cpp @@ -479,6 +479,7 @@ const cfgItem_t cfgArray[] = { { "z","zlb",_fipc, 5, cm_print_lb, cm_get_lb, cm_set_lb, nullptr, Z_LATCH_BACKOFF }, { "z","zzb",_fipc, 5, cm_print_zb, cm_get_zb, cm_set_zb, nullptr, Z_ZERO_BACKOFF }, +#if (AXES == 9) { "u","uam",_iip, 0, cm_print_am, cm_get_am, cm_set_am, nullptr, U_AXIS_MODE }, { "u","uvm",_fipc, 0, cm_print_vm, cm_get_vm, cm_set_vm, nullptr, U_VELOCITY_MAX }, { "u","ufr",_fipc, 0, cm_print_fr, cm_get_fr, cm_set_fr, nullptr, U_FEEDRATE_MAX }, @@ -520,6 +521,7 @@ const cfgItem_t cfgArray[] = { { "w","wlv",_fipc, 2, cm_print_lv, cm_get_lv, cm_set_lv, nullptr, W_LATCH_VELOCITY }, { "w","wlb",_fipc, 5, cm_print_lb, cm_get_lb, cm_set_lb, nullptr, W_LATCH_BACKOFF }, { "w","wzb",_fipc, 5, cm_print_zb, cm_get_zb, cm_set_zb, nullptr, W_ZERO_BACKOFF }, +#endif { "a","aam",_iip, 0, cm_print_am, cm_get_am, cm_set_am, nullptr, A_AXIS_MODE }, { "a","avm",_fipc, 0, cm_print_vm, cm_get_vm, cm_set_vm, nullptr, A_VELOCITY_MAX }, @@ -1133,9 +1135,11 @@ const cfgItem_t cfgArray[] = { { "tof","tofx",_fipc, 5, cm_print_cofs, cm_get_tof, cm_set_tof, nullptr, 0 }, { "tof","tofy",_fipc, 5, cm_print_cofs, cm_get_tof, cm_set_tof, nullptr, 0 }, { "tof","tofz",_fipc, 5, cm_print_cofs, cm_get_tof, cm_set_tof, nullptr, 0 }, +#if (AXES == 9) { "tof","tofu",_fipc, 5, cm_print_cofs, cm_get_tof, cm_set_tof, nullptr, 0 }, { "tof","tofv",_fipc, 5, cm_print_cofs, cm_get_tof, cm_set_tof, nullptr, 0 }, { "tof","tofw",_fipc, 5, cm_print_cofs, cm_get_tof, cm_set_tof, nullptr, 0 }, +#endif { "tof","tofa",_fipc, 5, cm_print_cofs, cm_get_tof, cm_set_tof, nullptr, 0 }, { "tof","tofb",_fipc, 5, cm_print_cofs, cm_get_tof, cm_set_tof, nullptr, 0 }, { "tof","tofc",_fipc, 5, cm_print_cofs, cm_get_tof, cm_set_tof, nullptr, 0 }, @@ -1144,9 +1148,11 @@ const cfgItem_t cfgArray[] = { { "tt1","tt1x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_X_OFFSET }, { "tt1","tt1y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_Y_OFFSET }, { "tt1","tt1z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_Z_OFFSET }, +#if (AXES == 9) { "tt1","tt1u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_U_OFFSET }, { "tt1","tt1v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_V_OFFSET }, { "tt1","tt1w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_W_OFFSET }, +#endif { "tt1","tt1a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_A_OFFSET }, { "tt1","tt1b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_B_OFFSET }, { "tt1","tt1c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_C_OFFSET }, @@ -1154,9 +1160,11 @@ const cfgItem_t cfgArray[] = { { "tt2","tt2x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT2_X_OFFSET }, { "tt2","tt2y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT2_Y_OFFSET }, { "tt2","tt2z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT2_Z_OFFSET }, +#if (AXES == 9) { "tt2","tt2u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT2_U_OFFSET }, { "tt2","tt2v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT2_V_OFFSET }, { "tt2","tt2w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT2_W_OFFSET }, +#endif { "tt2","tt2a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT2_A_OFFSET }, { "tt2","tt2b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT2_B_OFFSET }, { "tt2","tt2c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT2_C_OFFSET }, @@ -1164,9 +1172,11 @@ const cfgItem_t cfgArray[] = { { "tt3","tt3x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT3_X_OFFSET }, { "tt3","tt3y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT3_Y_OFFSET }, { "tt3","tt3z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT3_Z_OFFSET }, +#if (AXES == 9) { "tt3","tt3u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT3_U_OFFSET }, { "tt3","tt3v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT3_V_OFFSET }, { "tt3","tt3w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT3_W_OFFSET }, +#endif { "tt3","tt3a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT3_A_OFFSET }, { "tt3","tt3b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT3_B_OFFSET }, { "tt3","tt3c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT1_C_OFFSET }, @@ -1174,9 +1184,11 @@ const cfgItem_t cfgArray[] = { { "tt4","tt4x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT4_X_OFFSET }, { "tt4","tt4y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT4_Y_OFFSET }, { "tt4","tt4z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT4_Z_OFFSET }, +#if (AXES == 9) { "tt4","tt4u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT4_U_OFFSET }, { "tt4","tt4v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT4_V_OFFSET }, { "tt4","tt4w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT4_W_OFFSET }, +#endif { "tt4","tt4a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT4_A_OFFSET }, { "tt4","tt4b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT4_B_OFFSET }, { "tt4","tt4c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT4_C_OFFSET }, @@ -1184,19 +1196,24 @@ const cfgItem_t cfgArray[] = { { "tt5","tt5x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT5_X_OFFSET }, { "tt5","tt5y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT5_Y_OFFSET }, { "tt5","tt5z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT5_Z_OFFSET }, +#if (AXES == 9) { "tt5","tt5u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT5_U_OFFSET }, { "tt5","tt5v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT5_V_OFFSET }, { "tt5","tt5w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT5_W_OFFSET }, +#endif { "tt5","tt5a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT5_A_OFFSET }, { "tt5","tt5b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT5_B_OFFSET }, { "tt5","tt5c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT5_C_OFFSET }, +#if (TOOLS > 5) { "tt6","tt6x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT6_X_OFFSET }, { "tt6","tt6y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT6_Y_OFFSET }, { "tt6","tt6z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT6_Z_OFFSET }, +#if (AXES == 9) { "tt6","tt6u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT6_U_OFFSET }, { "tt6","tt6v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT6_V_OFFSET }, { "tt6","tt6w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT6_W_OFFSET }, +#endif { "tt6","tt6a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT6_A_OFFSET }, { "tt6","tt6b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT6_B_OFFSET }, { "tt6","tt6c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT6_C_OFFSET }, @@ -1204,9 +1221,11 @@ const cfgItem_t cfgArray[] = { { "tt7","tt7x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT7_X_OFFSET }, { "tt7","tt7y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT7_Y_OFFSET }, { "tt7","tt7z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT7_Z_OFFSET }, +#if (AXES == 9) { "tt7","tt7u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT7_U_OFFSET }, { "tt7","tt7v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT7_V_OFFSET }, { "tt7","tt7w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT7_W_OFFSET }, +#endif { "tt7","tt7a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT7_A_OFFSET }, { "tt7","tt7b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT7_B_OFFSET }, { "tt7","tt7c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT7_C_OFFSET }, @@ -1214,9 +1233,11 @@ const cfgItem_t cfgArray[] = { { "tt8","tt8x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT8_X_OFFSET }, { "tt8","tt8y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT8_Y_OFFSET }, { "tt8","tt8z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT8_Z_OFFSET }, +#if (AXES == 9) { "tt8","tt8u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT8_U_OFFSET }, { "tt8","tt8v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT8_V_OFFSET }, { "tt8","tt8w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT8_W_OFFSET }, +#endif { "tt8","tt8a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT8_A_OFFSET }, { "tt8","tt8b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT8_B_OFFSET }, { "tt8","tt8c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT8_C_OFFSET }, @@ -1224,9 +1245,11 @@ const cfgItem_t cfgArray[] = { { "tt9","tt9x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT9_X_OFFSET }, { "tt9","tt9y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT9_Y_OFFSET }, { "tt9","tt9z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT9_Z_OFFSET }, +#if (AXES == 9) { "tt9","tt9u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT9_U_OFFSET }, { "tt9","tt9v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT9_V_OFFSET }, { "tt9","tt9w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT9_W_OFFSET }, +#endif { "tt9","tt9a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT9_A_OFFSET }, { "tt9","tt9b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT9_B_OFFSET }, { "tt9","tt9c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT9_C_OFFSET }, @@ -1234,9 +1257,11 @@ const cfgItem_t cfgArray[] = { { "tt10","tt10x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT10_X_OFFSET }, { "tt10","tt10y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT10_Y_OFFSET }, { "tt10","tt10z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT10_Z_OFFSET }, +#if (AXES == 9) { "tt10","tt10u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT10_U_OFFSET }, { "tt10","tt10v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT10_V_OFFSET }, { "tt10","tt10w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT10_W_OFFSET }, +#endif { "tt10","tt10a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT10_A_OFFSET }, { "tt10","tt10b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT10_B_OFFSET }, { "tt10","tt10c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT10_C_OFFSET }, @@ -1244,9 +1269,11 @@ const cfgItem_t cfgArray[] = { { "tt11","tt11x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT11_X_OFFSET }, { "tt11","tt11y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT11_Y_OFFSET }, { "tt11","tt11z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT11_Z_OFFSET }, +#if (AXES == 9) { "tt11","tt11u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT11_U_OFFSET }, { "tt11","tt11v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT11_V_OFFSET }, { "tt11","tt11w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT11_W_OFFSET }, +#endif { "tt11","tt11a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT11_A_OFFSET }, { "tt11","tt11b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT11_B_OFFSET }, { "tt11","tt11c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT11_C_OFFSET }, @@ -1254,9 +1281,11 @@ const cfgItem_t cfgArray[] = { { "tt12","tt12x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT12_X_OFFSET }, { "tt12","tt12y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT12_Y_OFFSET }, { "tt12","tt12z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT12_Z_OFFSET }, +#if (AXES == 9) { "tt12","tt12u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT12_U_OFFSET }, { "tt12","tt12v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT12_V_OFFSET }, { "tt12","tt12w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT12_W_OFFSET }, +#endif { "tt12","tt12a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT12_A_OFFSET }, { "tt12","tt12b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT12_B_OFFSET }, { "tt12","tt12c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT12_C_OFFSET }, @@ -1264,9 +1293,11 @@ const cfgItem_t cfgArray[] = { { "tt13","tt13x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT13_X_OFFSET }, { "tt13","tt13y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT13_Y_OFFSET }, { "tt13","tt13z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT13_Z_OFFSET }, +#if (AXES == 9) { "tt13","tt13u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT13_U_OFFSET }, { "tt13","tt13v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT13_V_OFFSET }, { "tt13","tt13w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT13_W_OFFSET }, +#endif { "tt13","tt13a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT13_A_OFFSET }, { "tt13","tt13b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT13_B_OFFSET }, { "tt13","tt13c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT13_C_OFFSET }, @@ -1274,9 +1305,11 @@ const cfgItem_t cfgArray[] = { { "tt14","tt14x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT14_X_OFFSET }, { "tt14","tt14y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT14_Y_OFFSET }, { "tt14","tt14z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT14_Z_OFFSET }, +#if (AXES == 9) { "tt14","tt14u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT14_U_OFFSET }, { "tt14","tt14v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT14_V_OFFSET }, { "tt14","tt14w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT14_W_OFFSET }, +#endif { "tt14","tt14a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT14_A_OFFSET }, { "tt14","tt14b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT14_B_OFFSET }, { "tt14","tt14c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT14_C_OFFSET }, @@ -1284,9 +1317,11 @@ const cfgItem_t cfgArray[] = { { "tt15","tt15x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT15_X_OFFSET }, { "tt15","tt15y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT15_Y_OFFSET }, { "tt15","tt15z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT15_Z_OFFSET }, +#if (AXES == 9) { "tt15","tt15u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT15_U_OFFSET }, { "tt15","tt15v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT15_V_OFFSET }, { "tt15","tt15w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT15_W_OFFSET }, +#endif { "tt15","tt15a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT15_A_OFFSET }, { "tt15","tt15b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT15_B_OFFSET }, { "tt15","tt15c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT15_C_OFFSET }, @@ -1294,9 +1329,11 @@ const cfgItem_t cfgArray[] = { { "tt16","tt16x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT16_X_OFFSET }, { "tt16","tt16y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT16_Y_OFFSET }, { "tt16","tt16z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT16_Z_OFFSET }, +#if (AXES == 9) { "tt16","tt16u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT16_U_OFFSET }, { "tt16","tt16v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT16_V_OFFSET }, { "tt16","tt16w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT16_W_OFFSET }, +#endif { "tt16","tt16a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT16_A_OFFSET }, { "tt16","tt16b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT16_B_OFFSET }, { "tt16","tt16c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT16_C_OFFSET }, @@ -1304,9 +1341,11 @@ const cfgItem_t cfgArray[] = { { "tt17","tt17x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT17_X_OFFSET }, { "tt17","tt17y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT17_Y_OFFSET }, { "tt17","tt17z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT17_Z_OFFSET }, +#if (AXES == 9) { "tt17","tt17u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT17_U_OFFSET }, { "tt17","tt17v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT17_V_OFFSET }, { "tt17","tt17w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT17_W_OFFSET }, +#endif { "tt17","tt17a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT17_A_OFFSET }, { "tt17","tt17b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT17_B_OFFSET }, { "tt17","tt17c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT17_C_OFFSET }, @@ -1314,9 +1353,11 @@ const cfgItem_t cfgArray[] = { { "tt18","tt18x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT18_X_OFFSET }, { "tt18","tt18y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT18_Y_OFFSET }, { "tt18","tt18z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT18_Z_OFFSET }, +#if (AXES == 9) { "tt18","tt18u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT18_U_OFFSET }, { "tt18","tt18v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT18_V_OFFSET }, { "tt18","tt18w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT18_W_OFFSET }, +#endif { "tt18","tt18a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT18_A_OFFSET }, { "tt18","tt18b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT18_B_OFFSET }, { "tt18","tt18c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT18_C_OFFSET }, @@ -1324,9 +1365,11 @@ const cfgItem_t cfgArray[] = { { "tt19","tt19x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT19_X_OFFSET }, { "tt19","tt19y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT19_Y_OFFSET }, { "tt19","tt19z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT19_Z_OFFSET }, +#if (AXES == 9) { "tt19","tt19u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT19_U_OFFSET }, { "tt19","tt19v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT19_V_OFFSET }, { "tt19","tt19w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT19_W_OFFSET }, +#endif { "tt19","tt19a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT19_A_OFFSET }, { "tt19","tt19b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT19_B_OFFSET }, { "tt19","tt19c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT19_C_OFFSET }, @@ -1334,9 +1377,11 @@ const cfgItem_t cfgArray[] = { { "tt20","tt20x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT20_X_OFFSET }, { "tt20","tt20y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT20_Y_OFFSET }, { "tt20","tt20z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT20_Z_OFFSET }, +#if (AXES == 9) { "tt20","tt20u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT20_U_OFFSET }, { "tt20","tt20v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT20_V_OFFSET }, { "tt20","tt20w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT20_W_OFFSET }, +#endif { "tt20","tt20a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT20_A_OFFSET }, { "tt20","tt20b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT20_B_OFFSET }, { "tt20","tt20c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT20_C_OFFSET }, @@ -1344,9 +1389,11 @@ const cfgItem_t cfgArray[] = { { "tt21","tt21x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT21_X_OFFSET }, { "tt21","tt21y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT21_Y_OFFSET }, { "tt21","tt21z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT21_Z_OFFSET }, +#if (AXES == 9) { "tt21","tt21u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT21_U_OFFSET }, { "tt21","tt21v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT21_V_OFFSET }, { "tt21","tt21w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT21_W_OFFSET }, +#endif { "tt21","tt21a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT21_A_OFFSET }, { "tt21","tt21b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT21_B_OFFSET }, { "tt21","tt21c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT21_C_OFFSET }, @@ -1354,9 +1401,11 @@ const cfgItem_t cfgArray[] = { { "tt22","tt22x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT22_X_OFFSET }, { "tt22","tt22y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT22_Y_OFFSET }, { "tt22","tt22z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT22_Z_OFFSET }, +#if (AXES == 9) { "tt22","tt22u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT22_U_OFFSET }, { "tt22","tt22v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT22_V_OFFSET }, { "tt22","tt22w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT22_W_OFFSET }, +#endif { "tt22","tt22a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT22_A_OFFSET }, { "tt22","tt22b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT22_B_OFFSET }, { "tt22","tt22c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT22_C_OFFSET }, @@ -1364,9 +1413,11 @@ const cfgItem_t cfgArray[] = { { "tt23","tt23x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT23_X_OFFSET }, { "tt23","tt23y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT23_Y_OFFSET }, { "tt23","tt23z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT23_Z_OFFSET }, +#if (AXES == 9) { "tt23","tt23u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT23_U_OFFSET }, { "tt23","tt23v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT23_V_OFFSET }, { "tt23","tt23w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT23_W_OFFSET }, +#endif { "tt23","tt23a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT23_A_OFFSET }, { "tt23","tt23b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT23_B_OFFSET }, { "tt23","tt23c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT23_C_OFFSET }, @@ -1374,9 +1425,11 @@ const cfgItem_t cfgArray[] = { { "tt24","tt24x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT24_X_OFFSET }, { "tt24","tt24y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT24_Y_OFFSET }, { "tt24","tt24z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT24_Z_OFFSET }, +#if (AXES == 9) { "tt24","tt24u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT24_U_OFFSET }, { "tt24","tt24v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT24_V_OFFSET }, { "tt24","tt24w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT24_W_OFFSET }, +#endif { "tt24","tt24a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT24_A_OFFSET }, { "tt24","tt24b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT24_B_OFFSET }, { "tt24","tt24c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT24_C_OFFSET }, @@ -1384,9 +1437,11 @@ const cfgItem_t cfgArray[] = { { "tt25","tt25x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT25_X_OFFSET }, { "tt25","tt25y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT25_Y_OFFSET }, { "tt25","tt25z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT25_Z_OFFSET }, +#if (AXES == 9) { "tt25","tt25u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT25_U_OFFSET }, { "tt25","tt25v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT25_V_OFFSET }, { "tt25","tt25w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT25_W_OFFSET }, +#endif { "tt25","tt25a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT25_A_OFFSET }, { "tt25","tt25b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT25_B_OFFSET }, { "tt25","tt25c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT25_C_OFFSET }, @@ -1394,9 +1449,11 @@ const cfgItem_t cfgArray[] = { { "tt26","tt26x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT26_X_OFFSET }, { "tt26","tt26y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT26_Y_OFFSET }, { "tt26","tt26z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT26_Z_OFFSET }, +#if (AXES == 9) { "tt26","tt26u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT26_U_OFFSET }, { "tt26","tt26v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT26_V_OFFSET }, { "tt26","tt26w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT26_W_OFFSET }, +#endif { "tt26","tt26a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT26_A_OFFSET }, { "tt26","tt26b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT26_B_OFFSET }, { "tt26","tt26c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT26_C_OFFSET }, @@ -1404,9 +1461,11 @@ const cfgItem_t cfgArray[] = { { "tt27","tt27x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT27_X_OFFSET }, { "tt27","tt27y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT27_Y_OFFSET }, { "tt27","tt27z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT27_Z_OFFSET }, +#if (AXES == 9) { "tt27","tt27u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT27_U_OFFSET }, { "tt27","tt27v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT27_V_OFFSET }, { "tt27","tt27w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT27_W_OFFSET }, +#endif { "tt27","tt27a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT27_A_OFFSET }, { "tt27","tt27b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT27_B_OFFSET }, { "tt27","tt27c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT27_C_OFFSET }, @@ -1414,9 +1473,11 @@ const cfgItem_t cfgArray[] = { { "tt28","tt28x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT28_X_OFFSET }, { "tt28","tt28y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT28_Y_OFFSET }, { "tt28","tt28z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT28_Z_OFFSET }, +#if (AXES == 9) { "tt28","tt28u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT28_U_OFFSET }, { "tt28","tt28v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT28_V_OFFSET }, { "tt28","tt28w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT28_W_OFFSET }, +#endif { "tt28","tt28a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT28_A_OFFSET }, { "tt28","tt28b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT28_B_OFFSET }, { "tt28","tt28c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT28_C_OFFSET }, @@ -1424,9 +1485,11 @@ const cfgItem_t cfgArray[] = { { "tt29","tt29x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT29_X_OFFSET }, { "tt29","tt29y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT29_Y_OFFSET }, { "tt29","tt29z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT29_Z_OFFSET }, +#if (AXES == 9) { "tt29","tt29u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT29_U_OFFSET }, { "tt29","tt29v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT29_V_OFFSET }, { "tt29","tt29w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT29_W_OFFSET }, +#endif { "tt29","tt29a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT29_A_OFFSET }, { "tt29","tt29b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT29_B_OFFSET }, { "tt29","tt29c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT29_C_OFFSET }, @@ -1434,9 +1497,11 @@ const cfgItem_t cfgArray[] = { { "tt30","tt30x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT30_X_OFFSET }, { "tt30","tt30y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT30_Y_OFFSET }, { "tt30","tt30z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT30_Z_OFFSET }, +#if (AXES == 9) { "tt30","tt30u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT30_U_OFFSET }, { "tt30","tt30v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT30_V_OFFSET }, { "tt30","tt30w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT30_W_OFFSET }, +#endif { "tt30","tt30a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT30_A_OFFSET }, { "tt30","tt30b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT30_B_OFFSET }, { "tt30","tt30c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT30_C_OFFSET }, @@ -1444,9 +1509,11 @@ const cfgItem_t cfgArray[] = { { "tt31","tt31x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT31_X_OFFSET }, { "tt31","tt31y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT31_Y_OFFSET }, { "tt31","tt31z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT31_Z_OFFSET }, +#if (AXES == 9) { "tt31","tt31u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT31_U_OFFSET }, { "tt31","tt31v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT31_V_OFFSET }, { "tt31","tt31w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT31_W_OFFSET }, +#endif { "tt31","tt31a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT31_A_OFFSET }, { "tt31","tt31b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT31_B_OFFSET }, { "tt31","tt31c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT31_C_OFFSET }, @@ -1454,12 +1521,15 @@ const cfgItem_t cfgArray[] = { { "tt32","tt32x",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT32_X_OFFSET }, { "tt32","tt32y",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT32_Y_OFFSET }, { "tt32","tt32z",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT32_Z_OFFSET }, +#if (AXES == 9) { "tt32","tt32u",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT32_U_OFFSET }, { "tt32","tt32v",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT32_V_OFFSET }, { "tt32","tt32w",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT32_W_OFFSET }, +#endif { "tt32","tt32a",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT32_A_OFFSET }, { "tt32","tt32b",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT32_B_OFFSET }, { "tt32","tt32c",_fipc, 5, cm_print_cofs, cm_get_tt, cm_set_tt, nullptr, TT32_C_OFFSET }, +#endif // TOOLS > 5 // Diagnostic parameters #ifdef __DIAGNOSTIC_PARAMETERS @@ -1590,9 +1660,11 @@ const cfgItem_t cfgArray[] = { { "","x", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // axis groups { "","y", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, { "","z", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, +#if (AXES == 9) { "","u", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, { "","v", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, { "","w", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, +#endif { "","a", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, { "","b", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, { "","c", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, @@ -1689,13 +1761,14 @@ const cfgItem_t cfgArray[] = { { "","g28",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // g28 home position { "","g30",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // g30 home position -#define TOOL_OFFSET_GROUPS 33 +#define TOOL_OFFSET_GROUPS (TOOLS+1) { "","tof",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // current tool offsets { "","tt1",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets { "","tt2",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets { "","tt3",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets { "","tt4",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets { "","tt5",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets +#if (TOOLS > 5) { "","tt6",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets { "","tt7",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets { "","tt8",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets @@ -1723,6 +1796,7 @@ const cfgItem_t cfgArray[] = { { "","tt30",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets { "","tt31",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets { "","tt32",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // tt offsets +#endif #define MACHINE_STATE_GROUPS 9 { "","mpo",_f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // machine position group @@ -1749,6 +1823,8 @@ const cfgItem_t cfgArray[] = { { "","udb", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // user data group { "","udc", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // user data group { "","udd", _f0, 0, tx_print_nul, get_grp, set_grp, nullptr, 0 }, // user data group +#else +#define USER_DATA_GROUPS 0 #endif #ifdef __DIAGNOSTIC_PARAMETERS @@ -2027,7 +2103,11 @@ static stat_t _do_motors(nvObj_t *nv) // print parameters for all motor groups static stat_t _do_axes(nvObj_t *nv) // print parameters for all axis groups { +#if (AXES == 9) char list[][TOKEN_LEN+1] = {"x","y","z","u","v","w","a","b","c",""}; // must have a terminating element +#else + char list[][TOKEN_LEN+1] = {"x","y","z","a","b","c",""}; // must have a terminating element +#endif return (_do_group_list(nv, list)); } diff --git a/g2core/g2core.h b/g2core/g2core.h index e7070412..cf05ac77 100644 --- a/g2core/g2core.h +++ b/g2core/g2core.h @@ -34,7 +34,6 @@ #include #include -#include "MotatePins.h" // comment in if Motate / ARM #include "error.h" // Status code definitions and strings #include "g2core_info.h" // see this file for build number and other identifying information @@ -60,18 +59,28 @@ typedef uint16_t magic_t; // magic number size // Note: If you change COORDS you must adjust the entries in cfgArray table in config.c -#define AXES 9 // number of axes supported in this version +#include "hardware.h" // Status code definitions and strings +#ifndef AXES + #define AXES 9 // number of axes supported in this version +#elif (AXES != 6 && AXES != 9) +#error AXES must be undefined (defaulting to 9) or defined as 6 or 9 +#endif #define HOMING_AXES 4 // number of axes that can be homed (assumes Zxyabc sequence) #define COORDS 6 // number of supported coordinate systems (index starts at 1) -#define TOOLS 32 // number of entries in tool table (index starts at 1) +#ifndef TOOLS + #warning Defining tools + #define TOOLS 32 // number of entries in tool table (index starts at 1) +#endif typedef enum { AXIS_X = 0, AXIS_Y, AXIS_Z, +#if (AXES == 9) AXIS_U, AXIS_V, AXIS_W, +#endif AXIS_A, AXIS_B, AXIS_C, @@ -84,6 +93,12 @@ typedef enum { AXIS_4WIRE_Z = AXIS_B, // 4Wire uses A, B, C, D } cmAxes; +#if (AXES == 9) +constexpr cmAxes LAST_LINEAR_AXIS = AXIS_W; +#else +constexpr cmAxes LAST_LINEAR_AXIS = AXIS_Z; +#endif + typedef enum { // external representation of axes (used in initialization) AXIS_X_EXTERNAL = 0, AXIS_Y_EXTERNAL, @@ -91,9 +106,11 @@ typedef enum { // external representation of axes (used in initialization) AXIS_A_EXTERNAL, AXIS_B_EXTERNAL, AXIS_C_EXTERNAL, +#if (AXES == 9) AXIS_U_EXTERNAL, AXIS_V_EXTERNAL, AXIS_W_EXTERNAL +#endif } cmAxesExternal; typedef enum { diff --git a/g2core/gcode_parser.cpp b/g2core/gcode_parser.cpp index 90da7881..7f8440a6 100644 --- a/g2core/gcode_parser.cpp +++ b/g2core/gcode_parser.cpp @@ -862,9 +862,11 @@ static stat_t _parse_gcode_block(char *buf, char *active_comment) case 'A': SET_NON_MODAL (target[AXIS_A], value); case 'B': SET_NON_MODAL (target[AXIS_B], value); case 'C': SET_NON_MODAL (target[AXIS_C], value); +#if (AXES == 9) case 'U': SET_NON_MODAL (target[AXIS_U], value); case 'V': SET_NON_MODAL (target[AXIS_V], value); case 'W': SET_NON_MODAL (target[AXIS_W], value); +#endif case 'H': SET_NON_MODAL (H_word, value); case 'I': SET_NON_MODAL (arc_offset[0], value); case 'J': SET_NON_MODAL (arc_offset[1], value); diff --git a/g2core/plan_line.cpp b/g2core/plan_line.cpp index 83cfb246..508a556d 100644 --- a/g2core/plan_line.cpp +++ b/g2core/plan_line.cpp @@ -182,10 +182,12 @@ stat_t mp_aline(GCodeState_t* _gm) _gm->target[AXIS_Z] * cm->rotation_matrix[2][2] + cm->rotation_z_offset; +#if (AXES == 9) // copy rotation axes for UVW (no changes) target_rotated[AXIS_U] = _gm->target[AXIS_U]; target_rotated[AXIS_V] = _gm->target[AXIS_V]; target_rotated[AXIS_W] = _gm->target[AXIS_W]; +#endif // copy rotation axes for ABC (no changes) target_rotated[AXIS_A] = _gm->target[AXIS_A]; diff --git a/g2core/stepper.cpp b/g2core/stepper.cpp index 22dd62da..93140694 100644 --- a/g2core/stepper.cpp +++ b/g2core/stepper.cpp @@ -953,7 +953,11 @@ static float _set_motor_steps_per_unit(nvObj_t *nv) */ stat_t st_get_ma(nvObj_t *nv) { +#if (AXES == 9) uint8_t remap_axis[9] = { 0,1,2,6,7,8,3,4,5 }; +#else + uint8_t remap_axis[6] = { 0,1,2,3,4,5 }; +#endif ritorno(get_integer(nv, st_cfg.mot[_motor(nv->index)].motor_map)); nv->value_int = remap_axis[nv->value_int]; return(STAT_OK); @@ -980,7 +984,11 @@ stat_t st_set_ma(nvObj_t *nv) return (STAT_INPUT_EXCEEDS_MAX_VALUE); } uint8_t external_axis = nv->value_int; +#if (AXES == 9) uint8_t remap_axis[9] = { 0,1,2,6,7,8,3,4,5 }; +#else + uint8_t remap_axis[6] = { 0,1,2,3,4,5 }; +#endif nv->value_int = remap_axis[nv->value_int]; ritorno(set_integer(nv, st_cfg.mot[_motor(nv->index)].motor_map, 0, AXES)); nv->value_int = external_axis; diff --git a/g2core/util.h b/g2core/util.h index 8fc3a629..22763136 100644 --- a/g2core/util.h +++ b/g2core/util.h @@ -78,8 +78,13 @@ float *set_vector_by_axis(float value, uint8_t axis); #define INIT_AXES_ONES {1,1,1,1,1,1,1,1,1} #define INIT_AXES_FALSE INIT_AXES_ZEROES #define INIT_AXES_TRUE INIT_AXES_ONES +#elif (AXES == 6) +#define INIT_AXES_ZEROES {0,0,0,0,0,0} +#define INIT_AXES_ONES {1,1,1,1,1,1} +#define INIT_AXES_FALSE INIT_AXES_ZEROES +#define INIT_AXES_TRUE INIT_AXES_ONES #else -#warning UNSUPPORTED AXES SETTING! +#error UNSUPPORTED AXES SETTING! #endif //*** math utilities ***