v1.2.0
Verified end-to-end against a DAQiFi Nyquist (firmware 3.7.2) over USB: discovery, streaming (10 Hz–1 kHz), SD card list/storage/logging/download, diagnostics, LAN chip info, and firmware download all pass. Full unit suite green (1,524 tests) on net9.0 and net10.0.
Highlights
- Classified device events — new
StatusMessageReceivedandStreamMessageReceivedevents let consumers subscribe to status vs. stream traffic without inspecting raw protobuf. (#323) - Device friendly-name support — read/write a device's friendly name via SCPI, with validation, surfaced on
DeviceMetadata.FriendlyName. (#313) - More resilient connect & discovery — serial probing is now immune to hung ports, and
InitializeAsyncretries transient SCPI errors and throws a typed exception on failure. (#295, #317)
Features
- PWM frequency and duty now have commandable defaults; duty is clamped on set. (#322)
SdCardFileParserFactory.TryDetectFormatandSupportedExtensionsfor format sniffing. (#318)SdCardLogEntry.HasDeviceTimestampto distinguish device- vs. host-stamped entries. (#321)DeviceMetadata.CopyFromandDeviceCapabilities.Clonefor snapshotting device state. (#319)WifiBridgeActivator.Deactivateto explicitly own the transparent-mode exit. (#315)
Firmware / bootloader
- Recover a wedged bootloader via
JMP_TO_APPsoft-reset when the health check fails. (#312) - Kick
LAN:APPLYonce on a-200LAN-not-initialized error to self-heal WiFi bring-up. (#203, #324) - Power on the WINC module before probing chip info in
CheckWifiFirmwareStatusAsync. (#320)
Reliability & fixes
- Isolate
WifiBridgeActivatorfrom uncancellableSerialPort.Open()hangs. (#326) - Keep
IChannelinstances stable acrossPopulateChannelsFromStatus(no churn on re-populate). (#314) - Batch of smaller fixes and added test coverage. (#204, #264, #282, #311, #325)
Full Changelog: v1.1.1...v1.2.0