This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
YZWater3 鏄壃宸炴棴杞╃鎶鏈夐檺鍏徃寮鍙戠殑璺ㄥ钩鍙版薄姘村鐞嗗巶鐩戞帶绯荤粺锛屽熀浜 Avalonia UI 12 + .NET 8锛屾敮鎸 Windows/Linux/macOS銆
# 杩樺師渚濊禆
dotnet restore
# 鏋勫缓
dotnet build
# 杩愯锛堥粯璁や粠 src/YZWater.Avalonia 鍚姩锛
dotnet run --project src/YZWater.Avalonia
# 鍙戝竷鍗曟枃浠讹紙Windows锛
dotnet publish src/YZWater.Avalonia -c Release -r win-x64 --self-contained -p:PublishSingleFile=true
涓や釜椤圭洰锛孉valonia 渚濊禆 Core锛
YZWater3.sln
src/
鈹溾攢鈹 YZWater.Core/ # 鏍稿績涓氬姟閫昏緫锛圲I 鏃犲叧锛
鈹 鈹溾攢鈹 Models/ # 鏁版嵁妯″瀷锛圫qlSugar ORM锛
鈹 鈹溾攢鈹 Services/ # 鎵鏈変笟鍔℃湇鍔★紙鍗曚緥妯″紡涓轰富锛
鈹 鈹溾攢鈹 ViewModels/ # CommunityToolkit.Mvvm ViewModel
鈹 鈹斺攢鈹 Utils/ # WinSize銆丷esolutionManager
鈹
鈹斺攢鈹 YZWater.Avalonia/ # UI 灞
鈹溾攢鈹 Views/ # AXAML 瑙嗗浘锛圴iewA~ViewF + Login + Main锛
鈹溾攢鈹 Controls/ # 鑷畾涔夊伐涓氭帶浠 + ThemeHelper
鈹溾攢鈹 Themes/ # IndustrialTheme / IndustrialThemeLight / IndustrialStyles
鈹溾攢鈹 Converters/
鈹斺攢鈹 Services/
yzwater-config.json 鈫 RunMode 閰嶇疆锛| 妯″紡 | 琛屼负 |
|---|---|
Direct |
鐩磋繛 PLC锛堥粯璁わ級 |
Server |
杩 PLC + 鍚姩 WebSocket 鏈嶅姟绔紙HubServer锛岀鍙 8765锛 |
Client |
杩炴帴 WebSocket 鏈嶅姟绔帴鏀舵暟鎹紝涓嶇洿杩 PLC |
Mock |
鏃 PLC 鏃朵娇鐢 MockPlcService 鐢熸垚妯℃嫙鏁版嵁 |
ResetInstance() 鍚庨噸寤猴紝鐢ㄤ簬鐧诲嚭/閲嶇櫥褰曪級锛PlcPollingService銆AlarmServicePlcService锛圚slCommunication 瑗块棬瀛 S7锛夈ConfigService锛圝SON 閰嶇疆锛夈DatabaseService锛圫qlSugar + SQLite锛夈AuthService銆MockPlcServicestart_pump/stop_pump锛LogService.Initialize() 鈫 DatabaseService.Initialize() 鈫 鍔犺浇涓婚/璇█/PLC閰嶇疆
鈫 ShowLoginWindow 鈫 [鐧诲綍鎴愬姛] 鈫 StartServices() 鈫 ShowMainWindow()
StartServices() 鏍规嵁 RunMode 閫夋嫨 Direct/Server/Client锛屽潎浼氳皟鐢 StartPlcServices() 鍚姩 PlcPolling + Alarm + DataLogging銆
鍙屼富棰橀氳繃 ResourceInclude 鍒囨崲 Application.Resources.MergedDictionaries锛
Themes/IndustrialTheme.axaml锛堟繁鑹诧級Themes/IndustrialThemeLight.axaml锛堟祬鑹诧級鑷畾涔夋帶浠涓鐢 DynamicResource锛岃屾槸璁㈤槄 ThemeHelper.ThemeChanged 浜嬩欢鍚庤皟鐢 InvalidateVisual() 閲嶇粯銆ThemeHelper 鍐呴儴鐢ㄩ潤鎬 IBrush 灞炴х紦瀛樺綋鍓嶄富棰橀鑹诧紝渚 Render() 鏂规硶鐩存帴璇诲彇銆
鍏ㄩ儴缁ф壙 Control 骞堕噸鍐 Render(DrawingContext)锛屼娇鐢 AffectsRender<> 澹版槑瑙﹀彂閲嶇粯鐨勫睘鎬э細
WaterTankControl - 姘寸娑蹭綅PumpControl - 娉碉紙甯︽棆杞姩鐢伙紝OnAttachedToVisualTree 鍚姩 DispatcherTimer锛FanControl - 椋庢墖锛堝悓涓婏級PipeLineControl - 绠¢亾锛堣櫄绾挎祦鍔ㄥ姩鐢伙級ValveControl - 闃闂紙涓夋侊級GaugeControl - 浠〃StatusCard - 鐘舵佸崱鐗ObservableObject锛屼娇鐢 [ObservableProperty] 鍜 [RelayCommand]锛圕ommunityToolkit.Mvvm 婧愮敓鎴愬櫒锛App.axaml.cs 鎴 MainViewModel 涓氳繃 DataContext 缁戝畾MainViewModel 鎸佹湁鎵鏈夊瓙 ViewModel 瀹炰緥锛岄氳繃 CurrentView 灞炴у垏鎹 Tabyzwater.db锛圫QLite锛DatabaseService.Initialize() 涓愪釜寤鸿〃锛屽崟琛ㄥけ璐ヤ笉褰卞搷鍏朵粬琛users, alarm_records, flow_records, analog_records, audit_logs, persons, equipment_statusesAuthService 绠$悊鐧诲綍鐘舵侊紝鏀寔 4 绉嶈鑹诧紙Viewer / Operator / Engineer / Admin锛夈傞娆″惎鍔ㄨ嚜鍔ㄥ垱寤洪粯璁 admin 璐︽埛锛坅dmin/admin123锛夈傜櫥鍑烘椂閫氳繃 UserLoggedOut 浜嬩欢瑙﹀彂 StopServices() 骞堕噸鏂版樉绀虹櫥褰曠獥鍙c
AdaptiveContainer 鎺т欢瀹炵幇绛夋瘮缂╂斁锛岃璁″熀鍑 1280脳800锛岀缉鏀捐寖鍥 0.6x鈥1.5x銆
yzwater-config.json锛堟牴鐩綍锛岃 .gitignore 鎺掗櫎锛夛細
PlcIp, PlcPort, AutoConnectLevelHighAlarm, LevelLowAlarm, FlowHighAlarm, FlowLowAlarmRunMode, HubPort, HubServerUrl, HubTokenIsDarkTheme, IsChinesePlcAddresses锛圖ictionary锛宬ey 涓 PlcConfig 涓殑鏍囩鍚嶏級
Serilog 杈撳嚭鍒 Logs/log-{date}.txt锛堟寜澶╂粴鍔級鍜屾帶鍒跺彴銆傚穿婧冩棩蹇楀啓鍏ユ牴鐩綍 crash.log銆