feat:调试版

master
sunhonglei 7 months ago
parent 143ee575b7
commit b8be277e72
  1. 181
      ViewModel/Grading/DiamondSelectVM.cs

@ -17,6 +17,8 @@ using SparkClient.Model.Entity;
using SparkClient.Model.Services; using SparkClient.Model.Services;
using MessageBox = System.Windows.MessageBox; using MessageBox = System.Windows.MessageBox;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Text;
using System.IO;
namespace SparkClient.ViewModel.Grading; namespace SparkClient.ViewModel.Grading;
@ -113,35 +115,141 @@ public class DiamondSelectVM : BaseViewModel
/// <param name="param"></param> /// <param name="param"></param>
public async void StartGrading(object param) public async void StartGrading(object param)
{ {
LoadingDialog loading = new LoadingDialog(); DoStartGrading(param);
try //LoadingDialog loading = new LoadingDialog();
//try
//{
// if (param != null)
// {
// var progressTask = Task.Run(() => Application.Current.Dispatcher.Invoke(() => loading.ShowDialog()));
// await Task.Run(async () =>
// {
// bool isEnd = false;
// int progress = 0;
// // 更新进度条的值(需要在UI线程上执行)
// loading.Dispatcher.Invoke(async () =>
// {
// for (int i = 0; i <= 97; i++)
// {
// if (isEnd)
// {
// break;
// }
// // 模拟耗时操作
// //System.Threading.Thread.Sleep(50); // 休眠50毫秒
// await Task.Delay(1000);
// loading.setValue(i);
// progress = i;
// }
// });
// SocResultEntity socResolt = new SocResultEntity();
// AlgorithmResultEntity parameter = new AlgorithmResultEntity();
// parameter.Standard = "IGI 2024";
// string value = param.ToString() ?? "";
// if (value != null && value.Split(" ").Length == 3)
// {
// parameter.Shape = value.Split(" ")[0];
// parameter.CrownType = value.Split(" ")[1];
// parameter.PavType = value.Split(" ")[2];
// }
// // 启动soc
// socResolt = await DoSoc();
// // 启动算法
// parameter = await DoAlgorithm(socResolt, parameter.Shape, parameter.CrownType);
// parameter.Standard = "IGI 2024";
// parameter.Shape = value.Split(" ")[0];
// parameter.CrownType = value.Split(" ")[1];
// parameter.PavType = value.Split(" ")[2];
// parameter.DiamondCode = DiamondCode;
// isEnd = true;
// //GradingResult(parameter);
// await loading.Dispatcher.Invoke(async () =>
// {
// for (int i = progress; progress <= 100; i++)
// {
// Random random = new Random(); int minValue = 50; int maxValue = 150; // 生成50到150之间的随机整数
// int randomNumber = random.Next(minValue, maxValue + 1);
// await Task.Delay(randomNumber);
// loading.setValue(i);
// if (loading.ProgressBar.Value == 98)
// {
// GradingResult(parameter);
// }
// if(loading.ProgressBar.Value >= 100)
// {
// loading.Close();
// break;
// }
// }
// });
// });
// }
//}
//finally {
//}
}
/// <summary>
/// 开始检测(对soc和算法开始通讯)
/// </summary>
/// <param name="param"></param>
public async void DoStartGrading(object param)
{ {
if (param != null) if (param != null)
{ {
var progressTask = Task.Run(() => Application.Current.Dispatcher.Invoke(() => loading.ShowDialog())); AlgorithmResultEntity parameter = new AlgorithmResultEntity();
await Task.Run(async () => JsonImport jsonImport = new JsonImport();
{ bool? a = jsonImport.ShowDialog();
bool isEnd = false; if (a ?? false)
int progress = 0;
// 更新进度条的值(需要在UI线程上执行)
loading.Dispatcher.Invoke(async () =>
{ {
for (int i = 0; i <= 97; i++) string fileName = jsonImport.FilePath.Text;
string[] lines = File.ReadAllLines(fileName);
StringBuilder stringBuilder = new StringBuilder();
foreach (var line in lines)
{ {
if (isEnd) stringBuilder.Append(line);
}
parameter = JsonConvert.DeserializeObject<AlgorithmResultEntity>(stringBuilder.ToString());
}
else
{ {
break; return;
} }
LoadingDialog loading = new LoadingDialog();
var tcs = new TaskCompletionSource<bool>();
var progressTask = Task.Run(() => Application.Current.Dispatcher.Invoke(() => {
loading.Closed += (s, e) => tcs.SetResult(true);
loading.ShowDialog();
}
));
await Task.Run(async () =>
{
for (int i = 0; i <= 100; i++)
{
// 模拟耗时操作 // 模拟耗时操作
//System.Threading.Thread.Sleep(50); // 休眠50毫秒 //System.Threading.Thread.Sleep(50); // 休眠50毫秒
await Task.Delay(1000); await Task.Delay(5);
// 更新进度条的值(需要在UI线程上执行)
loading.Dispatcher.Invoke(() =>
{
loading.setValue(i); loading.setValue(i);
progress = i;
}
}); });
SocResultEntity socResolt = new SocResultEntity(); }
AlgorithmResultEntity parameter = new AlgorithmResultEntity(); // SocResultEntity socResolt = new SocResultEntity();
// AlgorithmResultEntity parameter = new AlgorithmResultEntity();
// // 启动soc
// socResolt = DoSoc();
// // 启动算法
// parameter = DoAlgorithm();
//parameter = DoSoc();
parameter.Standard = "IGI 2024"; parameter.Standard = "IGI 2024";
string value = param.ToString() ?? ""; string value = param.ToString() ?? "";
if (value != null && value.Split(" ").Length == 3) if (value != null && value.Split(" ").Length == 3)
@ -150,48 +258,13 @@ public class DiamondSelectVM : BaseViewModel
parameter.CrownType = value.Split(" ")[1]; parameter.CrownType = value.Split(" ")[1];
parameter.PavType = value.Split(" ")[2]; parameter.PavType = value.Split(" ")[2];
} }
// 启动soc
socResolt = await DoSoc();
// 启动算法
parameter = await DoAlgorithm(socResolt, parameter.Shape, parameter.CrownType);
parameter.Standard = "IGI 2024";
parameter.Shape = value.Split(" ")[0];
parameter.CrownType = value.Split(" ")[1];
parameter.PavType = value.Split(" ")[2];
parameter.DiamondCode = DiamondCode; parameter.DiamondCode = DiamondCode;
isEnd = true;
//GradingResult(parameter);
await loading.Dispatcher.Invoke(async () =>
{
for (int i = progress; progress <= 100; i++)
{
Random random = new Random(); int minValue = 50; int maxValue = 150; // 生成50到150之间的随机整数
int randomNumber = random.Next(minValue, maxValue + 1);
await Task.Delay(randomNumber);
loading.setValue(i);
if (loading.ProgressBar.Value == 98)
{
GradingResult(parameter); GradingResult(parameter);
}
if(loading.ProgressBar.Value >= 100)
{
loading.Close();
break;
}
}
}); });
}); await Task.Delay(5);
} loading.Close();
}
finally {
} }
} }
/// <summary> /// <summary>
/// 跳转至检测结果 /// 跳转至检测结果
/// </summary> /// </summary>

Loading…
Cancel
Save