sunhonglei 5 months ago
commit 98791b166f
  1. 12
      Language/en_US.xaml
  2. 10
      Language/zh_CN.xaml
  3. BIN
      SparkDB.db
  4. 12
      ViewModel/BaseWindow/BaseControlVM.cs
  5. 29
      ViewModel/Grading/DiamondSelectVM.cs
  6. 56
      ViewModel/Grading/GradingLoadingVM.cs
  7. 2
      Views/Dialog/JsonImport.xaml
  8. 4
      Views/Grading/GradingLoading.xaml
  9. 3
      Views/UserControl/ViewportData/Helper/RayHelper.cs

@ -224,4 +224,16 @@
<sys:String x:Key="RayTracingFail">Image rendering error:</sys:String>
<sys:String x:Key="RayTracingFormTitle">Simulated Heart and Arrow Preview</sys:String>
<sys:String x:Key="RayTracingFormMessage">The simulated heart and arrow diagram is a rendered simulation. Actual results should be verified with a cut-scope.</sys:String>
<sys:String x:Key="NotNvidia">NVIDIA graphics driver not found. Some features may not work properly.</sys:String>
<sys:String x:Key="NotNvidiaVersionLow">NVIDIA driver version is outdated. Please upgrade your graphics driver. (Current: %version, Minimum: 528.33)</sys:String>
<sys:String x:Key="GradingLoading">Detecting, please wait...</sys:String>
<sys:String x:Key="GradingLoadingStop">Stop Detection</sys:String>
<sys:String x:Key="GradingLoadingStopAsk">Diamond data calculation is in progress. Do you want to stop?</sys:String>
<sys:String x:Key="GradingLoadingPaused">Paused</sys:String>
<sys:String x:Key="GradingLoadingContinue">Continue</sys:String>
<sys:String x:Key="GradingLoadingReplay">Replay</sys:String>
<sys:String x:Key="GradingLoadingPrevious">Previous Frame</sys:String>
<sys:String x:Key="GradingLoadingNext">Next Frame</sys:String>
</ResourceDictionary>

@ -225,10 +225,16 @@
<sys:String x:Key="RayTracingFormTitle">仿真心箭图预览</sys:String>
<sys:String x:Key="RayTracingFormMessage">仿真心箭图为模拟渲染,实际请以切工镜观测为准。</sys:String>
<sys:String x:Key="NotNvidia">未找到Nvidia显卡驱动,部分功能可能无法正常运行。</sys:String>
<sys:String x:Key="NotNvidiaVersionLow">Nvidia显卡驱动版本过旧,请尝试升级显卡驱动。(当前:%version,最低:528.33)</sys:String>
<sys:String x:Key="NotNvidia">未找到NVIDIA显卡驱动,部分功能可能无法正常运行。</sys:String>
<sys:String x:Key="NotNvidiaVersionLow">NVIDIA显卡驱动版本过旧,请尝试升级显卡驱动。(当前:%version,最低:528.33)</sys:String>
<sys:String x:Key="GradingLoading">正在检测,请稍等</sys:String>
<sys:String x:Key="GradingLoadingStop">终止检测</sys:String>
<sys:String x:Key="GradingLoadingStopAsk">正在计算钻石数据,是否终止?</sys:String>
<sys:String x:Key="GradingLoadingPaused">暂停</sys:String>
<sys:String x:Key="GradingLoadingContinue">继续</sys:String>
<sys:String x:Key="GradingLoadingReplay">重播</sys:String>
<sys:String x:Key="GradingLoadingPrevious">上一帧</sys:String>
<sys:String x:Key="GradingLoadingNext">下一帧</sys:String>
</ResourceDictionary>

Binary file not shown.

