How to use Dealing with queue-buster when remapping code?
08 Nov 2021 09:32 #225643
by chen1234
Because the remapping code cannot be executed in order, I added yield INTERP_EXECUTE_FINISH, but a new problem appeared. If the remapping code cannot complete the function, the interpreter will execute the next line of G code.
The function of my remapping code is: passing parameters to the executable program (.cpp), the executable program to control the galvanometer. The current situation is that when the galvanometer work has not been completed, cnc will execute the next line of g code, and cannot wait for the completion of the remapping code. Someone told me before that I need to use INTERP_EXECUTE_FINISH, but I feel very confused because the yield INTERP_EXECUTE_FINISH cannot return normally. So what should I do? Is it to return a special code to INTERP_EXECUTE_FINISH? Or let the remapping code get the return value of the executable program?
Hope someone can help me, thanks in advance, here is my code:
The function of my remapping code is: passing parameters to the executable program (.cpp), the executable program to control the galvanometer. The current situation is that when the galvanometer work has not been completed, cnc will execute the next line of g code, and cannot wait for the completion of the remapping code. Someone told me before that I need to use INTERP_EXECUTE_FINISH, but I feel very confused because the yield INTERP_EXECUTE_FINISH cannot return normally. So what should I do? Is it to return a special code to INTERP_EXECUTE_FINISH? Or let the remapping code get the return value of the executable program?
Hope someone can help me, thanks in advance, here is my code:
Attachments:
Please Log in or Create an account to join the conversation.
08 Nov 2021 10:00 #225651
by andypugh
Replied by andypugh on topic How to use Dealing with queue-buster when remapping code?
I don't have that much experience with this, but you could try having the Python code toggle a G-code input pin after the INTERP_EXECUTE_FINISH and then have an M66 wait-on-input in the G-code. M66 forces an interp synch too, so at that point it should all agree.
Please Log in or Create an account to join the conversation.
08 Nov 2021 14:06 #225691
by cmorley
Replied by cmorley on topic How to use Dealing with queue-buster when remapping code?
If you use yeild INTERP_EXECUTE_FINISH, you cannot use return with an argument in the function. (look up python generators to find out why)
yeild INTERP_EXECUTE_FINISH, means wait for the interpreter to finish the commands before it before continuing the rest of the commands. ( a synch)
I think there should be:
yield INTERP_OK where you return is
and yield INTERP_ERROR if there is an error
Try that and report your results.
.
yeild INTERP_EXECUTE_FINISH, means wait for the interpreter to finish the commands before it before continuing the rest of the commands. ( a synch)
I think there should be:
yield INTERP_OK where you return is
and yield INTERP_ERROR if there is an error
Try that and report your results.
.
Please Log in or Create an account to join the conversation.
13 Apr 2023 15:37 #268973
by zz912
Replied by zz912 on topic How to use Dealing with queue-buster when remapping code?
chen1234 - did you solved your problem?
What version LCNC do you use?
I am solving similar problem:
forum.linuxcnc.org/38-general-linuxcnc-q...nterp-execute-finish
I use LCNC 2.9
What version LCNC do you use?
I am solving similar problem:
forum.linuxcnc.org/38-general-linuxcnc-q...nterp-execute-finish
I use LCNC 2.9
Please Log in or Create an account to join the conversation.
Time to create page: 0.120 seconds