master
tongg 8 months ago
parent 5a75440f9b
commit 667892e353
  1. 32
      ViewModel/Grading/GradingLoadingVM.cs

@ -7,6 +7,7 @@ using System.Windows;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Media; using System.Windows.Media;
using System.Windows.Media.Imaging; using System.Windows.Media.Imaging;
using System.Windows.Threading;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using SparkClient.Model.Attributes; using SparkClient.Model.Attributes;
@ -121,7 +122,7 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
private bool _isCancel = false; private bool _isCancel = false;
private static Timer _monitorTimer; private Timer _monitorTimer;
private static readonly SemaphoreSlim _semaphore = new SemaphoreSlim(1, 1); private static readonly SemaphoreSlim _semaphore = new SemaphoreSlim(1, 1);
public GradingLoadingVM(string diamnondType, string diamondCode) public GradingLoadingVM(string diamnondType, string diamondCode)
@ -146,6 +147,7 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
500, 500,
Timeout.Infinite); Timeout.Infinite);
} }
} }
private async void CheckSpeedCallback(object state) private async void CheckSpeedCallback(object state)
@ -153,16 +155,22 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
try try
{ {
GpioStatus gpioStatus = await SOCClientService.Service.GetGpioStatus(); GpioStatus gpioStatus = await SOCClientService.Service.GetGpioStatus();
if (gpioStatus.LensGpioIsOpen() || gpioStatus.DiamondGpioIsOpen()) Application.Current.Dispatcher.Invoke(() =>
{ {
new MessageBox().Show(MultilingualHelper.getString("OpenOfTheHatch")); if (gpioStatus.LensGpioIsOpen() || gpioStatus.DiamondGpioIsOpen())
WindowManager.mainViewModel.Content = WindowManager.PreviousVM(); {
_scanner?.Cancel(); new MessageBox().Show(MultilingualHelper.getString("OpenOfTheHatch"));
_isCancel = true; WindowManager.mainViewModel.Content = WindowManager.PreviousVM();
_progressCts.Cancel(); _scanner?.Cancel();
this.Dispose(); _isCancel = true;
return; _progressCts.Cancel();
} this.Dispose();
_monitorTimer.Dispose();
return;
}
_monitorTimer.Change(500, Timeout.Infinite);
}, DispatcherPriority.Normal);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -424,7 +432,7 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
{ {
SOCClientService.Service.OpenPump(false); SOCClientService.Service.OpenPump(false);
} }
_monitorTimer.Dispose();
try try
{ {
Logger.Info($"算法结果Json单独保存至log/result"); Logger.Info($"算法结果Json单独保存至log/result");
@ -522,6 +530,7 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
{ {
WindowManager.mainViewModel.Content = WindowManager.PreviousVM(); WindowManager.mainViewModel.Content = WindowManager.PreviousVM();
_scanner?.Cancel(); _scanner?.Cancel();
_monitorTimer.Dispose();
_isCancel = true; _isCancel = true;
_progressCts.Cancel(); _progressCts.Cancel();
this.Dispose(); this.Dispose();
@ -566,6 +575,7 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
[Log] [Log]
public void Dispose() public void Dispose()
{ {
_monitorTimer.Dispose();
Dispose(true); Dispose(true);
GC.SuppressFinalize(this); GC.SuppressFinalize(this);
} }

Loading…
Cancel
Save