From 2e889843b4c171f2d6ad8e0d53084040703d11f6 Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 09 十一月 2026 13:18:21 +0800
Subject: [PATCH] docs: CAN 总线级应答器 + 硬件调试页多标签多会话 设计规格
---
WPFProject/LoadingWindow.xaml.cs | 126 ++++++++++++++++++++++++++++++++++--------
1 files changed, 102 insertions(+), 24 deletions(-)
diff --git a/WPFProject/LoadingWindow.xaml.cs b/WPFProject/LoadingWindow.xaml.cs
index b929c03..3ef9eb7 100644
--- a/WPFProject/LoadingWindow.xaml.cs
+++ b/WPFProject/LoadingWindow.xaml.cs
@@ -1,9 +1,17 @@
锘縰sing HMI.Base;
+using HMI.Core.Entity;
+using HMI.Core.Setting;
+using HMI.Core.Util;
+using HMI.UI.Util;
+using HMI.Util.Alarm;
using Panuon.WPF.UI;
using System;
+using System.IO;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Documents;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
namespace WPFProject
{
@@ -13,71 +21,142 @@
public partial class LoadingWindow : WindowX
{
- private string consoleText = "";
+ private string message = "";
- public string ConsoleText
+ public string Message
{
- get { return consoleText; }
- set { Set(ref consoleText, value); }
+ get { return message; }
+ set { Set(ref message, value); }
+ }
+
+ private bool HasErr = false;
+
+ private bool showConsole = false;
+ public bool ShowConsole
+ {
+ get => showConsole;
+ set
+ {
+ Set(ref showConsole, value);
+ NotifyOfPropertyChange("ConsoleVisiable");
+ NotifyOfPropertyChange("BarVisiable");
+ }
+ }
+
+ public Visibility ConsoleVisiable
+ {
+ get => showConsole ? Visibility.Visible : Visibility.Collapsed;
+ }
+
+ public Visibility BarVisiable
+ {
+ get => showConsole ? Visibility.Collapsed : Visibility.Visible;
}
public LoadingWindow()
{
DataContext = this;
InitializeComponent();
+ logo.Source = new BitmapImage(new Uri(Path.Combine(PathHelper.IconFolder,
+ SystemSetting.Instance.LoginLogoPath ?? "LoginLogo.png")));
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
-
+
}
- private void Loader_LoadMessageAppend(object sender, string e)
+ private void Loader_LoadMessageAppend(object sender, LoadMsg msg)
{
- Add(e);
+ Dispatcher.BeginInvoke(() =>
+ {
+ switch (msg.Type)
+ {
+ case LoadMsgType.INIT:
+ total = msg.NumData;
+ Add(msg.Message, msg.Result);
+ break;
+ case LoadMsgType.LOADING:
+ HasErr = HasErr || msg.Result == false;
+ if (msg.Result != null)
+ {
+ processBar.Value = ++finished / total * 100;
+ }
+ Add(msg.Message, msg.Result);
+ break;
+ case LoadMsgType.FINISHED:
+ LoadFinished();
+ break;
+ default:
+ break;
+ }
+
+ });
}
private void Button_Click(object sender, RoutedEventArgs e)
{
- PanuonWindow window = new PanuonWindow();
+ this.Closed -= ShutDownWhen_Closed;
window.Show();
this.Close();
}
+ private PanuonWindow window;
+ private double total;
+ private double finished;
+
private void WindowX_ContentRendered(object sender, System.EventArgs e)
{
+ window = new PanuonWindow();
PluginLoader loader = PluginLoader.GetLoader();
loader.LoadMessageAppend += Loader_LoadMessageAppend;
- loader.Loaded += Loader_Loaded;
+ AlarmUtil.LoadMessageAppend += Loader_LoadMessageAppend;
Task.Run(() =>
{
- loader.LoadMenuAndPlugin(Dispatcher);
+ AlarmUtil.Init();
+ loader.LoadMenuAndPlugin(window, Dispatcher);
//
});
}
- private void Loader_Loaded(object sender, EventArgs e)
+ private void LoadFinished()
{
- Dispatcher.Invoke(() =>
+ if (!HasErr)
{
Button_Click(null, null);
- });
+ }
+ else
+ {
+ WindowXCaption.SetButtons(this, CaptionButtons.Close);
+ ShowConsole = true;
+ BtnNext.Visibility = Visibility.Visible;
+ MsgBoxHelper.Error(this, this.lang("App.LoadPluginError"));
+ this.Closed += ShutDownWhen_Closed; ;
+ }
}
- public void Add(string text)
+ private void ShutDownWhen_Closed(object sender, EventArgs e)
{
- string t = string.Format("{0:G}", DateTime.Now);
- Run run = new Run();
- run.Text = t + " 淇℃伅锛�" + text;
- //run.Foreground = new Brush();
+ Application.Current.Shutdown();
+ }
- Paragraph paragraph = new Paragraph(run) {
- LineHeight =1
+ public void Add(string text, bool? result)
+ {
+ Message = text;
+ string time = string.Format("{0:G}", DateTime.Now);
+ Run run = new Run();
+ string type = result != false ? "Info" : "Warn";
+ run.Text = $"{time} {type} {text}";
+ run.Foreground = result == null ? Brushes.Black : (result == true ? Brushes.Green : Brushes.Red);
+
+ Paragraph paragraph = new Paragraph(run)
+ {
+ LineHeight = 1
};
- //rtxtLog.Document.Blocks.InsertAfter(); ;
- //鎻掑叆鍒版渶鍓嶉潰
- Console.Document.Blocks.InsertAfter(Console.Document.Blocks.LastBlock, paragraph);
//涔熷彲浠ユ彃鍏ュ埌鏈�鍚庨潰
+ Console.Document.Blocks.InsertAfter(Console.Document.Blocks.LastBlock, paragraph);
+
+ //鎻掑叆鍒版渶鍓嶉潰
//rtxtLog.Document.Blocks.Add(paragraph);
// 婊氬姩鑷虫渶鍚庤
@@ -92,7 +171,6 @@
// _ = Console.Document.Blocks.Remove(Console.Document.Blocks.FirstBlock);
// }
//}
-
}
}
}
--
Gitblit v1.9.1