@ -12,13 +12,14 @@ public class BaseControlVM : BaseViewModel
string _windowTitle;
private Visibility _showFunctionButton;
private Visibility _showCloseButton;
private string _functionButtonIcon;
private Object _viewContent;
public string WindowTitle { get { return _windowTitle; } set { _windowTitle = value; OnPropertyChanged("WindowTitle"); } }
public Visibility ShowFunctionButton { get { return _showFunctionButton; } set { _showFunctionButton = value; OnPropertyChanged("ShowFunctionButton"); } }
public Visibility ShowCloseButton { get { return _showFunctionButton; } set { _showFunctionButton = value; OnPropertyChanged("ShowFunctionButton"); } }
public Visibility ShowCloseButton { get { return _showCloseButton; } set { _showCloseButton = value; OnPropertyChanged("ShowCloseButton"); } }
public string FunctionButtonIcon { get { return _functionButtonIcon; } set { _functionButtonIcon = value; OnPropertyChanged("FunctionButtonIcon"); } }
public Object ViewControl { get { return _viewContent; } set { _viewContent = value; OnPropertyChanged("ViewControl"); } }
@ -55,11 +56,11 @@ public class BaseControlVM : BaseViewModel
{
Content = vm;
WindowTitle = windowTitle;
ShowFunctionButton = Visibility.Hidden;
ShowCloseButton = Visibility.Visible;
CloseCommand = new RelayCommand(CloseVM);
NextCommand = new RelayCommand(NextDiamond);
ShowFunctionButton = Visibility.Hidden;
if (vm.GetType().Equals(typeof(GradingResultVM)))
{
Application.Current.Dispatcher.Invoke(() =>
@ -146,11 +147,14 @@ public class BaseControlVM : BaseViewModel
if(Content is GradingResultVM)
{
bool isSaved = (Content as GradingResultVM).isSaved;
if (isSaved) {
if (isSaved)
{
WindowManager.PreviousVM();
WindowManager.mainViewModel.Content = WindowManager.PreviousVM();
}
else {
// 部署改造:2
WindowManager.PreviousVM();
WindowManager.mainViewModel.Content = WindowManager.PreviousVM();
// MessageBox message = new MessageBox();
// MessageBoxResult result = message.ShowAsk(MultilingualHelper.getString("DiamodResultCloseConfirm"));

@ -147,9 +147,34 @@ public class DiamondSelectVM : BaseViewModel
string runModel = ConfigurationHelper.ReadConfigValue("RunModel")??"1";
if("0".Equals(runModel))
if ("0".Equals(runModel))
//json模式
DoStartGrading(param);
{
var loadingView = new GradingLoadingVM(param.ToString(), DiamondCode);
BaseControlVM vm = new BaseControlVM(loadingView, MultilingualHelper.getString("wait"));
vm.WindowTitle = string.IsNullOrWhiteSpace(DiamondCode) ? vm.WindowTitle : $"{vm.WindowTitle} - {DiamondCode}";
WindowManager.mainViewModel.Content = vm;
WindowManager.openContent.Add(vm);
//DoStartGrading(param);
int res = await loadingView.Start(11);
if (res > -100 && res < 0)
{
//返回
loadingView.Dispose();
WindowManager.mainViewModel.Content = WindowManager.PreviousVM();
return;
}
else if ( res <= -100)
{
return;
}
else
{
GradingResult(loadingView.Parameter);
loadingView.Dispose();
}
}
else if ("1".Equals(runModel))
{
//Image模式

@ -1,6 +1,7 @@
using System.Configuration;
using System.Data;
using System.IO;
using System.Text;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
@ -13,6 +14,7 @@ using SparkClient.Model.Helper;
using SparkClient.Model.Services;
using SparkClient.ViewModel.BaseWindow;
using SparkClient.ViewModel.Configuration;
using SparkClient.Views.Dialog;
using SparkDotNetCore.DiamondScanner;
using SparkDotNetCore.DiamondScanner.Entity;
using MessageBox = SparkClient.Views.Dialog.MessageBox;
@ -66,9 +68,9 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
}
public string ButtonText => CurrentStatus switch
{
PlayStatus.Playing => "暂停",
PlayStatus.Paused => "继续",
_ => "重播" // Stopped 状态
PlayStatus.Playing => MultilingualHelper.getString("GradingLoadingPaused"),
PlayStatus.Paused => MultilingualHelper.getString("GradingLoadingContinue"),
_ => MultilingualHelper.getString("GradingLoadingReplay") // Stopped 状态
};
private CancellationTokenSource _cts;
private int _playDelay = 100; // 默认播放速度
@ -138,6 +140,31 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
{
var progress = RunProgressAsync(_progressCts.Token);
if (type == 11)
{
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());
await CompleteProgressQuicklyAsync();
return 0;
}
else
{
return -1;
}
}
if(type == 0){
_socClientService = new SOCClientService();
var processImage = _socClientService.ProcessImageCollectionAsync();
@ -321,17 +348,24 @@ public class GradingLoadingVM : BaseViewModel,IDisposable
private void Stop(object param)
{
//询问?停止:忽略
MessageBox messageBox = new MessageBox();
MessageBoxResult showAsk = messageBox.ShowAsk("正在计算钻石数据,是否终止?");
if (showAsk == MessageBoxResult.OK)
try
{
MessageBox messageBox = new MessageBox();
MessageBoxResult showAsk = messageBox.ShowAsk(MultilingualHelper.getString("GradingLoadingStopAsk"));
if (showAsk == MessageBoxResult.OK)
{
WindowManager.mainViewModel.Content = WindowManager.PreviousVM();
_scanner?.Cancel();
_progressCts.Cancel();
this.Dispose();
}
}
catch (Exception ex)
{
_scanner?.Cancel();
_progressCts.Cancel();
WindowManager.mainViewModel.Content = WindowManager.PreviousVM();
this.Dispose();
}
}
private async Task RunProgressAsync(CancellationToken token)

@ -8,7 +8,7 @@
Title="JsonImport" Height="450" Width="800"
DataContext="{Binding RelativeSource={RelativeSource Self}}"
WindowStyle="None" AllowsTransparency="True" Background="Transparent">
<Border CornerRadius="15" Background="White" x:Name="Border" >
<Border CornerRadius="10" Background="White" x:Name="Border" BorderBrush="Blue" BorderThickness="2">
<Grid ClipToBounds="True">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>

@ -406,7 +406,7 @@
<GradientStop Color="#107fd0" Offset="1"/>
</LinearGradientBrush>
</Border.Background>
<TextBlock FontSize="18" TextAlignment="Center" Foreground="#ffffff" IsEnabled="False" Text="上一帧" />
<TextBlock FontSize="18" TextAlignment="Center" Foreground="#ffffff" IsEnabled="False" Text="{StaticResource GradingLoadingPrevious}" />
</Border>
</Button>
<Button Grid.Column="1" Padding="0" Margin="10 0 10 0" Height="80" BorderThickness="0" IsEnabled="{Binding ImageIsEnable}"
@ -442,7 +442,7 @@
<GradientStop Color="#107fd0" Offset="1"/>
</LinearGradientBrush>
</Border.Background>
<TextBlock FontSize="18" TextAlignment="Center" Foreground="#ffffff" IsEnabled="False" Text="下一帧" />
<TextBlock FontSize="18" TextAlignment="Center" Foreground="#ffffff" IsEnabled="False" Text="{StaticResource GradingLoadingNext}" />
</Border>
</Button>
</Grid>

@ -16,9 +16,6 @@ public class RayHelper
private static string _image_path = AppDomain.CurrentDomain.BaseDirectory + @"Ray\Image\";
//unity渲染模型缓存(运行前清理)
private static string _obj_path = AppDomain.CurrentDomain.BaseDirectory + @"Ray\Obj";
//用于存放unity渲染插件(版本发布独立更新)
private static string _unity_path = AppDomain.CurrentDomain.BaseDirectory + @"Ray\Core\";
public static void GenerateRender(string modelInfo, string diamondCode)
{

Loading…
Cancel
Save