Conversation
…139) - Add `GetLanChipInfo` SCPI command to `ScpiMessageProducer` - Add `LanChipInfo` record and `LanChipInfoParser` (parses JSON from device) - Add `ILanChipInfoProvider` optional-capability interface - Implement `DaqifiStreamingDevice.GetLanChipInfoAsync` via `ExecuteTextCommandAsync` - Add `IFirmwareDownloadService.GetLatestWifiReleaseAsync` (metadata-only, no download) - Implement in `GitHubFirmwareDownloadService` using cached WiFi releases - `FirmwareUpdateService.UpdateWifiModuleAsync` now checks device WiFi version before flashing; skips flash and reports Complete if already up to date - Add 11 unit tests for `LanChipInfoParser` - Add 3 unit tests for the version-check behavior in `FirmwareUpdateService` - Update README to document WiFi version-check behavior Closes #139 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Entire-Checkpoint: a0fb8798807b
tylerkron
added a commit
to daqifi/daqifi-desktop
that referenced
this pull request
Feb 28, 2026
Before downloading and flashing the WiFi module firmware, query the device for its current WiFi chip version using GetLanChipInfoAsync and compare it against the latest GitHub release via GetLatestWifiReleaseAsync. If the device is already running the latest version, skip the download and flash entirely and report 100 % progress immediately. Changes: - SerialStreamingDevice implements ILanChipInfoProvider, delegating to its underlying Core DaqifiStreamingDevice - CoreStreamingDeviceAdapter implements ILanChipInfoProvider, delegating to the wrapped desktop device - DaqifiViewModel.UpdateWifiModuleAsync performs a version check before downloading; shows "already up to date" status or "X → Y" version info - Add IsWifiVersionCurrent helper using FirmwareVersion comparison - All three .csproj files gain a conditional DaqifiCoreProjectPath ProjectReference (same pattern as daqifi-core-example-app) for local development against Core PR #141 Requires daqifi/daqifi-core#141 for ILanChipInfoProvider, GetLanChipInfoAsync, and IFirmwareDownloadService.GetLatestWifiReleaseAsync. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements #139.
GetLanChipInfoSCPI command — added toScpiMessageProducer(SYSTem:COMMunicate:LAN:GETChipInfo?)LanChipInforecord +LanChipInfoParser— parses the JSON response{"ChipId":<id>,"FwVersion":"<version>","BuildDate":"<date>"}from the device;FwVersionis required, others default gracefullyILanChipInfoProviderinterface — optional-capability pattern soFirmwareUpdateServicecan castdevice is ILanChipInfoProviderwithout changingIStreamingDeviceDaqifiStreamingDevice.GetLanChipInfoAsync— sends the SCPI command viaExecuteTextCommandAsync, parses the response linesIFirmwareDownloadService.GetLatestWifiReleaseAsync— metadata-only query (no download) to get the latest WiFi firmware tag from GitHubFirmwareUpdateServiceversion check — before flashing WiFi firmware, queries the device and compares versions; if device is already current, transitions directly toCompleteand reports 100% progress (no unnecessary reflash)LanChipInfoParsertests and 3 newFirmwareUpdateServicetests for the version-check behaviorHardware-validated against a physical Nyquist 1 over serial (
ChipId: 1377184, FwVersion: 19.7.7, BuildDate: Mar 30 2022).Test plan
LanChipInfoParserTestscover valid JSON, optional fields, malformed input, null/whitespace, andTryParseLinesFirmwareUpdateServiceTestscover: device already up to date (skips flash), device is older (proceeds), device doesn't supportILanChipInfoProvider(proceeds)daqifi-core-example-app --lan-chip-info🤖 Generated with Claude Code