From 8294c107676c18538c6e06fe8eab2d209604ac6a Mon Sep 17 00:00:00 2001
From: chenluhua1980 <Chenluhua@qq.com>
Date: 星期一, 19 一月 2026 18:34:06 +0800
Subject: [PATCH] 1.完善和优化界面显示,数据懒加载,等待光标等,修复启动时界面卡的问题。 2.SVData的Push的限制和检查,因发现Glass呆在机器中时,不管机台是否运行都在不停压入数据。
---
SourceCode/Bond/Servo/ServoDlg.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 50 insertions(+), 0 deletions(-)
diff --git a/SourceCode/Bond/Servo/ServoDlg.cpp b/SourceCode/Bond/Servo/ServoDlg.cpp
index 77e626f..7c6641f 100644
--- a/SourceCode/Bond/Servo/ServoDlg.cpp
+++ b/SourceCode/Bond/Servo/ServoDlg.cpp
@@ -363,6 +363,8 @@
BOOL CServoDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
+ const ULONGLONG boot_ui_begin = GetTickCount64();
+ CWaitCursor wait; // 鏁翠釜鍒濆鍖栨湡鏄剧ず绛夊緟鍏夋爣锛岄伩鍏嶇敤鎴疯浠ヤ负鍗℃
// 灏嗏�滃叧浜�...鈥濊彍鍗曢」娣诲姞鍒扮郴缁熻彍鍗曚腑銆�
@@ -398,13 +400,19 @@
// model init
+ const ULONGLONG boot_model_begin = GetTickCount64();
theApp.m_model.init();
+ LOGI("[BOOT][UI] m_model.init finished, cost=%llu ms (since OnInit start %llu ms)",
+ (unsigned long long)(GetTickCount64() - boot_model_begin),
+ (unsigned long long)(GetTickCount64() - boot_ui_begin));
SetTimer(TIMER_ID_LOGIN, 1500, nullptr);
+ LOGI("[BOOT][UI] after model.init, elapsed=%llu ms", (unsigned long long)(GetTickCount64() - boot_ui_begin));
// 鑿滃崟
CMenu menu;
menu.LoadMenu(IDR_MENU_APP);
SetMenu(&menu);
+ LOGI("[BOOT][UI] menu loaded, elapsed=%llu ms", (unsigned long long)(GetTickCount64() - boot_ui_begin));
// toolbar
@@ -417,23 +425,46 @@
ASSERT(hMenu);
::EnableMenuItem(hMenu, ID_OPEATOR_SWITCH, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
m_pTopToolbar->GetBtn(IDC_BUTTON_JOBS)->EnableWindow(TRUE);
+ LOGI("[BOOT][UI] toolbar created, elapsed=%llu ms", (unsigned long long)(GetTickCount64() - boot_ui_begin));
// Tab
+ const ULONGLONG boot_pages_begin = GetTickCount64();
m_pPageGraph1 = new CPageGraph1();
m_pPageGraph1->Create(IDD_PAGE_GRAPH1, this);
+ LOGI("[BOOT][UI] page Graph1 created, cost=%llu ms (elapsed=%llu ms)",
+ (unsigned long long)(GetTickCount64() - boot_pages_begin),
+ (unsigned long long)(GetTickCount64() - boot_ui_begin));
m_pPageGraph2 = new CPageGraph2();
m_pPageGraph2->Create(IDD_PAGE_GRAPH2, this);
+ LOGI("[BOOT][UI] page Graph2 created, cost=%llu ms (elapsed=%llu ms)",
+ (unsigned long long)(GetTickCount64() - boot_pages_begin),
+ (unsigned long long)(GetTickCount64() - boot_ui_begin));
m_pPageGlassList = new CPageGlassList();
m_pPageGlassList->Create(IDD_PAGE_GLASS_LIST, this);
+ LOGI("[BOOT][UI] page GlassList created, cost=%llu ms (elapsed=%llu ms)",
+ (unsigned long long)(GetTickCount64() - boot_pages_begin),
+ (unsigned long long)(GetTickCount64() - boot_ui_begin));
m_pPageRecipe = new CPageRecipe();
m_pPageRecipe->Create(IDD_PAGE_RECIPE, this);
+ LOGI("[BOOT][UI] page Recipe created, cost=%llu ms (elapsed=%llu ms)",
+ (unsigned long long)(GetTickCount64() - boot_pages_begin),
+ (unsigned long long)(GetTickCount64() - boot_ui_begin));
m_pPageAlarm = new CPageAlarm();
m_pPageAlarm->Create(IDD_DIALOG_ALARM, this);
+ LOGI("[BOOT][UI] page Alarm created, cost=%llu ms (elapsed=%llu ms)",
+ (unsigned long long)(GetTickCount64() - boot_pages_begin),
+ (unsigned long long)(GetTickCount64() - boot_ui_begin));
m_pPageLog = new CPageLog();
m_pPageLog->Create(IDD_DIALOG_LOG, this);
+ LOGI("[BOOT][UI] page Log created, cost=%llu ms (elapsed=%llu ms)",
+ (unsigned long long)(GetTickCount64() - boot_pages_begin),
+ (unsigned long long)(GetTickCount64() - boot_ui_begin));
m_pPageTransferLog = new CPageTransferLog();
m_pPageTransferLog->Create(IDD_PAGE_TRANSFER_LOG, this);
+ LOGI("[BOOT][UI] page TransferLog created, cost=%llu ms (elapsed=%llu ms)",
+ (unsigned long long)(GetTickCount64() - boot_pages_begin),
+ (unsigned long long)(GetTickCount64() - boot_ui_begin));
CHmTab* m_pTab = CHmTab::Hook(GetDlgItem(IDC_TAB1)->m_hWnd);
m_pTab->SetPaddingLeft(20);
@@ -448,6 +479,7 @@
m_pTab->SetCurSel(0);
m_pTab->SetBkgndColor(RGB(222, 222, 222));
ShowChildPage(0);
+ LOGI("[BOOT][UI] pages/tabs created, elapsed=%llu ms", (unsigned long long)(GetTickCount64() - boot_ui_begin));
// 璇诲彇闈㈡澘瀹�
CString strIniFile;
@@ -467,11 +499,13 @@
m_pPanelAttributes = new CPanelAttributes();
m_pPanelAttributes->Create(IDD_PANEL_ATTRIBUTES, this);
+ LOGI("[BOOT][UI] panels created, elapsed=%llu ms", (unsigned long long)(GetTickCount64() - boot_ui_begin));
// statusbar
m_pMyStatusbar = new CMyStatusbar();
m_pMyStatusbar->Create(IDD_STATUSBAR, this);
m_pMyStatusbar->ShowWindow(SW_SHOW);
+ LOGI("[BOOT][UI] statusbar created, elapsed=%llu ms", (unsigned long long)(GetTickCount64() - boot_ui_begin));
@@ -488,10 +522,23 @@
InitRxWindows();
Resize();
+ // 鍔犺浇鍘嗗彶缂撳瓨鎻愮ず
+ {
+ CWaitCursor wait;
+ if (m_pMyStatusbar != nullptr) {
+ m_pMyStatusbar->setRunTimeText(_T("姝e湪鍔犺浇鍘嗗彶缂撳瓨..."));
+ m_pMyStatusbar->UpdateWindow();
+ }
+ LOGI("[BOOT][UI] before master.init, elapsed=%llu ms", (unsigned long long)(GetTickCount64() - boot_ui_begin));
// 鐩稿綋浜庡欢鏃惰皟鐢╩aster鐨勫垵濮嬪寲
+ const ULONGLONG boot_master_begin = GetTickCount64();
theApp.m_model.m_master.init();
+ LOGI("[BOOT][UI] m_master.init finished, cost=%llu ms (since OnInit start %llu ms)",
+ (unsigned long long)(GetTickCount64() - boot_master_begin),
+ (unsigned long long)(GetTickCount64() - boot_ui_begin));
theApp.m_model.loadPortParams();
+ }
// 鍒濆鍖杕aster浠ュ悗闇�瑕佹帶浠剁粦瀹氭暟鎹�
@@ -504,6 +551,9 @@
//SystemLogManager::getInstance.
+ LOGI("[BOOT][UI] OnInitDialog finished, total cost=%llu ms",
+ (unsigned long long)(GetTickCount64() - boot_ui_begin));
+
return TRUE; // 闄ら潪灏嗙劍鐐硅缃埌鎺т欢锛屽惁鍒欒繑鍥� TRUE
}
--
Gitblit v1.9.3