feat: add Ford VP44 unlock progress dialog, K-Line fast unlock, localization, safety dialogs, and settings

Unlock progress UI:
- UnlockProgressDialog with dark-themed progress ring, phase indicator, elapsed
  time, and cancel/close buttons (non-modal, draggable borderless window)
- UnlockProgressViewModel with event-driven progress tracking via IUnlockService
- Triggers on pump selection (manual or K-Line auto-detect), not test start

UnlockService rewrite:
- Persistent CAN senders that outlive the unlock sequence (StopSenders on pump change)
- Concurrent K-Line fast unlock: awaits session Connected, sends RAM timer shortcut
  ({02 88 02 03 A8 01 00}), verifies via CAN TestUnlock before skipping wait
- Fix Type 1 verification (Value == 0 means unlocked, was inverted)

K-Line fast unlock support:
- IKwpService.TryFastUnlockAsync / KwpService implementation

Additional features:
- ILocalizationService with ES/EN resource dictionaries and runtime switching
- Safety dialogs: VoltageWarning, OilPumpConfirm, RpmSafetyWarning
- SettingsDialog for app configuration
- BenchService enhancements, ConfigurationService improvements, PDF report updates
- All UI strings localized via DynamicResource

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-16 13:22:48 +02:00
parent c617854c09
commit 37d099cdbd
55 changed files with 3207 additions and 379 deletions

View File

@@ -83,11 +83,14 @@ ViewModels/ — [ObservableProperty] / [RelayCommand], no UI lo
FlowmeterChartViewModel.cs — Real-time flowmeter charts
AngleDisplayViewModel.cs — Encoder angle monitoring (PSG, INJ, Manual, Lock Angle)
StatusDisplayViewModel.cs — Pump status word display
Dialogs/ — KlineErrors, Progress, Report, UserCheck ViewModels
Dialogs/ — KlineErrors, OilPumpConfirm, Progress, Report, RpmSafetyWarning,
Settings, UnlockProgress, UserCheck, VoltageWarning ViewModels
Views/
MainWindow.xaml — Root UI (multi-panel layout)
Dialogs/ — KlineErrorsDialog, ProgressDialog, ReportDialog, UserCheckDialog
Dialogs/ — KlineErrorsDialog, OilPumpConfirmDialog, ProgressDialog,
ReportDialog, RpmSafetyWarningDialog, SettingsDialog,
UnlockProgressDialog, UserCheckDialog, VoltageWarningDialog
UserControls/ — AngleDisplay, BenchParamConfig, DfiManage, FlowmeterChart,
PumpControl, PumpIdentification, ResultDisplay, StatusDisplay,
TestDisplay, TestPanel
@@ -147,14 +150,11 @@ See `docs/` guidelines for full specs. Priority: CRITICAL > HIGH > MEDIUM > LOW.
**HIGH — Missing safety features:**
- No QOver zero-flow safety check (old: emergency stop if QOver==0 while RPM>300 + oil pump on)
- No safety dialogs: 27V warning, oil pump confirmation, RPM warning
- Alarm bit collection during tests not wired up (`PhaseDefinition.RecordErrorBit` never called)
- No per-sample real-time UI callback during measurement (old fired per-sample events for live charts)
- Pump parameters (ME/FBKW/PreIn) not zeroed between test phases
**HIGH — Missing features:**
- Ford unlock progress UI (service exists, no View — old had WUnlocker.xaml with visual ring + progress bar)
- No localization system (old had Spanish/English resource dictionaries with runtime switching)
- No encryption (old encrypted user passwords with AES-256 + pump data with Rijndael; new stores plaintext)
- No KlineIDs auto-mapping (old remembered K-Line ID → pump ID associations)