Effect of M25/24 (pause/resume) when not 'Printing' or 'Paused'

  • Hi,

    Hopefully a simple question, but either my google skillz are failing, or nobody has asked before..

    I'm working on a pause/resume button for RRF/Duet; it is based on an existing project that talks to my controller over the PanelDue port; and is aware of the printer state.

    I want to extend it with a button that sends M25 when printing and M24 when paused, eg:

          // Button held down for timeout; send commands as appropriate;
          if (printerstatus == 'P') Serial.println(F("M25"));
          if (printerstatus == 'A') Serial.println(F("M24"));

    Should M24 and M25 only be sent in those states? (f/w 2.03 and later)

    Does a Pause received when running a macro or streaming an external job (Busy state, B) have any effect? Will it be buffered until the macro/job stream is complete or silently ignored?

    Ie: If the printer is running the pause macro (state D); what happens if a Resume (M24) arrives?
    will it be processed after the macro is complete?
    will it be ignored?
    can I safely assume it will not interrupt the macro?
    and does a pause (M25) while resuming (R) behave the same way?

    In normal circumstances I'd just go ahead and test this, and would enjoy doing so 😉 but I'm far from home, where my printer is far from operational.