Raise an error message on loading pure python remappped gcode

More
2 years 11 months ago #285014 by Aciera
I know how to raise an interpreter error if task==1  (ie during actual gcode execution).
This will end code execution with an error message 'my error message here' in the gui:
Code:
if self.task == 1:    if <some statement is true>:        print('Error -> aborting G68.2')        emccanon.CANON_ERROR( 'G68.2 ERROR: 'my error message here' )        yield INTERP_EXIT else:


What I would like to do now is to raise an error message when the gcode is loaded (ie task == 0):
This code will print 'Error -> aborting G68.2' to the terminal but no error is displayed in the gui:
Code:
if self.task == 0:    if <some statement is true>:        print('Error -> aborting G68.2')        emccanon.CANON_ERROR( 'G68.2 ERROR: 'my error message here' )        yield INTERP_EXIT else:

So I assume that emccanon.CANON_ERROR does not work for the interpreter used for creating the preview.

Is there is a way to raise an error message in the standalone interpreter from a python remap?

Please Log in to join the conversation.

More
2 years 11 months ago #285029 by Aciera
Found a solution here:
www.forum.linuxcnc.org/24-hal-components...xcnc?start=10#208679

I created a helper component with an IO pin 'twp_error' that gets written to from my python remap and then cleared in the helper component:
Code:
try:     while 1:         if h['twp_error'] == 0:             pass         elif h['twp_error'] == 1:             c.error_msg('G68.2 ERROR: TWP already active!')                     elif h['twp_error'] == 2:             c.error_msg('G68.2 ERROR: Cannot define TWP from active G59.2 or G59.3 offsets.')                     elif h['twp_error'] == 3:             c.error_msg("G68.2 ERROR: Can't enable TWP with G91 active!")         h['twp_error'] = 0

Please Log in to join the conversation.

More
2 years 11 months ago #285031 by Aciera
btw.
I did also try to use the c.error_msg('..') command in the remap itself but this resulted in a very noticeable delay until the message was actually displayed in the gui. The method with the hal pin and the helper component displays the messages instantly.

Please Log in to join the conversation.

More
2 years 11 months ago #285042 by cmorley
apparently you can just return a string for an error, but I haven't tried it.

Please Log in to join the conversation.

Time to create page: 0.341 seconds
Powered by Kunena Forum