Skip to content

v1.2.0

Choose a tag to compare

@tylerkron tylerkron released this 18 Jul 13:24
· 254 commits to main since this release
c45237a

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 StatusMessageReceived and StreamMessageReceived events 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 InitializeAsync retries 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.TryDetectFormat and SupportedExtensions for format sniffing. (#318)
  • SdCardLogEntry.HasDeviceTimestamp to distinguish device- vs. host-stamped entries. (#321)
  • DeviceMetadata.CopyFrom and DeviceCapabilities.Clone for snapshotting device state. (#319)
  • WifiBridgeActivator.Deactivate to explicitly own the transparent-mode exit. (#315)

Firmware / bootloader

  • Recover a wedged bootloader via JMP_TO_APP soft-reset when the health check fails. (#312)
  • Kick LAN:APPLY once on a -200 LAN-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 WifiBridgeActivator from uncancellable SerialPort.Open() hangs. (#326)
  • Keep IChannel instances stable across PopulateChannelsFromStatus (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