Files
HC_APTBS/HC_APTBS.csproj
LucianoDev c617854c09 feat: implement SavePump/SaveAlarms, fix config round-trip bugs, redesign PDF reports
Config system fixes:
- Implement SavePump() — full XML serialization with insert/update by pump ID
- Add CanBusParameter.ToPumpXml() for legacy P1-P6 pump param format
- Fix LastRotationDirection never loaded in LoadSettings()
- Add SaveAlarms() to ConfigurationService and IConfigurationService
- Remove dead fields AppSettings.Clients and AppSettings.PumpIds

PDF report redesign:
- Professional layout with charts, verdict badges, and tolerance bands
- Add ReportChartRenderer (SVG) and ReportTheme styling constants
- Embed default_logo.png as fallback report logo

Documentation:
- Add gap analysis docs (config validation, ford unlock, missing features)
- Update CLAUDE.md architecture, known gaps, and debt tracking

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 15:21:22 +02:00

62 lines
2.3 KiB
XML

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net10.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UseWPF>true</UseWPF>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<!-- PCAN-Basic and FTD2XX native DLLs are 64-bit only -->
<PlatformTarget>x64</PlatformTarget>
<AssemblyName>HC_APTBS</AssemblyName>
<RootNamespace>HC_APTBS</RootNamespace>
</PropertyGroup>
<ItemGroup>
<Compile Remove="old_source\**" />
<EmbeddedResource Remove="old_source\**" />
<None Remove="old_source\**" />
<Page Remove="old_source\**" />
</ItemGroup>
<ItemGroup>
<!-- MVVM source generators: [ObservableProperty], [RelayCommand], etc. -->
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.0" />
<!-- PDF report generation — replaces legacy PdfSharp -->
<PackageReference Include="QuestPDF" Version="2025.3.2" />
<!-- Real-time charting for test result graphs -->
<PackageReference Include="LiveChartsCore.SkiaSharpView.WPF" Version="2.0.0-rc3.5" />
<!-- XAML Behaviors: EventTrigger, InvokeCommandAction -->
<PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.122" />
<!-- Extended WPF Toolkit: AvalonDock, NumericUpDown, BusyIndicator -->
<PackageReference Include="Extended.Wpf.Toolkit" Version="4.6.1" />
<!-- DI container for application bootstrapping -->
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.5" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="9.0.5" />
<PackageReference Include="System.IO.Ports" Version="10.0.5" />
<PackageReference Include="ToggleSwitch" Version="1.2.0" />
</ItemGroup>
<!-- Embedded images — default report logo fallback -->
<ItemGroup>
<EmbeddedResource Include="Resources\Images\default_logo.png" />
</ItemGroup>
<!-- Native DLLs — must sit next to the executable at runtime -->
<ItemGroup>
<Content Include="Resources\Native\PCANBasic.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Resources\Native\ftd2xx.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
</Project>