Move G17-G19 to cpp

This commit is contained in:
Scott Lahteine 2017-09-15 23:08:48 -05:00
parent 94d9def81c
commit 9b4aa5ea8b
6 changed files with 42 additions and 31 deletions

View file

@ -215,10 +215,6 @@ static millis_t stepper_inactive_time = (DEFAULT_STEPPER_DEACTIVE_TIME) * 1000UL
millis_t lastUpdateMillis; millis_t lastUpdateMillis;
#endif #endif
#if ENABLED(CNC_WORKSPACE_PLANES)
static WorkspacePlane workspace_plane = PLANE_XY;
#endif
/** /**
* *************************************************************************** * ***************************************************************************
* ******************************** FUNCTIONS ******************************** * ******************************** FUNCTIONS ********************************
@ -361,10 +357,6 @@ void suicide() {
***************** GCode Handlers ***************** ***************** GCode Handlers *****************
**************************************************/ **************************************************/
#if ENABLED(CNC_WORKSPACE_PLANES)
#include "gcode/geometry/G17-G19.h"
#endif
#if ENABLED(INCH_MODE_SUPPORT) #if ENABLED(INCH_MODE_SUPPORT)
#include "gcode/units/G20_G21.h" #include "gcode/units/G20_G21.h"
#endif #endif

View file

@ -148,12 +148,4 @@ enum LCDViewAction {
}; };
#endif #endif
/**
* Workspace planes only apply to G2/G3 moves
* (and "canned cycles" - not a current feature)
*/
#if ENABLED(CNC_WORKSPACE_PLANES)
enum WorkspacePlane { PLANE_XY, PLANE_ZX, PLANE_YZ };
#endif
#endif // __ENUM_H__ #endif // __ENUM_H__

View file

@ -48,6 +48,10 @@ bool GcodeSuite::axis_relative_modes[] = AXIS_RELATIVE_MODES;
uint8_t GcodeSuite::host_keepalive_interval = DEFAULT_KEEPALIVE_INTERVAL; uint8_t GcodeSuite::host_keepalive_interval = DEFAULT_KEEPALIVE_INTERVAL;
#endif #endif
#if ENABLED(CNC_WORKSPACE_PLANES)
GcodeSuite::WorkspacePlane GcodeSuite::workspace_plane = PLANE_XY;
#endif
/** /**
* Set target_extruder from the T parameter or the active_extruder * Set target_extruder from the T parameter or the active_extruder
* *
@ -112,9 +116,6 @@ void GcodeSuite::dwell(millis_t time) {
// //
// Placeholders for non-migrated codes // Placeholders for non-migrated codes
// //
extern void gcode_G17();
extern void gcode_G18();
extern void gcode_G19();
extern void gcode_G20(); extern void gcode_G20();
extern void gcode_G21(); extern void gcode_G21();
extern void gcode_G27(); extern void gcode_G27();
@ -318,13 +319,13 @@ void GcodeSuite::process_next_command() {
#if ENABLED(CNC_WORKSPACE_PLANES) #if ENABLED(CNC_WORKSPACE_PLANES)
case 17: // G17: Select Plane XY case 17: // G17: Select Plane XY
gcode_G17(); G17();
break; break;
case 18: // G18: Select Plane ZX case 18: // G18: Select Plane ZX
gcode_G18(); G18();
break; break;
case 19: // G19: Select Plane YZ case 19: // G19: Select Plane YZ
gcode_G19(); G19();
break; break;
#endif // CNC_WORKSPACE_PLANES #endif // CNC_WORKSPACE_PLANES

View file

@ -256,6 +256,15 @@ public:
static bool axis_relative_modes[]; static bool axis_relative_modes[];
#if ENABLED(CNC_WORKSPACE_PLANES)
/**
* Workspace planes only apply to G2/G3 moves
* (and "canned cycles" - not a current feature)
*/
enum WorkspacePlane { PLANE_XY, PLANE_ZX, PLANE_YZ };
static WorkspacePlane workspace_plane;
#endif
static millis_t previous_cmd_ms; static millis_t previous_cmd_ms;
FORCE_INLINE static void refresh_cmd_timeout() { previous_cmd_ms = millis(); } FORCE_INLINE static void refresh_cmd_timeout() { previous_cmd_ms = millis(); }

View file

@ -20,10 +20,25 @@
* *
*/ */
void report_workspace_plane() { #include "../../inc/MarlinConfig.h"
#if ENABLED(CNC_WORKSPACE_PLANES)
#include "../gcode.h"
inline void report_workspace_plane() {
SERIAL_ECHO_START(); SERIAL_ECHO_START();
SERIAL_ECHOPGM("Workspace Plane "); SERIAL_ECHOPGM("Workspace Plane ");
serialprintPGM(workspace_plane == PLANE_YZ ? PSTR("YZ\n") : workspace_plane == PLANE_ZX ? PSTR("ZX\n") : PSTR("XY\n")); serialprintPGM(
gcode.workspace_plane == GcodeSuite::PLANE_YZ ? PSTR("YZ\n")
: gcode.workspace_plane == GcodeSuite::PLANE_ZX ? PSTR("ZX\n")
: PSTR("XY\n")
);
}
inline void set_workspace_plane(const GcodeSuite::WorkspacePlane plane) {
gcode.workspace_plane = plane;
if (DEBUGGING(INFO)) report_workspace_plane();
} }
/** /**
@ -31,6 +46,8 @@ void report_workspace_plane() {
* G18: Select Plane ZX * G18: Select Plane ZX
* G19: Select Plane YZ * G19: Select Plane YZ
*/ */
void gcode_G17() { workspace_plane = PLANE_XY; } void GcodeSuite::G17() { set_workspace_plane(PLANE_XY); }
void gcode_G18() { workspace_plane = PLANE_ZX; } void GcodeSuite::G18() { set_workspace_plane(PLANE_ZX); }
void gcode_G19() { workspace_plane = PLANE_YZ; } void GcodeSuite::G19() { set_workspace_plane(PLANE_YZ); }
#endif // CNC_WORKSPACE_PLANES

View file

@ -50,10 +50,10 @@ void plan_arc(
) { ) {
#if ENABLED(CNC_WORKSPACE_PLANES) #if ENABLED(CNC_WORKSPACE_PLANES)
AxisEnum p_axis, q_axis, l_axis; AxisEnum p_axis, q_axis, l_axis;
switch (workspace_plane) { switch (gcode.workspace_plane) {
case PLANE_XY: p_axis = X_AXIS; q_axis = Y_AXIS; l_axis = Z_AXIS; break; case GcodeSuite::PLANE_XY: p_axis = X_AXIS; q_axis = Y_AXIS; l_axis = Z_AXIS; break;
case PLANE_ZX: p_axis = Z_AXIS; q_axis = X_AXIS; l_axis = Y_AXIS; break; case GcodeSuite::PLANE_ZX: p_axis = Z_AXIS; q_axis = X_AXIS; l_axis = Y_AXIS; break;
case PLANE_YZ: p_axis = Y_AXIS; q_axis = Z_AXIS; l_axis = X_AXIS; break; case GcodeSuite::PLANE_YZ: p_axis = Y_AXIS; q_axis = Z_AXIS; l_axis = X_AXIS; break;
} }
#else #else
constexpr AxisEnum p_axis = X_AXIS, q_axis = Y_AXIS, l_axis = Z_AXIS; constexpr AxisEnum p_axis = X_AXIS, q_axis = Y_AXIS, l_axis = Z_AXIS;