Eric H. Johnson wrote:
> Some more information.
>
> It seems the error does not occur until some number of lines of g-code have
> executed. Not sure exactly what the magic number but seems to be something
> over 600 lines.
>
> The error is generated at the line identified below in shcom.cc:
>
> int sendAbort()
> {
> EMC_TASK_ABORT task_abort_msg;
>
> task_abort_msg.serial_number = ++emcCommandSerialNumber;
> emcCommandBuffer->write(task_abort_msg);
> if (emcWaitType == EMC_WAIT_RECEIVED) {
> return emcCommandWaitReceived(emcCommandSerialNumber); <===
> } else if (emcWaitType == EMC_WAIT_DONE) {
> return emcCommandWaitDone(emcCommandSerialNumber);
> }
>
> return 0;
> }
>
> When the error occurs program flow never returns from the call to
> emcCommandWaitReceived. Any ideas?
Try running the client under strace (with -o and -s 1024) and see what
it's getting from the network, to see if it's the sender or the receiver
(or both) that's confused.
I dont know how NML does its network I/O, but there are a bunch of racy
ways to do it that might make it look like messages occasionally getting
lost ;-)
Also, if possible, join #emc-devel on irc and we might be able to work
through this quicker than email.
--
Sebastian Kuzminsky
"Okay, people. Now is the time to start discussing the rules of war for
autonomous robots. Now, when it's still theoretical." -- Bruce Schneier
------------------------------------------------------------------------------
_______________________________________________
Emc-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-developers