More feedback on M291 issues RRF v3.5.0b1+
-
Further to the discussion here
I have run some tests and believe that what I (and others) believed to be either macros showing echo commands etc before M291 commands were closed, or the multiple streams displaying them prematurely may in at least some cases be a bug peculiar to M291 message boxes that use S2 and in other cases that an error on the M291 call will stop the message box from being displayed, but will not stop the macro, whereas an error in for example an echo command will stop the macro.
I created the macro below and tried various M291 commands including deliberate errors and added comments of my findings at each line.
I was sure at some point I was getting failures with no error reports but I haven't been able to reproduce that.
I believe it was that when using M291 S2, unless you send M292 from the command line, then the message box is active, so you can't edit/save the file.
I was resorting to M99 to close the file as I didn't realise what was happening.
This left the last (invisible) message box active, stopping the next message box in the queue.Hope this all makes makes sense.
var count = 0 while iterations < 4 echo "Count = " ^ iterations set var.count = iterations while iterations < 4 echo "Sub run = " ^ iterations ;M291 R{"Main count = " ^ var.count} P{"Sub run = " ^ iterations} S2 ; does not resume operation when OK closed unless M292 sent from console. M99 aborts the macro but leaves the message box in play ;M291 R{"Main count = " ^ var.count} P{"Sub run = " ^ iterations} S3 ; works as expected except that if previous macro used S2 and M99 was used without M292, the first iteration doesn't show and M292 is required. ;M291 R{"Main count = " ^ var.count} P{"Sub run = " ^ iterations} S4 K{"Choice 1","Choice 2","Cancel" ,} F{iterations} ; works as expected ;M291 R{"Main count = " ^ var.count} P{"Sub run = " ^ iterations} S5 H10 L0 F5 ; operates as normal ;M291 R{"Main count = " ^ var.count} P{"Sub run = " ^ iterations} S6 H1 L0 F{var.count} ; This will stop messagebox after var.count > 1, but doesn't stop macro ;M291 R{"Main count = " ^ var.count} P{"Sub run = " ^ iterations} S7 H1 L0 F{var.count} ; seems to operate normally ;M291 R{"Main count = " ^ var.count} P{"Sub run = " ^ iterations} S7 H{pi} L0 F{var.count} ; passed float to H param. Gives error in console, message box doesn't display, but macro continues. echo input G4 P200 echo "window closed " ^ var.count ^ " : " ^ iterations ; this won't display unless you send M292 if M291 S2 used even after OK pressed ;echo "window closed " ^ var.Count ^ " : " ^ iterations ; this line has a deliberate error macro will be stopped. G4 S1
-
@OwenD which Duet are you using? If it's a 6HC please try the binary at https://www.dropbox.com/sh/6s1sbescl9di7d2/AAAaiB9VF-XT_VpIRYL8Lq-0a?dl=0 which has some fixes in this area.
-
@dc42
Duet 2 stand alone -
@OwenD you can try the binary at https://www.dropbox.com/sh/6s1sbescl9di7d2/AAAaiB9VF-XT_VpIRYL8Lq-0a?dl=0 if you like. Note, this binary hasn't been tested on a real printer.
-
@dc42
That binary does not change any of the behaviours noted above. -