Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Duet3D/RepRapFirmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Crocker <dcrocker@eschertech.com>2021-04-12 18:52:05 +0300
committerDavid Crocker <dcrocker@eschertech.com>2021-04-12 18:52:05 +0300
commit5f102e898c1664a81f30ed749638c7d394e0cc3d (patch)
tree0a08f5e827679349a8a126a85815a848a5a65003 /src/GCodes/GCodes2.cpp
parentaf5485032cbf0ceb2352076b2cbf5b7098f1fe2a (diff)
Support P0 parameter on M24, M25 and M226
Diffstat (limited to 'src/GCodes/GCodes2.cpp')
-rw-r--r--src/GCodes/GCodes2.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/GCodes/GCodes2.cpp b/src/GCodes/GCodes2.cpp
index 171ca24a..ad70b77d 100644
--- a/src/GCodes/GCodes2.cpp
+++ b/src/GCodes/GCodes2.cpp
@@ -950,7 +950,7 @@ bool GCodes::HandleMcode(GCodeBuffer& gb, const StringRef& reply) THROWS(GCodeEx
{
pauseState = PauseState::resuming;
gb.SetState(GCodeState::resuming1);
- if (AllAxesAreHomed())
+ if (AllAxesAreHomed() && (!gb.Seen('P') || gb.GetUIValue() != 0)) // P0 parameter skips running resume.g
{
DoFileMacro(gb, RESUME_G, true, SystemHelperMacroCode);
}
@@ -995,7 +995,10 @@ bool GCodes::HandleMcode(GCodeBuffer& gb, const StringRef& reply) THROWS(GCodeEx
{
if (gb.IsDoingFileMacro())
{
- pausePending = true;
+ if (deferredPauseCommandPending == nullptr) // filament change pause takes priority
+ {
+ deferredPauseCommandPending = (gb.Seen('P') && gb.GetUIValue() == 0) ? "M226 P0" : "M226";
+ }
}
else
{
@@ -1013,7 +1016,7 @@ bool GCodes::HandleMcode(GCodeBuffer& gb, const StringRef& reply) THROWS(GCodeEx
{
if (fileGCode->IsDoingFileMacro())
{
- filamentChangePausePending = true;
+ deferredPauseCommandPending = "M600";
if (&gb != fileGCode)
{
return false; // wait for the current macro to finish
@@ -1043,7 +1046,10 @@ bool GCodes::HandleMcode(GCodeBuffer& gb, const StringRef& reply) THROWS(GCodeEx
}
else if (fileGCode->IsDoingFileMacro())
{
- pausePending = true;
+ if (deferredPauseCommandPending == nullptr) // filament change pause takes priority
+ {
+ deferredPauseCommandPending = (gb.Seen('P') && gb.GetUIValue() == 0) ? "M226 P0" : "M226";
+ }
if (&gb != fileGCode)
{
return false; // wait for the current macro to finish