public void StartProbe()
        {
            _status = ProbeStatus.Probing;

            if (Machine.SetMode(OperatingMode.ProbingHeight))
            {
                _timer = new Timer(Timer_Tick, null, Machine.Settings.ProbeTimeoutSeconds * 1000, 0);
                Machine.SendCommand($"G38.3 Z-{Machine.Settings.ProbeMaxDepth.ToString("0.###", Constants.DecimalOutputFormat)} F{Machine.Settings.ProbeFeed.ToString("0.#", Constants.DecimalOutputFormat)}");
            }
        }
        private void Timer_Tick(object state)
        {
            if (_timer != null)
            {
                Machine.SetMode(OperatingMode.Manual);
                Machine.AddStatusMessage(StatusMessageTypes.Warning, $"Probing timed out after {Machine.Settings.ProbeTimeoutSeconds} sec.");

                _status = ProbeStatus.TimedOut;

                _timer.Change(Timeout.Infinite, Timeout.Infinite);
                _timer.Dispose();
                _timer = null;
            }
        }
        public void CancelProbe()
        {
            Machine.AddStatusMessage(StatusMessageTypes.Info, $"Probing Manually Cancelled");

            _status = ProbeStatus.Cancelled;

            if (_timer != null)
            {
                _timer.Change(Timeout.Infinite, Timeout.Infinite);
                _timer.Dispose();
                _timer = null;
            }

            Machine.SetMode(OperatingMode.Manual);
        }
        public void ProbeCompleted(Vector3 position)
        {
            Machine.AddStatusMessage(StatusMessageTypes.Info, $"Probing Completed Offset {position.Z}");

            if (_timer != null)
            {
                _timer.Change(Timeout.Infinite, Timeout.Infinite);
                _timer.Dispose();
                _timer = null;
            }

            _status = ProbeStatus.Success;

            SetZAxis(position.Z);
            Machine.SendCommand("G0 Z10");
            Machine.SetMode(OperatingMode.Manual);
        }
Ejemplo n.º 5
0
        private void StopProbe(ProbeStatus status)
        {
            CancelSource.Cancel();
            Status   = status;
            IsActive = false;

            Application.Current.Dispatcher.BeginInvoke(new Action(() =>
            {
                mutex.WaitOne();
                if (status != ProbeStatus.Error)
                {
                    WriteFinalStatisticsToHistory();
                }
                StatusChangeLog.Add(new StatusChangeLog {
                    Timestamp = DateTime.Now, Hostname = Hostname, Alias = Alias, Status = ProbeStatus.Stop
                });
                mutex.ReleaseMutex();
            }));
        }
Ejemplo n.º 6
0
 private void StopProbe(ProbeStatus status)
 {
     CancelSource.Cancel();
     Status   = status;
     IsActive = false;
 }
 public StepProbeResultModel(string id, ProbeStatus status)
 {
     Id     = id;
     Status = status;
 }
Ejemplo n.º 8
0
 public ProbeResponse(string name, ProbeStatus status, string message = "OK")
 {
     Name    = name;
     Status  = status;
     Message = message;
 }