Dnp3MasterTester is a WPF desktop DNP3 master-side test workspace for communicating with slave devices, especially protection relays over TCP and Serial.
It uses the native C# DNP3 master stack in this repository and is intended to evolve into a credible FAT / interoperability / audit tool without a proprietary DNP3 runtime dependency in the master application.
The application source is distributed under the Apache License, Version 2.0.
Current focus areas:
- latest point state review
- SCADA-style event journal
- SOE / forensic callback evidence
- protocol/runtime diagnostics
- guided FAT report workspace and internal PDF export
The project is functional but still under active refinement.
What already exists:
- WPF operator shell
- TCP and Serial DNP3 master channels
- connection setup dialog
- workspace tabs for value/event/audit/trace review
- service-based integration with the native C# DNP3 master stack
- real device-response evidence state, separate from open socket state
- guided report workspace with PDF preview/export
- command lifecycle evidence and FAT snapshot builder
What still needs major work:
- more credible polling/interoperability strategy
- better relay-profile behavior
- deeper negative-test and recovery-test automation
- profile-specific validation and report observations
.NET 8- WPF
- native C# DNP3 master protocol implementation
System.IO.Portsfor serial transport- internal PDF report renderer
Shows last known state per point.
Intended for operator-facing event journal rows such as:
- binary state changes
- command events
- device response evidence
- guarded non-operation and recovery workflow events
Shows more callback-derived detail for forensic review.
Shows protocol/runtime diagnostics and engine trace information.
Guides report identity, verification steps, automated FAT evidence capture, and internal PDF preview/export.
Important files:
- MainWindow.xaml
- ConnectionSettingsWindow.xaml
- ViewModels/MainViewModel.cs
- Services/Dnp3MasterService.cs
- Services/Reports/FatReportSnapshotBuilder.cs
- Services/Reports/InternalPdfReportExportService.cs
dotnet build DNPTester.slnxDo not reintroduce proprietary DNP3 protocol packages into Dnp3MasterTester unless the product licensing direction changes.
The UI layer should display and organize evidence, not invent protocol behavior.
If relay changes only appear after manual integrity, treat that as a protocol/interoperability issue first, not merely a UI issue.
AGENTS.mdproject_summary.mdServices/Dnp3MasterService.csProtocol/MainWindow.xaml
The goal is to turn this repository into a DNP3 master-side relay audit tool that is:
- credible
- readable
- interoperable
- useful in real FAT and troubleshooting workflows



