From cc731cfa899a7e51b52b3099281bd212b4fb7f61 Mon Sep 17 00:00:00 2001 From: sunhonglei Date: Tue, 17 Dec 2024 13:19:20 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E8=BF=9B=E5=BA=A6=E6=9D=A1?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Model/Services/AlgorithmServer.cs | 10 +- SparkClient.csproj | 3 + SparkDB.db | Bin 237568 -> 237568 bytes ViewModel/Grading/DiamondSelectVM.cs | 99 ++++++++++++------ ViewModel/Grading/GradingResultVM.cs | 73 +++++++++++-- Views/Dialog/ExportDialog.xaml | 26 +++++ Views/Dialog/ExportDialog.xaml.cs | 34 ++++++ .../ViewportData/Helper/VideoHelper.cs | 2 +- .../ViewportData/Helper/ViewportHelperPro.cs | 2 +- .../UserControl/ViewportData/ViewportData.cs | 1 + 10 files changed, 204 insertions(+), 46 deletions(-) create mode 100644 Views/Dialog/ExportDialog.xaml create mode 100644 Views/Dialog/ExportDialog.xaml.cs diff --git a/Model/Services/AlgorithmServer.cs b/Model/Services/AlgorithmServer.cs index 310dbcc..6291805 100644 --- a/Model/Services/AlgorithmServer.cs +++ b/Model/Services/AlgorithmServer.cs @@ -10,16 +10,16 @@ namespace SparkClient.Model.Services { // 导入 C++ DLL 中的 DetectDiamond 函数 - [DllImport("D:/workspace/dayuAI/SparkClient/bin/Debug/net8.0-windows/diamond_cut_inspector.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] + [DllImport("diamond_cut_inspector.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] private static extern IntPtr DetectDiamond(string jsonData); // 导入 C++ DLL 中的 FreeMemory 函数 - [DllImport("D:/workspace/dayuAI/SparkClient/bin/Debug/net8.0-windows/diamond_cut_inspector.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] + [DllImport("diamond_cut_inspector.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] private static extern void FreeString(IntPtr ptr); // 导入 C++ DLL 中的 Echo 函数 - [DllImport("D:/workspace/dayuAI/SparkClient/bin/Debug/net8.0-windows/diamond_cut_inspector.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] + [DllImport("diamond_cut_inspector.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] private static extern string Echo(string jsonData); // 导入 C++ DLL 中的 ParseJsonAndReturnActions 函数 - [DllImport("D:/workspace/dayuAI/SparkClient/bin/Debug/net8.0-windows/AlgorithmServer.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] + [DllImport("AlgorithmServer.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)] private static extern IntPtr ParseJsonAndReturnActions(string jsonData); // 添加公共方法 @@ -41,7 +41,7 @@ namespace SparkClient.Model.Services // 调用 C++ DLL 函数解析 JSON IntPtr resultPtr = DetectDiamond(jsonDataString); - string resultJson = Marshal.PtrToStringAnsi(resultPtr); + string resultJson = Marshal.PtrToStringAnsi(resultPtr); // 释放 DLL 分配的内存 FreeString(resultPtr); Console.WriteLine("log999999999999999999"+resultJson); diff --git a/SparkClient.csproj b/SparkClient.csproj index 5f1fd7f..4ceff56 100644 --- a/SparkClient.csproj +++ b/SparkClient.csproj @@ -142,6 +142,9 @@ + + Code + Code diff --git a/SparkDB.db b/SparkDB.db index 42b229f8421bf32f39e74bbe9ff04606e2eb7160..32bd5d6012ae5eb3a344a3dff9de5a8a4ec4ddb3 100644 GIT binary patch delta 12405 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 delta 12405 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 diff --git a/ViewModel/Grading/DiamondSelectVM.cs b/ViewModel/Grading/DiamondSelectVM.cs index 9b6ec3b..130ba2c 100644 --- a/ViewModel/Grading/DiamondSelectVM.cs +++ b/ViewModel/Grading/DiamondSelectVM.cs @@ -16,6 +16,7 @@ using Microsoft.Data.Sqlite; using SparkClient.Model.Entity; using SparkClient.Model.Services; using MessageBox = System.Windows.MessageBox; +using System.Runtime.CompilerServices; namespace SparkClient.ViewModel.Grading; @@ -112,46 +113,82 @@ public class DiamondSelectVM : BaseViewModel /// public async void StartGrading(object param) { - if (param != null) + LoadingDialog loading = new LoadingDialog(); + try { - LoadingDialog loading = new LoadingDialog(); - var progressTask = Task.Run(() => Application.Current.Dispatcher.Invoke(() => loading.ShowDialog())); - await Task.Run(async () => + if (param != null) { - for (int i = 0; i <= 100; i++) + var progressTask = Task.Run(() => Application.Current.Dispatcher.Invoke(() => loading.ShowDialog())); + await Task.Run(async () => { - // 模拟耗时操作 - //System.Threading.Thread.Sleep(50); // 休眠50毫秒 - await Task.Delay(5); + bool isEnd = false; + int progress = 0; // 更新进度条的值(需要在UI线程上执行) - loading.Dispatcher.Invoke(() => + loading.Dispatcher.Invoke(async () => { - loading.setValue(i); + 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) - { + + 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]; - } - - // 启动soc - socResolt = await DoSoc(); - // 启动算法 - parameter = await DoAlgorithm(socResolt, parameter.Shape, parameter.CrownType); - - - parameter.DiamondCode = DiamondCode; - GradingResult(parameter); - }); - await Task.Delay(5); - loading.Close(); + 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 { + } } diff --git a/ViewModel/Grading/GradingResultVM.cs b/ViewModel/Grading/GradingResultVM.cs index 95539af..992e0f7 100644 --- a/ViewModel/Grading/GradingResultVM.cs +++ b/ViewModel/Grading/GradingResultVM.cs @@ -16,6 +16,8 @@ using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using SparkClient.Views.Dialog; using NPOI.HPSF; +using Application = System.Windows.Application; +using System.Runtime.CompilerServices; namespace SparkClient.ViewModel.Grading; public class GradingResultVM : BaseViewModel @@ -73,7 +75,7 @@ public class GradingResultVM : BaseViewModel } InitCombobox(); DS = "NA"; - AutoSave(); + // AutoSave(); } #region 画面初始化相关操作 @@ -573,11 +575,53 @@ public class GradingResultVM : BaseViewModel } private async void ExportFile(string filePath) { - TxtFile(filePath); - ExcelFile(filePath); - await DatFile(filePath); - STLFile(filePath); - DataConver(filePath); + ExportDialog exportDialog = new ExportDialog(); + var tcs = new TaskCompletionSource(); + //var progressTask = Task.Run(() => Application.Current.Dispatcher.Invoke(() => { + // exportDialog.Closed += (s, e) => tcs.SetResult(true); + // exportDialog.ShowDialog(); + //} + // )); + await Task.Run(async () => + { + + exportDialog.Dispatcher.Invoke(() => + { + exportDialog.setValue("Txt File(1/4)"); + }); + TxtFile(filePath); + + exportDialog.Dispatcher.Invoke(() => + { + exportDialog.setValue("Excel File(2/4)"); + }); + ExcelFile(filePath); + + exportDialog.Dispatcher.Invoke(() => + { + exportDialog.setValue("DAT File(3/4)"); + }); + + await DatFile(filePath); + + exportDialog.Dispatcher.Invoke(() => + { + exportDialog.setValue("STL File(4/4)"); + }); + await Task.Delay(100); + STLFile(filePath); + exportDialog.Dispatcher.Invoke(() => + { + exportDialog.setValue("Success"); + }); + //DataConver(filePath); + //exportDialog.Dispatcher.Invoke(() => + //{ + // exportDialog.setValue("5/5"); + //}); + }); + await Task.Delay(500); + exportDialog.Close(); } private void TxtFile(string filePath) @@ -776,11 +820,24 @@ public class GradingResultVM : BaseViewModel } else if (isthin) { - girdleName = thinDic[order]; + if (order > 4) { + girdleName = "Extremely Thin"; + } + else + { + girdleName = thinDic[order]; + } } else if (isthick) { - girdleName = thickDic[order]; + if (order > 4) + { + girdleName = "VeryThick"; + } + else + { + girdleName = thickDic[order]; + } } return girdleName; } diff --git a/Views/Dialog/ExportDialog.xaml b/Views/Dialog/ExportDialog.xaml new file mode 100644 index 0000000..0b1ceab --- /dev/null +++ b/Views/Dialog/ExportDialog.xaml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + diff --git a/Views/Dialog/ExportDialog.xaml.cs b/Views/Dialog/ExportDialog.xaml.cs new file mode 100644 index 0000000..d129168 --- /dev/null +++ b/Views/Dialog/ExportDialog.xaml.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace SparkClient.Views.Dialog +{ + /// + /// LoadingDialog.xaml 的交互逻辑 + /// + public partial class ExportDialog : Window + { + public ExportDialog() + { + InitializeComponent(); + this.MinWidth = 1000; + this.MinHeight = 1000; + } + + public void setValue(string content) + { + Value.Text = content; + } + } +} diff --git a/Views/UserControl/ViewportData/Helper/VideoHelper.cs b/Views/UserControl/ViewportData/Helper/VideoHelper.cs index 6e744f8..9af1d9c 100644 --- a/Views/UserControl/ViewportData/Helper/VideoHelper.cs +++ b/Views/UserControl/ViewportData/Helper/VideoHelper.cs @@ -14,7 +14,7 @@ namespace SparkClient.Views.UserControl.ViewportData.Helper; public class VideoHelper { - public static async void CreateVideoFromPngList(List pngEncoders, string outputPath) + public static async Task CreateVideoFromPngList(List pngEncoders, string outputPath) { string tempDirectory = Path.Combine(System.Environment.CurrentDirectory, "PngFrames"); Directory.CreateDirectory(tempDirectory); diff --git a/Views/UserControl/ViewportData/Helper/ViewportHelperPro.cs b/Views/UserControl/ViewportData/Helper/ViewportHelperPro.cs index a6052b7..9b96816 100644 --- a/Views/UserControl/ViewportData/Helper/ViewportHelperPro.cs +++ b/Views/UserControl/ViewportData/Helper/ViewportHelperPro.cs @@ -174,7 +174,7 @@ public class ViewportHelperPro List pngList = await generationTask; - VideoHelper.CreateVideoFromPngList(pngList, filePath); + await VideoHelper.CreateVideoFromPngList(pngList, filePath); } /// diff --git a/Views/UserControl/ViewportData/ViewportData.cs b/Views/UserControl/ViewportData/ViewportData.cs index 5c1fa6e..a7e2e53 100644 --- a/Views/UserControl/ViewportData/ViewportData.cs +++ b/Views/UserControl/ViewportData/ViewportData.cs @@ -130,6 +130,7 @@ public class ViewportData facetsFinal.Add(item); } + ViewportManager.ViewportTriangle.Clear(); ViewportManager.ViewportTriangle.AddRange(facetsFinal); // ViewportManager.LoadModelByEntities(facetsFinal); }