From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点
---
docs/TapProject_代码结构分析.md | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 55 insertions(+), 0 deletions(-)
diff --git "a/docs/TapProject_\344\273\243\347\240\201\347\273\223\346\236\204\345\210\206\346\236\220.md" "b/docs/TapProject_\344\273\243\347\240\201\347\273\223\346\236\204\345\210\206\346\236\220.md"
new file mode 100644
index 0000000..ee163fc
--- /dev/null
+++ "b/docs/TapProject_\344\273\243\347\240\201\347\273\223\346\236\204\345\210\206\346\236\220.md"
@@ -0,0 +1,55 @@
+# TapProject 浠g爜缁撴瀯鍒嗘瀽
+
+## 1. 鍒嗘瀽鑼冨洿涓庣粨璁�
+
+- 鍒嗘瀽鐩綍锛歚D:\TestPlatform\TapProject`
+- 婧愮爜瑙勬ā锛�45 涓唴閮� `.csproj`銆�476 涓� C# 鏂囦欢銆�157 涓� XAML 鏂囦欢锛堝潎鎺掗櫎 `bin/obj/MigrationBackup`锛夈��
+- 鎶�鏈熀绾匡細鍏ㄩ儴闈㈠悜 .NET Framework 4.7.2锛涘叾涓� 33 涓棫寮忓伐绋嬩娇鐢� `v4.7.2`锛�12 涓� SDK 椋庢牸宸ョ▼浣跨敤 `net472`銆�
+- 鎬讳綋褰㈡�侊細杩欐槸涓�涓� WPF 妗岄潰娴嬭瘯骞冲彴锛岄噰鐢ㄢ�滀富瀹夸富 + 鍏叡 HMI 妗嗘灦 + 鏉冮檺椹卞姩鐨勫姩鎬佹彃浠� + 璁惧/娴嬭瘯鎵ц閫傞厤鍣ㄢ�濈殑妯″潡鍖栧崟浣撴灦鏋勩��
+- 鏍稿績涓氬姟锛歚Plugin.BurnIn` 璐熻矗鑰佸寲鐐�/绌翠綅 UI銆佹壂鐮併�丳LC 鐘舵�併�丮ES 鏍¢獙銆佹祴璇曟墽琛屾秷鎭鐞嗐�佹洸绾垮拰缁撴灉鎸佷箙鍖栵紱鎵ц寮曟搸閫氳繃 `ITestExecutionWrapper` 鍦� NI TestStand 涓� OpenTAP 涔嬮棿鍒囨崲銆�
+
+瀵瑰簲鍥捐 `TapProject_浠g爜缁撴瀯.drawio`锛�
+
+1. `01-鎬讳綋鍒嗗眰缁撴瀯`锛氬睍绀轰唬鐮佹ā鍧楀垎灞傘�佸叧閿緷璧栧拰澶栭儴绯荤粺銆�
+2. `02-杩愯鏃朵笌鑰佸寲涓婚摼璺痐锛氬睍绀哄惎鍔ㄣ�佺櫥褰曘�佹潈闄愯彍鍗曘�佸姩鎬佽杞姐�佹彃浠剁敓鍛藉懆鏈熶互鍙婅�佸寲娴嬭瘯鏁版嵁閾捐矾銆�
+
+## 2. 浠g爜妯″潡鍒嗗眰
+
+| 灞傜骇 | 涓昏宸ョ▼ | 鑱岃矗 |
+|---|---|---|
+| WPF 瀹夸富 | `WPFProject/TapProject.csproj` | 鍗曞疄渚嬪惎鍔ㄣ�佹棩蹇�/璇█/璧勬簮鍒濆鍖栥�佺櫥褰曘�佽杞借繘搴︺�佷富绐楀彛鍜岄〉绛炬壙杞� |
+| 鎻掍欢濂戠害涓庤杞� | `HMI.Core`銆乣HMI.Base` | `IPlugin`/`IPluginContainer` 鐢熷懡鍛ㄦ湡濂戠害銆乣PluginLoader`銆佹彃浠跺熀绫汇�佸弽灏勫吋瀹瑰寘瑁� |
+| 鍏叡 UI 涓庡伐鍏� | `HMI.UI`銆乣HMI.StdControl`銆乣HMI.Util`銆乣HMI.Util.Base`銆乣HMI.Simple.Util`銆乣HMI.LogUtil`銆乣HMI.SerialData.Util`銆乣HMI.MQUtil` | WPF 鎺т欢/鏍峰紡銆佺粦瀹氳浆鎹㈠櫒銆佽矾寰�/閰嶇疆/搴忓垪鍖栥�佹棩蹇椼�佷覆鍙c�丮SMQ 绛夐�氱敤鑳藉姏 |
+| 绯荤粺绠$悊 HMI | `HMI.MenuManage`銆乣HMI.SettingControl`銆乣HMI.ParameterManage`銆乣HMI.AlarmInfoManage`銆乣HMI.DataViewer`銆乣HMI.LogViewer` | 鐢ㄦ埛/瑙掕壊/鑿滃崟銆佺郴缁熻缃�佸弬鏁般�佹姤璀︺�佹暟鎹拰鏃ュ織鏌ヨ |
+| 鑰佸寲涓庤澶囦笟鍔℃彃浠� | `Plugin.BurnIn`銆乣Plugin.CurrentSensorControl`銆乣Plugin.DOControl`銆乣Plugin.DODriverControl`銆乣Plugin.ModelManage`銆乣Plugin.JarUI` | 鑰佸寲娴嬭瘯涓荤晫闈€�佺數娴�/DO 鎺у埗銆佸瀷鍙蜂笌宸ヨ鐣岄潰 |
+| 娴嬭瘯鎵ц涓庣紪杈� | `Plugin.TsExecution`銆乣Plugin.StandardTest`銆乣Plugin.TestPlanEditor`銆乣Plugin.SeqEditor`銆乣Plugin.TsSupport`銆乣HMI.TapApi`銆乣Util.ManualDebug` | TestStand/OpenTAP 鎶借薄銆佸簭鍒楁墽琛屻�佽鍒�/姝ラ缂栬緫銆佹墜鍔ㄨ皟璇� |
+| 鏁版嵁涓庢姤鍛婃彃浠� | `Plugin.TestResult`銆乣Plugin.DataViewer`銆乣Plugin.DataBoard`銆乣Plugin.QualityReport` | 娴嬭瘯缁撴灉銆佷笟鍔℃暟鎹�佺湅鏉裤�佽川閲忔姤琛� |
+| 璁惧涓庨�氫俊閫傞厤 | `PLCHelper`銆乣S7Driver`銆乣OPCClient`銆乣ModBusTcpController`銆乣DIOController`銆乣ConnectionUtil`銆乣CellStepSender` | S7 PLC銆丱PC銆丮odbus TCP銆丏IO銆乀CP/姝ラ鍙戦�佺瓑搴曞眰鎺ュ叆 |
+| 杈呭姪绋嬪簭 | `HMI.UnitTest`銆乣ConsoleTest`銆乣StationGlobalsReader` | 闆嗘垚娴嬭瘯澹炽�佹帶鍒跺櫒鎺у埗鍙拌瘯楠屻�乀estStand StationGlobals 璇诲彇 |
+
+## 3. 杩愯鏃朵富閾捐矾
+
+1. `App.Application_Startup` 鎵ц鍗曞疄渚嬩繚鎶わ紝娉ㄥ唽鍏煎缁勪欢锛屽垵濮嬪寲鏃ュ織銆佽瑷�銆佺郴缁熻缃拰 Toast锛岀劧鍚庢樉绀虹櫥褰曠獥鍙o紙`WPFProject/App.xaml.cs:94-119`锛夈��
+2. `Login` 浠� SQLite 鐨� `user / role / user_role_rel / role_menu_rel / menu` 琛ㄨ鍙栫敤鎴蜂笌鏉冮檺鑿滃崟锛屽苟鍐欏叆鍏ㄥ眬 `UserInfo`锛坄WPFProject/Login.xaml.cs:59-130`锛夈��
+3. `LoadingWindow` 鍒濆鍖栨姤璀︽湇鍔″苟璋冪敤 `PluginLoader.LoadMenuAndPlugin`锛坄WPFProject/LoadingWindow.xaml.cs:107-118`锛夈��
+4. `PluginLoader` 鏍规嵁褰撳墠鐢ㄦ埛鐨� `AllPermissions` 鎷煎嚭鑿滃崟鏍戯紝浠� `Plugin` 鐩綍鍔犺浇 DLL锛屾寜鏁版嵁搴撲腑鐨� `className` 鍙嶅皠鍒涘缓瀹炰緥锛屾敞鍏ユ棩蹇楀拰鎻掍欢绉佹湁閰嶇疆鐩綍锛岃皟鐢� `InitFinish` 骞舵寕鎺ュ叧闂簨浠讹紙`HMI.Base/PluginLoader.cs:52-123`锛夈��
+5. `PanuonWindow` 鏄� `IPluginContainer`锛沗MainTabControl` 鍦ㄥ垏鎹㈣彍鍗曟椂璋冪敤鎻掍欢鐨� `CanDeActive / DeActive / CanActive / Active`锛屾妸 WPF 鎴� WinForms 鍐呭瑁呭叆瀹夸富椤碉紙`WPFProject/Controls/MainTabControl.xaml.cs:138-181`锛夈��
+
+杩欐剰鍛崇潃鑿滃崟銆佹潈闄愬拰鎻掍欢绫诲瀷骞堕潪鍙敱缂栬瘧寮曠敤鍐冲畾锛涢儴缃茬洰褰曚腑鐨� DLL銆丼QLite 鑿滃崟鏁版嵁鍙婄敤鎴疯鑹插叡鍚屽喅瀹氬疄闄呰繍琛屾椂鐣岄潰銆�
+
+## 4. 鑰佸寲涓氬姟涓婚摼璺�
+
+- `Plugin.BurnIn.BurnInUI` 缁ф壙 `PluginMaskControl`锛屽垵濮嬪寲 S7 PLC 涓婁笅鏂囷紝璇诲彇浜у搧/鍏叡鍙傛暟銆佹壂鐮侀厤缃拰涓绘祴璇曞簭鍒楋紙`Plugin.BurnIn/BurnInUI.xaml.cs:25,105,179-222`锛夈��
+- 搴忓垪鎵╁睍鍚嶄负 `.tapplan` 鏃堕�夋嫨 `TapWrapper`锛屽惁鍒欓�夋嫨 `TeststandWrapper`锛涗袱鑰呴兘瀹炵幇 `ITestExecutionWrapper`锛屽悜涓婄粺涓�鎻愪緵搴忓垪鍚姩銆丼tationGlobals/FileGlobals 鍜� UI 娑堟伅锛坄Plugin.BurnIn/TestResultView.xaml.cs:209-263`銆乣Plugin.TsSupport/ITestExecutionWrapper.cs`锛夈��
+- 鎵ц寮曟搸浠ヤ簨浠剁爜 `10014` 鍜屾柟娉曠爜椹卞姩鐐変綋/绌翠綅鐘舵�併�佽鏁般�佹洸绾裤�佹彁绀哄拰缁撴灉淇濆瓨锛涚粨鏋滃彲钀藉湴鍒� SQLite 涓� CSV锛坄Plugin.BurnIn/TestResultView.xaml.cs:300-603`銆乣Plugin.BurnIn/SingleCell.xaml.cs:950-1030`锛夈��
+- `Scanner` 閫氳繃涓插彛璇荤爜锛屼笟鍔″弬鏁板喅瀹� MES 绔欎綅锛沗PNUtil` 閫氳繃 HTTP 璋冪敤 MES 鑾峰彇 PN 鍜岃繃绔欐牎楠岋紙`Plugin.BurnIn/Scanner.xaml.cs`銆乣Plugin.BurnIn/Util/PNUtil.cs:27-84`锛夈��
+- `BurnInUI` 涓� `SingleCell/Cooler` 閫氳繃 `PLCHelper.S7Context` 璇诲啓 `BurnInControler` PLC锛坄Plugin.BurnIn/Util/RunTimeVariablePool.cs`銆乣Plugin.BurnIn/SingleCell.xaml.cs:1107-1124`锛夈��
+
+## 5. 閲嶈杈圭晫涓庨闄�
+
+1. **褰撳墠妫�鍑烘棤娉曠嫭绔嬪畬鏁寸紪璇戙��** 闈欐�佽В鏋愬彂鐜� 17 鏉℃湭瑙f瀽 `ProjectReference`锛屾秹鍙� 7 涓伐绋嬶紱缂哄け婧愭爲鍖呮嫭 `D:\Project\OpenTapEditor`銆乣D:\TestPlatform\OpenTapEditor` 涓� `D:\VisualStudio\UILib/UtilLib`銆傚浘涓妸瀹冧滑鏍囦负鈥滃閮�/褰撳墠缂哄け鈥濓紝鑰屼笉鏄湰浠撳簱宸插叿澶囩殑妯″潡銆�
+2. **鎻掍欢鍖栧苟闈炲畬鍏ㄨВ鑰︺��** 涓诲伐绋嬪悓鏃剁洿鎺ュ紩鐢ㄥぇ閲忔彃浠堕」鐩紝鍙堝湪杩愯鏃朵緷鎹暟鎹簱鍙嶅皠鍔犺浇鎻掍欢 DLL锛涜繖鏄�滅紪璇戞湡鑱氬悎 + 杩愯鏃惰彍鍗曟彃浠跺寲鈥濈殑娣峰悎妯″紡銆�
+3. **鏍蜂緥鑿滃崟搴撲笌婧愮爜瀛樺湪婕傜Щ銆�** `WPFProject/Config/Database/database.db` 鐨� `menu` 琛ㄥ綋鍓嶆湁 13 鏉¤褰曪紙2 涓竴绾х洰褰曘��11 涓彾瀛愰」锛夛紝鍏朵腑寮曠敤 `HMI.IOMonitor.dll`锛屼絾婧愮爜鐩綍涓嶅瓨鍦紱鍚屾椂 `Plugin.BurnIn` 绛夊凡缂栬瘧宸ョ▼鏈嚭鐜板湪璇ユ牱渚嬭彍鍗曡〃涓�傞儴缃茬増鏁版嵁搴撳彲鑳戒笉鍚岋紝涓嶈兘鎶婃牱渚嬪簱瑙嗕负鏈�缁堝姛鑳芥竻鍗曘��
+4. **杩愯鐩綍鏄殣寮忎緷璧栥��** `PathHelper` 鐢� `Path.GetFullPath(".")` 浣滀负鏍圭洰褰曪紝`Plugin/Config/Icon/Lang` 绛夎矾寰勫彇鍐充簬杩涚▼宸ヤ綔鐩綍锛岃�屼笉瀹屽叏鍙栧喅浜� EXE 鎵�鍦ㄧ洰褰曘��
+5. 鏈鏄潤鎬佷唬鐮佷笌閰嶇疆缁撴瀯鍒嗘瀽锛屾湭鎵ц瀹屾暣缂栬瘧鍜岃澶囪仈鏈洪獙璇侊紱鍥句腑鐨勫璁惧叧绯绘潵鑷唬鐮佽皟鐢ㄤ笌椤圭洰寮曠敤锛屼笉浠h〃鐜板満绔彛銆佸崗璁弬鏁版垨璁稿彲宸查獙璇併��
+
--
Gitblit v1.9.1