LucianoDev 827b811b39 feat: developer tools page, auto-test orchestrator, BIP display, tests redesign
Bundles several feature streams that have been iterating on the working tree:

- Developer Tools page (Debug-only via DEVELOPER_TOOLS symbol): hosts the
  identification card, manual KWP write + transaction log, ROM/EEPROM dump
  card with progress banner and completion message, persisted custom-commands
  library, persisted EEPROM passwords library. New service primitives:
  IKwpService.SendRawCustomAsync / ReadEepromAsync / ReadRomEepromAsync.
  Persistence mirrors the Clients XML pattern in two new files
  (custom_commands.xml, eeprom_passwords.xml).
- Auto-test orchestrator (IAutoTestOrchestrator + AutoTestState): linear
  K-Line read -> unlock -> bench-on -> test sequence with snackbar UI and
  progress dialog VM, gated on dashboard alarms.
- BIP-STATUS display: BipDisplayViewModel + BipDisplayView, RAM read at
  0x0106 via IKwpService.ReadBipStatusAsync; status definitions in
  BipStatusDefinition.
- Tests page redesign: TestSectionCard + PhaseTileView replacing the old
  TestPlanView/TestRunningView/TestDoneView/TestPreconditionsView/
  TestSectionView controls and their VMs.
- Pump command sliders: Fluent thick-track style with overhang thumb,
  click-anywhere-and-drag, mouse-wheel adjustment.
- Window startup: app.manifest declares PerMonitorV2 DPI awareness,
  MainWindow installs a WM_GETMINMAXINFO hook in OnSourceInitialized and
  maximizes there (after the hook is in place) so the app fits the work
  area exactly on any display configuration.
- Misc: PercentToPixelsConverter, seed_aliases.py one-shot pump-alias
  importer, tools/Import-BipStatus.ps1, kline_eeprom_spec.md and
  dump-functions reference docs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-07 13:59:50 +02:00
2026-04-11 12:45:18 +02:00
2026-04-11 12:45:18 +02:00
2026-04-11 12:45:18 +02:00
2026-04-11 12:45:18 +02:00

HC_APTBS

WPF desktop application for controlling a VP44 diesel injection pump test bench.

Features

  • CAN bus communication — reads/writes bench sensors (temperature, RPM, flow) via PCAN-Basic at 500 kbps
  • K-Line / KWP2000 — communicates with the VP44 pump ECU via FTDI USB adapter at 9600 bps
  • Automated test sequences — runs multi-phase tests with PID temperature control
  • PDF reports — generates test result reports with QuestPDF

Requirements

  • Windows 10/11 (x64)
  • .NET 10 SDK (version pinned in global.json)
  • Hardware: PCAN-USB adapter, FTDI USB-to-serial adapter

Build

dotnet build -r win-x64

Native DLLs (PCANBasic.dll, ftd2xx.dll) are bundled in Resources/Native/ and copied to output automatically.

Stack

Layer Technology
UI WPF / XAML
MVVM CommunityToolkit.Mvvm
DI Microsoft.Extensions.DependencyInjection
Charts LiveCharts2 (SkiaSharp)
PDF QuestPDF 2025.3.2
CAN PCAN-Basic (P/Invoke)
K-Line FTDI D2XX (P/Invoke)

Project Structure

Infrastructure/
  Pcan/          — CAN bus adapter, OEM legitimation, sensor decoding
  Kwp/           — FTDI interface, KWP/KW1281 protocol, 5-baud slow-init
  Logging/       — Daily rotating log files
Services/Impl/   — Test orchestration, KWP operations, config persistence, PDF
ViewModels/      — MVVM view models (ObservableProperty / RelayCommand)
Views/           — Pure XAML views
Models/          — Domain models and test definitions
Description
No description provided
Readme 79 MiB
Languages
C# 98.7%
PowerShell 0.8%
Python 0.5%