diff --git a/src/Daqifi.Core.Tests/Communication/Producers/ScpiMessageProducerTests.cs b/src/Daqifi.Core.Tests/Communication/Producers/ScpiMessageProducerTests.cs index cad79ab..611860f 100644 --- a/src/Daqifi.Core.Tests/Communication/Producers/ScpiMessageProducerTests.cs +++ b/src/Daqifi.Core.Tests/Communication/Producers/ScpiMessageProducerTests.cs @@ -76,14 +76,6 @@ public void DisableStorageSd_ReturnsCorrectCommand() AssertMessageFormat(message); } - [Fact] - public void GetSdLoggingState_ReturnsCorrectCommand() - { - var message = ScpiMessageProducer.GetSdLoggingState; - Assert.Equal("SYSTem:STORage:SD:LOGging?", message.Data); - AssertMessageFormat(message); - } - [Fact] public void GetSdFileList_ReturnsCorrectCommand() { @@ -104,7 +96,7 @@ public void GetSdFile_ReturnsCorrectCommand() public void SetSdLoggingFileName_ReturnsCorrectCommand() { var message = ScpiMessageProducer.SetSdLoggingFileName("log.bin"); - Assert.Equal("SYSTem:STORage:SD:LOGging \"log.bin\"", message.Data); + Assert.Equal("SYSTem:STORage:SD:FILE \"log.bin\"", message.Data); AssertMessageFormat(message); } @@ -112,7 +104,7 @@ public void SetSdLoggingFileName_ReturnsCorrectCommand() public void StartStreaming_ReturnsCorrectCommand() { var message = ScpiMessageProducer.StartStreaming(100); - Assert.Equal("SYSTem:StartStreamData 100", message.Data); + Assert.Equal("SYSTem:STReam:START 100", message.Data); AssertMessageFormat(message); } @@ -120,7 +112,7 @@ public void StartStreaming_ReturnsCorrectCommand() public void StopStreaming_ReturnsCorrectCommand() { var message = ScpiMessageProducer.StopStreaming; - Assert.Equal("SYSTem:StopStreamData", message.Data); + Assert.Equal("SYSTem:STReam:STOP", message.Data); AssertMessageFormat(message); } @@ -280,7 +272,7 @@ public void SetLanFirmwareUpdateMode_ReturnsCorrectCommand() public void SetUsbTransparencyMode_ReturnsCorrectCommand() { var message = ScpiMessageProducer.SetUsbTransparencyMode(1); - Assert.Equal("SYSTem:USB:SetTransparentMode 1", message.Data); + Assert.Equal("SYSTem:USB:TRANSparent:MODE 1", message.Data); AssertMessageFormat(message); } diff --git a/src/Daqifi.Core.Tests/Device/DaqifiDeviceInitializeTests.cs b/src/Daqifi.Core.Tests/Device/DaqifiDeviceInitializeTests.cs index 45e282a..57b4171 100644 --- a/src/Daqifi.Core.Tests/Device/DaqifiDeviceInitializeTests.cs +++ b/src/Daqifi.Core.Tests/Device/DaqifiDeviceInitializeTests.cs @@ -28,7 +28,7 @@ public async Task InitializeAsync_SendsAllConfigCommands() var sentData = device.DirectSentMessages.Select(m => m.Data).ToList(); Assert.Contains(sentData, d => d.Contains("SYSTem:ECHO -1")); - Assert.Contains(sentData, d => d.Contains("SYSTem:StopStreamData")); + Assert.Contains(sentData, d => d.Contains("SYSTem:STReam:STOP")); Assert.Contains(sentData, d => d.Contains("SYSTem:POWer:STATe 1")); Assert.Contains(sentData, d => d.Contains("SYSTem:STReam:FORmat 0")); Assert.Contains(sentData, d => d.Contains("SYSTem:SYSInfoPB?")); diff --git a/src/Daqifi.Core.Tests/Device/SdCard/SdCardOperationsTests.cs b/src/Daqifi.Core.Tests/Device/SdCard/SdCardOperationsTests.cs index 75f5ba0..e990b55 100644 --- a/src/Daqifi.Core.Tests/Device/SdCard/SdCardOperationsTests.cs +++ b/src/Daqifi.Core.Tests/Device/SdCard/SdCardOperationsTests.cs @@ -117,9 +117,9 @@ public async Task StartSdCardLoggingAsync_SendsCorrectCommandSequence() Assert.Equal("SYSTem:COMMunicate:LAN:ENAbled 0", sentCommands[0]); Assert.Equal("SYSTem:STORage:SD:ENAble 1", sentCommands[1]); Assert.Equal("SYSTem:STReam:INTerface 2", sentCommands[2]); - Assert.Equal("SYSTem:STORage:SD:LOGging \"mylog.bin\"", sentCommands[3]); + Assert.Equal("SYSTem:STORage:SD:FILE \"mylog.bin\"", sentCommands[3]); Assert.Equal("SYSTem:STReam:FORmat 0", sentCommands[4]); - Assert.Equal("SYSTem:StartStreamData 100", sentCommands[5]); + Assert.Equal("SYSTem:STReam:START 100", sentCommands[5]); } [Fact] @@ -147,7 +147,7 @@ public async Task StartSdCardLoggingAsync_WithCustomFileName_UsesProvidedName() // Assert var sentCommands = device.SentMessages.Select(m => m.Data).ToList(); - Assert.Contains("SYSTem:STORage:SD:LOGging \"custom_data.bin\"", sentCommands); + Assert.Contains("SYSTem:STORage:SD:FILE \"custom_data.bin\"", sentCommands); } [Fact] @@ -162,7 +162,7 @@ public async Task StartSdCardLoggingAsync_WithNullFileName_GeneratesTimestampedN // Assert var sentCommands = device.SentMessages.Select(m => m.Data).ToList(); - var loggingCommand = sentCommands.FirstOrDefault(c => c.StartsWith("SYSTem:STORage:SD:LOGging")); + var loggingCommand = sentCommands.FirstOrDefault(c => c.StartsWith("SYSTem:STORage:SD:FILE")); Assert.NotNull(loggingCommand); Assert.Contains("log_", loggingCommand); Assert.Contains(".bin", loggingCommand); @@ -198,7 +198,7 @@ public async Task StopSdCardLoggingAsync_SendsCorrectCommands() // Assert var sentCommands = device.SentMessages.Select(m => m.Data).ToList(); Assert.Equal(4, sentCommands.Count); - Assert.Equal("SYSTem:StopStreamData", sentCommands[0]); + Assert.Equal("SYSTem:STReam:STOP", sentCommands[0]); Assert.Equal("SYSTem:STORage:SD:ENAble 0", sentCommands[1]); Assert.Equal("SYSTem:STReam:INTerface 0", sentCommands[2]); // Restore USB Assert.Equal("SYSTem:COMMunicate:LAN:ENAbled 1", sentCommands[3]); // Re-enable LAN @@ -219,7 +219,7 @@ public async Task StopSdCardLoggingAsync_SendsStopCommandEvenWhenIsStreamingIsFa // Assert - stop command should still be sent defensively var sentCommands = device.SentMessages.Select(m => m.Data).ToList(); - Assert.Contains("SYSTem:StopStreamData", sentCommands); + Assert.Contains("SYSTem:STReam:STOP", sentCommands); } [Fact] @@ -270,7 +270,7 @@ public async Task StartSdCardLoggingAsync_WithEmptyFileName_GeneratesTimestamped // Assert var sentCommands = device.SentMessages.Select(m => m.Data).ToList(); - var loggingCommand = sentCommands.FirstOrDefault(c => c.StartsWith("SYSTem:STORage:SD:LOGging")); + var loggingCommand = sentCommands.FirstOrDefault(c => c.StartsWith("SYSTem:STORage:SD:FILE")); Assert.NotNull(loggingCommand); Assert.Contains("log_", loggingCommand); } @@ -287,7 +287,7 @@ public async Task StartSdCardLoggingAsync_WithWhitespaceFileName_GeneratesTimest // Assert var sentCommands = device.SentMessages.Select(m => m.Data).ToList(); - var loggingCommand = sentCommands.FirstOrDefault(c => c.StartsWith("SYSTem:STORage:SD:LOGging")); + var loggingCommand = sentCommands.FirstOrDefault(c => c.StartsWith("SYSTem:STORage:SD:FILE")); Assert.NotNull(loggingCommand); Assert.Contains("log_", loggingCommand); } @@ -324,9 +324,9 @@ public async Task StartSdCardLoggingAsync_WithJsonFormat_SendsJsonFormatCommand( Assert.Equal("SYSTem:COMMunicate:LAN:ENAbled 0", sentCommands[0]); Assert.Equal("SYSTem:STORage:SD:ENAble 1", sentCommands[1]); Assert.Equal("SYSTem:STReam:INTerface 2", sentCommands[2]); - Assert.Equal("SYSTem:STORage:SD:LOGging \"mylog.json\"", sentCommands[3]); + Assert.Equal("SYSTem:STORage:SD:FILE \"mylog.json\"", sentCommands[3]); Assert.Equal("SYSTem:STReam:FORmat 1", sentCommands[4]); - Assert.Equal("SYSTem:StartStreamData 100", sentCommands[5]); + Assert.Equal("SYSTem:STReam:START 100", sentCommands[5]); } [Fact] @@ -345,9 +345,9 @@ public async Task StartSdCardLoggingAsync_WithCsvFormat_SendsCsvFormatCommand() Assert.Equal("SYSTem:COMMunicate:LAN:ENAbled 0", sentCommands[0]); Assert.Equal("SYSTem:STORage:SD:ENAble 1", sentCommands[1]); Assert.Equal("SYSTem:STReam:INTerface 2", sentCommands[2]); - Assert.Equal("SYSTem:STORage:SD:LOGging \"mylog.csv\"", sentCommands[3]); + Assert.Equal("SYSTem:STORage:SD:FILE \"mylog.csv\"", sentCommands[3]); Assert.Equal("SYSTem:STReam:FORmat 2", sentCommands[4]); - Assert.Equal("SYSTem:StartStreamData 100", sentCommands[5]); + Assert.Equal("SYSTem:STReam:START 100", sentCommands[5]); } [Fact] @@ -362,7 +362,7 @@ public async Task StartSdCardLoggingAsync_WithNullFileName_JsonFormat_GeneratesJ // Assert var sentCommands = device.SentMessages.Select(m => m.Data).ToList(); - var loggingCommand = sentCommands.FirstOrDefault(c => c.StartsWith("SYSTem:STORage:SD:LOGging")); + var loggingCommand = sentCommands.FirstOrDefault(c => c.StartsWith("SYSTem:STORage:SD:FILE")); Assert.NotNull(loggingCommand); Assert.Contains("log_", loggingCommand); Assert.Contains(".json", loggingCommand); @@ -381,7 +381,7 @@ public async Task StartSdCardLoggingAsync_WithNullFileName_CsvFormat_GeneratesCs // Assert var sentCommands = device.SentMessages.Select(m => m.Data).ToList(); - var loggingCommand = sentCommands.FirstOrDefault(c => c.StartsWith("SYSTem:STORage:SD:LOGging")); + var loggingCommand = sentCommands.FirstOrDefault(c => c.StartsWith("SYSTem:STORage:SD:FILE")); Assert.NotNull(loggingCommand); Assert.Contains("log_", loggingCommand); Assert.Contains(".csv", loggingCommand); @@ -615,7 +615,7 @@ public async Task FormatSdCardAsync_WhenConnected_SendsCorrectCommands() // Assert — defensive stop is always sent first (issue #118) var sentCommands = device.SentMessages.Select(m => m.Data).ToList(); Assert.Equal(3, sentCommands.Count); - Assert.Equal("SYSTem:StopStreamData", sentCommands[0]); + Assert.Equal("SYSTem:STReam:STOP", sentCommands[0]); Assert.Equal("SYSTem:STORage:SD:ENAble 1", sentCommands[1]); Assert.Equal("SYSTem:STORage:SD:FORmat", sentCommands[2]); } @@ -660,7 +660,7 @@ public async Task GetSdCardFilesAsync_WhenNotStreaming_StillSendsStopCommand() // Assert — stop command should still be sent defensively var sentCommands = device.SentMessages.Select(m => m.Data).ToList(); - Assert.Contains("SYSTem:StopStreamData", sentCommands); + Assert.Contains("SYSTem:STReam:STOP", sentCommands); } [Fact] @@ -677,7 +677,7 @@ public async Task DeleteSdCardFileAsync_WhenNotStreaming_StillSendsStopCommand() // Assert — stop command should still be sent defensively var sentCommands = device.SentMessages.Select(m => m.Data).ToList(); - Assert.Contains("SYSTem:StopStreamData", sentCommands); + Assert.Contains("SYSTem:STReam:STOP", sentCommands); } [Fact] @@ -696,7 +696,7 @@ public async Task DownloadSdCardFileAsync_WhenNotStreaming_StillSendsStopCommand // Assert — stop command should still be sent defensively var sentCommands = device.SentMessages.Select(m => m.Data).ToList(); - Assert.Contains("SYSTem:StopStreamData", sentCommands); + Assert.Contains("SYSTem:STReam:STOP", sentCommands); } [Fact] @@ -712,7 +712,7 @@ public async Task FormatSdCardAsync_WhenNotStreaming_StillSendsStopCommand() // Assert — stop command should still be sent defensively var sentCommands = device.SentMessages.Select(m => m.Data).ToList(); - Assert.Contains("SYSTem:StopStreamData", sentCommands); + Assert.Contains("SYSTem:STReam:STOP", sentCommands); } #endregion @@ -890,7 +890,7 @@ public async Task DownloadSdCardFileAsync_StopsStreamingBeforeDownload() // Assert — stop streaming command should be sent before the download commands var sentCommands = device.SentMessages.Select(m => m.Data).ToList(); - Assert.Equal("SYSTem:StopStreamData", sentCommands[0]); + Assert.Equal("SYSTem:STReam:STOP", sentCommands[0]); } #endregion diff --git a/src/Daqifi.Core.Tests/Integration/EndToEndTests.cs b/src/Daqifi.Core.Tests/Integration/EndToEndTests.cs index e940d2d..2d3829e 100644 --- a/src/Daqifi.Core.Tests/Integration/EndToEndTests.cs +++ b/src/Daqifi.Core.Tests/Integration/EndToEndTests.cs @@ -45,8 +45,8 @@ public void EndToEnd_MockTransport_ShouldDeliverSCPICommands() var transportContent = mockTransport.GetWrittenContent(); Assert.Contains("SYSTem:SYSInfoPB?", transportContent); Assert.Contains("SYSTem:REboot", transportContent); - Assert.Contains("SYSTem:StartStreamData 1000", transportContent); - Assert.Contains("SYSTem:StopStreamData", transportContent); + Assert.Contains("SYSTem:STReam:START 1000", transportContent); + Assert.Contains("SYSTem:STReam:STOP", transportContent); } [Fact] diff --git a/src/Daqifi.Core/Communication/Producers/ScpiMessageProducer.cs b/src/Daqifi.Core/Communication/Producers/ScpiMessageProducer.cs index cc8e07e..b522cc4 100644 --- a/src/Daqifi.Core/Communication/Producers/ScpiMessageProducer.cs +++ b/src/Daqifi.Core/Communication/Producers/ScpiMessageProducer.cs @@ -95,15 +95,6 @@ public class ScpiMessageProducer /// public static IOutboundMessage DisableStorageSd => new ScpiMessage("SYSTem:STORage:SD:ENAble 0"); - /// - /// Creates a query message to get the current SD card logging state. - /// - /// - /// Command: SYSTem:STORage:SD:LOGging? - /// Example: messageProducer.Send(ScpiMessageProducer.GetSdLoggingState); - /// - public static IOutboundMessage GetSdLoggingState => new ScpiMessage("SYSTem:STORage:SD:LOGging?"); - /// /// Creates a query message to get the list of files on the SD card. /// @@ -132,12 +123,12 @@ public static IOutboundMessage GetSdFile(string fileName) /// The name of the file to create or append to. Must be enclosed in quotes. /// /// The specified file will be created if it doesn't exist, or appended to if it already exists. - /// Command: SYSTem:STORage:SD:LOGging "filename.bin" + /// Command: SYSTem:STORage:SD:FILE "filename.bin" /// Example: messageProducer.Send(ScpiMessageProducer.SetSdLoggingFileName("data.bin")); /// public static IOutboundMessage SetSdLoggingFileName(string fileName) { - return new ScpiMessage($"SYSTem:STORage:SD:LOGging \"{fileName}\""); + return new ScpiMessage($"SYSTem:STORage:SD:FILE \"{fileName}\""); } /// @@ -255,22 +246,22 @@ public static IOutboundMessage SetStreamInterface(StreamInterface stream /// The streaming frequency in Hz (1-1000). /// /// Starts streaming data from enabled channels at the specified frequency. - /// Command: SYSTem:StartStreamData frequency + /// Command: SYSTem:STReam:START frequency /// Example: messageProducer.Send(ScpiMessageProducer.StartStreaming(100)); // Stream at 100Hz /// public static IOutboundMessage StartStreaming(int frequency) { - return new ScpiMessage($"SYSTem:StartStreamData {frequency}"); + return new ScpiMessage($"SYSTem:STReam:START {frequency}"); } /// /// Creates a command message to stop data streaming. /// /// - /// Command: SYSTem:StopStreamData + /// Command: SYSTem:STReam:STOP /// Example: messageProducer.Send(ScpiMessageProducer.StopStreaming); /// - public static IOutboundMessage StopStreaming => new ScpiMessage("SYSTem:StopStreamData"); + public static IOutboundMessage StopStreaming => new ScpiMessage("SYSTem:STReam:STOP"); /// /// Creates a command message to set the stream format to Protocol Buffer. @@ -494,11 +485,11 @@ public static IOutboundMessage SetNetworkWifiPassword(string password) /// /// The transparency mode (0 = disabled, 1 = enabled). /// - /// Command: SYSTem:USB:SetTransparentMode mode + /// Command: SYSTem:USB:TRANSparent:MODE mode /// public static IOutboundMessage SetUsbTransparencyMode(int mode) { - return new ScpiMessage($"SYSTem:USB:SetTransparentMode {mode}"); + return new ScpiMessage($"SYSTem:USB:TRANSparent:MODE {mode}"); } ///