ARSVIN GitHub

P0 Publisher Protocol Upgrade

This document records the first engineering-grade publisher upgrades for ARSVIN. The scope stays intentionally narrow: ARSVIN is a Sampled Values publisher, not a process-bus analyzer.

Implemented in this package

Multi-ASDU Sampled Values publishing

ARSVIN now accepts SCL streams with nofASDU from 1 to 8. The publisher packs sequential samples into one SavPdu frame:

The current hard limit is 8 ASDUs per frame. Higher values are blocked by preflight to avoid accidentally generating oversized or non-interoperable frames before dedicated test vectors exist.

Second-aligned sample counter start

The runtime initializes smpCnt from the fractional UTC second when publishing starts. This is closer to synchronized SV publisher behavior than always starting at zero. It remains a lab/compatibility behavior and is not a certified PTP implementation.

Publisher validation and frame preview

A publisher-side validation layer now checks the SCL stream before live TX:

Preflight also reports a frame preview summary: nofASDU, sample rate, publication rate, and payload bytes per ASDU.

Quality bit simulation foundation

The engine now has SampledValueQuality helpers for common publisher simulation states:

The UI currently publishes good quality by default. The next UI step is exposing this as a compact quality selector per stream or per channel.

Generated PCAP evidence foundation

The engine now has a small generated-frame PCAP export helper. This is not a network analyzer; it only writes frames produced by the publisher so they can be opened in Wireshark or shared as evidence.

Golden protocol tests

Unit tests were added for:

Still intentionally not included

  1. Expose SampledValueQuality in the WPF UI as a compact stream-level selector.
  2. Add one-click dry-run PCAP export from the WPF app.
  3. Add golden PCAP files under tests/golden/ and compare byte-level expected output.
  4. Add nofASDU=2, nofASDU=4, and nofASDU=8 sample SCL files to CI test data.
  5. Add jitter/p95/p99 TX health statistics to the publish status bar.

P0.1 Publisher evidence update

This revision keeps ARSVIN scoped as a publisher, not an analyzer.

Added evidence-oriented publisher functions:

Generated PCAP export is meant for offline evidence in Wireshark or third-party SV tools. It is not packet capture and it does not turn ARSVIN into a network analyzer.

P0.2 TX Timing Health update

This revision adds publisher-side timing health only. It does not capture external packets and does not make ARSVIN a process-bus analyzer.

The runtime records, per enabled publisher slot:

The status bar shows a compact global summary using the worst status from all enabled publishers:

TX Timing: GOOD act=1599.8/1600.0fps jitter=8/42us late=0 missed=0 send=6/18us maxLate=20us

Status meaning:

This is a Windows/Npcap runtime health indicator, not certified PTP or hardware timestamp evidence. Use it to determine whether the PC/NIC is strong enough for the selected SV profile.

Apache-2.0 engineering documentation. Edit or review this page on GitHub →