Repository navigation
feat: Add network configuration support - #83
Conversation
Add programmatic network configuration capabilities to the Core library, enabling third-party developers to manage device WiFi and LAN settings. New data models: - WifiMode enum (ExistingNetwork, SelfHosted) - WifiSecurityType enum (None, WpaPskPhrase) - NetworkConfiguration class with Mode, SecurityType, SSID, Password INetworkConfigurable interface with: - NetworkConfiguration property - UpdateNetworkConfigurationAsync() method - PrepareSdInterface() and PrepareLanInterface() for SPI bus switching DaqifiStreamingDevice now implements INetworkConfigurable with full support for WiFi configuration workflow including streaming halt, command sequencing, WiFi module restart delay, and interface switching. Closes #82 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
|||||||||||||||||||||||||||||||||
PR Code Suggestions ✨Explore these optional code suggestions:
|
|||||||||||||||||||||||
- Return clone from NetworkConfiguration property to prevent external state modification and enforce use of UpdateNetworkConfigurationAsync - Add early cancellation check with ThrowIfCancellationRequested - Add default cases to switch statements that throw ArgumentOutOfRangeException for unsupported enum values - Skip password command for open networks (WifiSecurityType.None) - Add tests for clone behavior, cancellation, and invalid enum handling Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
User description
Summary
Changes
New Data Models (
Daqifi.Core.Device.Network/)WifiModeenum withExistingNetwork(1) andSelfHosted(4) valuesWifiSecurityTypeenum withNone(0) andWpaPskPhrase(3) valuesNetworkConfigurationclass with Mode, SecurityType, SSID, Password propertiesINetworkConfigurableinterface defining the network configuration contractDaqifiStreamingDevice Extensions
NetworkConfigurationproperty exposing current network settingsUpdateNetworkConfigurationAsync()method that:PrepareSdInterface()- Disables LAN, enables SD cardPrepareLanInterface()- Disables SD card, enables LANTests
Test plan
Closes #82
🤖 Generated with Claude Code
PR Type
Enhancement, Tests
Description
Add network configuration support to DaqifiStreamingDevice
Implement WiFi mode, security type, and credential management
Support SD card/LAN interface switching for shared SPI bus
Add 31 comprehensive unit tests for network functionality
Diagram Walkthrough
File Walkthrough
WifiMode.cs
WiFi operating mode enumerationsrc/Daqifi.Core/Device/Network/WifiMode.cs
WifiSecurityType.cs
WiFi security type enumerationsrc/Daqifi.Core/Device/Network/WifiSecurityType.cs
NetworkConfiguration.cs
Network configuration data modelsrc/Daqifi.Core/Device/Network/NetworkConfiguration.cs
INetworkConfigurable.cs
Network configurable interface contractsrc/Daqifi.Core/Device/Network/INetworkConfigurable.cs
constraints
DaqifiStreamingDevice.cs
Network configuration implementation in streaming devicesrc/Daqifi.Core/Device/DaqifiStreamingDevice.cs
configuration workflow
NetworkConfigurationTests.cs
Network configuration model unit testssrc/Daqifi.Core.Tests/Device/Network/NetworkConfigurationTests.cs
NetworkConfigurableTests.cs
Network configurable device functionality testssrc/Daqifi.Core.Tests/Device/Network/NetworkConfigurableTests.cs