|
|
4 dni temu | |
|---|---|---|
| src | 4 dni temu | |
| .gitignore | 1 tydzie艅 temu | |
| CLAUDE.md | 4 dni temu | |
| README.md | 1 tydzie艅 temu | |
| YZWater3.sln | 1 tydzie艅 temu | |
| xxx.xlsx | 4 dni temu |
鍩轰簬 Avalonia UI 鐨勮法骞冲彴姹℃按澶勭悊鍘傜洃鎺х郴缁燂紝鏀寔 Windows銆丩inux 鍜 macOS銆
| 缁勪欢 | 鎶鏈柟妗 |
|---|---|
| UI 妗嗘灦 | Avalonia UI 11.2.3 |
| 杩愯鏃 | .NET 8.0 |
| MVVM 妗嗘灦 | CommunityToolkit.Mvvm |
| PLC 閫氫俊 | HslCommunication |
| 鏁版嵁搴 | FreeSql + SQLite |
| 鍥捐〃 | LiveCharts2 |
| 鏃ュ織 | Serilog |
YZWater3/
鈹溾攢鈹 src/
鈹 鈹溾攢鈹 YZWater.Core/ # 鏍稿績涓氬姟閫昏緫锛堝叡浜級
鈹 鈹 鈹溾攢鈹 Models/ # 鏁版嵁妯″瀷
鈹 鈹 鈹 鈹溾攢鈹 Person.cs # 浜哄憳妯″瀷
鈹 鈹 鈹 鈹溾攢鈹 AlarmRecord.cs # 鎶ヨ璁板綍
鈹 鈹 鈹 鈹溾攢鈹 FlowRecord.cs # 娴侀噺璁板綍
鈹 鈹 鈹 鈹溾攢鈹 EquipmentStatus.cs # 璁惧鐘舵
鈹 鈹 鈹 鈹斺攢鈹 SystemConfig.cs # 绯荤粺閰嶇疆
鈹 鈹 鈹溾攢鈹 Services/ # 鏈嶅姟灞
鈹 鈹 鈹 鈹溾攢鈹 DatabaseService.cs # 鏁版嵁搴撴湇鍔
鈹 鈹 鈹 鈹溾攢鈹 PlcService.cs # PLC 閫氫俊鏈嶅姟
鈹 鈹 鈹 鈹斺攢鈹 ConfigService.cs # 閰嶇疆鏈嶅姟
鈹 鈹 鈹溾攢鈹 ViewModels/ # ViewModel 灞
鈹 鈹 鈹 鈹溾攢鈹 MainViewModel.cs # 涓荤獥鍙
鈹 鈹 鈹 鈹溾攢鈹 ViewAViewModel.cs # 涓诲伐鑹
鈹 鈹 鈹 鈹溾攢鈹 ViewBViewModel.cs # 鍙傛暟璁剧疆
鈹 鈹 鈹 鈹溾攢鈹 ViewCViewModel.cs # 娴侀噺璁板綍
鈹 鈹 鈹 鈹溾攢鈹 ViewDViewModel.cs # 鎶ヨ璁板綍
鈹 鈹 鈹 鈹斺攢鈹 ViewEViewModel.cs # 鍏充簬
鈹 鈹 鈹斺攢鈹 Utils/ # 宸ュ叿绫
鈹 鈹 鈹溾攢鈹 Nlogger.cs # 鏃ュ織宸ュ叿
鈹 鈹 鈹斺攢鈹 WinSize.cs # 绐楀彛灏哄宸ュ叿
鈹 鈹
鈹 鈹斺攢鈹 YZWater.Avalonia/ # Avalonia UI 椤圭洰
鈹 鈹溾攢鈹 Views/ # XAML 瑙嗗浘
鈹 鈹 鈹溾攢鈹 MainWindow.axaml # 涓荤獥鍙
鈹 鈹 鈹溾攢鈹 ViewAView.axaml # 涓诲伐鑹鸿鍥撅紙宸ヤ笟鎺т欢锛
鈹 鈹 鈹溾攢鈹 ViewBView.axaml # 鍙傛暟璁剧疆瑙嗗浘
鈹 鈹 鈹溾攢鈹 ViewCView.axaml # 娴侀噺璁板綍瑙嗗浘
鈹 鈹 鈹溾攢鈹 ViewDView.axaml # 鎶ヨ璁板綍瑙嗗浘
鈹 鈹 鈹斺攢鈹 ViewEView.axaml # 鍏充簬瑙嗗浘
鈹 鈹溾攢鈹 Controls/ # 鑷畾涔夊伐涓氭帶浠
鈹 鈹 鈹溾攢鈹 WaterTankControl.cs # 姘寸鎺т欢
鈹 鈹 鈹溾攢鈹 PumpControl.cs # 娉垫帶浠
鈹 鈹 鈹溾攢鈹 FanControl.cs # 椋庢墖鎺т欢
鈹 鈹 鈹溾攢鈹 PipeLineControl.cs # 绠¢亾鎺т欢
鈹 鈹 鈹斺攢鈹 ValveControl.cs # 闃闂ㄦ帶浠
鈹 鈹溾攢鈹 Converters/ # 鍊艰浆鎹㈠櫒
鈹 鈹斺攢鈹 Assets/ # 璧勬簮鏂囦欢
鈹
鈹斺攢鈹 YZWater3.sln # 瑙e喅鏂规鏂囦欢
鍏嬮殕浠撳簱
git clone <repository-url>
cd YZWater3
杩樺師渚濊禆
dotnet restore
鏋勫缓椤圭洰
dotnet build
杩愯搴旂敤
dotnet run --project src/YZWater.Avalonia
榛樿閰嶇疆鏂囦欢锛yzwater-config.json
{
"PlcIp": "192.168.0.150",
"PlcPort": 5000,
"AutoConnect": true,
"LevelHighAlarm": 80.0,
"LevelLowAlarm": 20.0,
"FlowHighAlarm": 100.0,
"PumpFrequency": 50.0,
"SystemName": "姹℃按澶勭悊鐩戞帶绯荤粺",
"CompanyName": "鎵窞鏃僵绉戞妧鏈夐檺鍏徃",
"ContactPerson": "璧电粡鐞",
"ContactPhone": "18115099090"
}
鏁版嵁搴撴枃浠讹細yzwater.db锛圫QLite锛
鑷姩鍒涘缓浠ヤ笅琛細
persons - 浜哄憳琛alarm_records - 鎶ヨ璁板綍琛flow_records - 娴侀噺璁板綍琛system_config - 绯荤粺閰嶇疆琛椤圭洰浣跨敤 AdaptiveContainer 鎺т欢瀹炵幇瑙f瀽搴﹁嚜閫傚簲锛
鈹屸攢鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹
鈹 绐楀彛瀹為檯澶у皬 (1920 x 1080) 鈹
鈹 鈹屸攢鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹 鈹
鈹 鈹 缂╂斁鍚庣殑鍐呭鍖哄煙 (1280 x 800 * 1.25) 鈹 鈹
鈹 鈹 鈹屸攢鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹 鈹 鈹
鈹 鈹 鈹 璁捐鍐呭 (1280 x 800) 鈹 鈹 鈹
鈹 鈹 鈹 - 鎵鏈夋帶浠朵娇鐢ㄥ浐瀹氬潗鏍 鈹 鈹 鈹
鈹 鈹 鈹 - 鐢卞鍣ㄧ粺涓缂╂斁 鈹 鈹 鈹
鈹 鈹 鈹斺攢鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹 鈹 鈹
鈹 鈹斺攢鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹 鈹
鈹斺攢鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹
<!-- 鍦 MainWindow.axaml 涓 -->
<controls:AdaptiveContainer DesignWidth="1280" DesignHeight="800"
Stretch="Uniform" MinScale="0.6" MaxScale="1.5">
<!-- 鎵鏈夊唴瀹规斁鍦ㄨ繖閲 -->
</controls:AdaptiveContainer>
ResolutionManager 鎻愪緵鍏ㄥ眬鍒嗚鲸鐜囦俊鎭細
// 鑾峰彇褰撳墠缂╂斁姣斾緥
var scale = ResolutionManager.Instance.UniformScale;
// 璁$畻缂╂斁鍚庣殑灏哄
var scaledWidth = ResolutionManager.Instance.Scale(100);
// 璁$畻缂╂斁鍚庣殑瀛椾綋澶у皬
var fontSize = ResolutionManager.Instance.ScaleFontSize(14);
鏀寔鏂囧瓧鏍囩
<controls:WaterTankControl WaterLevel="75" Text="鍏ュ彛姹" WaterColor="#178187"/>
鏀寔澶氶鑹查厤缃
<controls:PumpControl IsRunning="{Binding Pump1Running}" Speed="2" Text="娉1"/>
鏀寔鏂囧瓧鏍囩
<controls:FanControl IsRunning="{Binding Fan1Running}" Speed="1" Text="椋庢墖1"/>
鍙厤缃閬撻鑹插拰姘存祦棰滆壊
<controls:PipeLineControl IsFlow="True" IsHorizontal="True"/>
鏀寔鏂囧瓧鏍囩
<controls:ValveControl Status="{Binding Valve1Status}" Text="杩涙按闃"/>
| 鐗规 | YZWater2 (WPF) | YZWater3 (Avalonia) |
|---|---|---|
| 璺ㄥ钩鍙 | 鉂 浠 Windows | 鉁 Windows/Linux/macOS |
| UI 妗嗘灦 | WPF | Avalonia UI 11 |
| 杩愯鏃 | .NET Framework 4.8 | .NET 8.0 |
| MVVM | Caliburn.Micro | CommunityToolkit.Mvvm |
| 鍥捐〃 | LiveCharts.Wpf | LiveCharts2 |
| 鎺т欢搴 | HandyControl | Semi.Avalonia |
| 鏃ュ織 | NLog | Serilog |
| 宸ヤ笟鎺т欢 | HslControls | 鑷畾涔夋帶浠 |
YZWater.Core/ViewModels 涓垱寤 ViewModelYZWater.Avalonia/Views 涓垱寤哄搴旂殑 ViewMainViewModel 涓坊鍔犺鍥惧垏鎹㈤昏緫MainWindow.axaml 涓坊鍔 TabItem鍦 YZWater.Avalonia/Controls 鐩綍涓垱寤鸿嚜瀹氫箟鎺т欢锛屼緥濡傦細
浣跨敤 CommunityToolkit.Mvvm 鐨勬簮鐢熸垚鍣細
public partial class MyViewModel : ObservableObject
{
[ObservableProperty]
private string _name = string.Empty;
[RelayCommand]
private async Task SaveAsync()
{
// 淇濆瓨閫昏緫
}
}
yzwater.db 鏂囦欢閲嶆柊鍚姩漏 2024 鎵窞鏃僵绉戞妧鏈夐檺鍏徃