private void EmulateCommand(GrblCommand cmd)
        {
            if (!mCheck)
            {
                try
                {
                    TimeSpan cmdTime = SPB.AnalyzeCommand(cmd, true, conf);
                    toSleep += cmdTime;

                    if (toSleep.TotalMilliseconds > 15)                     //execute sleep
                    {
                        long start = Tools.HiResTimer.TotalNano;
                        System.Threading.Thread.Sleep(toSleep);
                        long stop = Tools.HiResTimer.TotalNano;
                        toSleep -= TimeSpan.FromMilliseconds((double)(stop - start) / 1000.0 / 1000.0);
                    }

                    px = SPB.X.Number;
                    py = SPB.Y.Number;
                    pz = SPB.Z.Number;
                    wx = SPB.WcoX;
                    wy = SPB.WcoY;
                    wz = SPB.WcoZ;
                }
                catch (Exception ex) { throw ex; }
                finally { cmd.DeleteHelper(); }
            }

            EnqueueTX("ok");
        }
예제 #2
0
 public static void EnqueueCommad(GrblCommand cmd)
 {
     MainComms.EnqueueCommand(cmd);
 }