feat:调试版

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

@ -17,6 +17,8 @@ using SparkClient.Model.Entity;
using SparkClient.Model.Services;
using MessageBox = System.Windows.MessageBox;
using System.Runtime.CompilerServices;
using System.Text;
using System.IO;
namespace SparkClient.ViewModel.Grading;
@ -113,85 +115,156 @@ public class DiamondSelectVM : BaseViewModel
/// <param name="param"></param>
public async void StartGrading(object param)
{
LoadingDialog loading = new LoadingDialog();
try
DoStartGrading(param);
//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)
AlgorithmResultEntity parameter = new AlgorithmResultEntity();
JsonImport jsonImport = new JsonImport();
bool? a = jsonImport.ShowDialog();
if (a ?? false)
{
string fileName = jsonImport.FilePath.Text;
string[] lines = File.ReadAllLines(fileName);
StringBuilder stringBuilder = new StringBuilder();
foreach (var line in lines)
{
stringBuilder.Append(line);
}
parameter = JsonConvert.DeserializeObject<AlgorithmResultEntity>(stringBuilder.ToString());
}
else
{
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 () =>
{
var progressTask = Task.Run(() => Application.Current.Dispatcher.Invoke(() => loading.ShowDialog()));
await Task.Run(async () =>
for (int i = 0; i <= 100; i++)
{
bool isEnd = false;
int progress = 0;
// 模拟耗时操作
//System.Threading.Thread.Sleep(50); // 休眠50毫秒
await Task.Delay(5);
// 更新进度条的值(需要在UI线程上执行)
loading.Dispatcher.Invoke(async () =>
loading.Dispatcher.Invoke(() =>
{
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;
}
loading.setValue(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);
}
// SocResultEntity socResolt = new SocResultEntity();
// AlgorithmResultEntity parameter = new AlgorithmResultEntity();
// // 启动soc
// socResolt = DoSoc();
// // 启动算法
// parameter = DoAlgorithm();
parameter.Standard = "IGI 2024";
//parameter = DoSoc();
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];
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 {
}
parameter.DiamondCode = DiamondCode;
GradingResult(parameter);
});
await Task.Delay(5);
loading.Close();
}
}
/// <summary>
/// 跳转至检测结果
/// </summary>

Loading…
Cancel
Save