Initial commit

This commit is contained in:
2026-07-13 09:25:40 +07:00
parent c08ff54676
commit bccfb156d7
1938 changed files with 641646 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
using System.Text;
namespace Sick.ColaB.Commands;
/// <summary>
/// Command to write a value to the scanner (sWN - Write by Name)
/// </summary>
public sealed class WriteCommand(string variableName, string value) : CommandBase($"sWN {variableName} {value}")
{
public string VariableName { get; } = variableName;
public string Value { get; } = value;
public override bool ProcessReply(ReadOnlyMemory<byte> replyData)
{
// Parse reply: "sWA <variableName>" (Write Acknowledge), "sEA <eventName> <value>" (Event Acknowledge), "sAN <methodName> <result>" (Answer), or "sFA <errorCode>" (Error)
var replyString = Encoding.ASCII.GetString(replyData.Span);
// Check if reply starts with "sFA" (Error) - this indicates command failed
if (replyString.StartsWith("sFA", StringComparison.Ordinal))
{
// Extract error code if present
var parts = replyString.Split(' ', StringSplitOptions.RemoveEmptyEntries);
var errorInfo = parts.Length > 1 ? $" (error code: {string.Join(" ", parts.Skip(1))})" : "";
WasSuccessful = false;
return false;
}
// Check if reply starts with "sWA" (Write Acknowledge), "sEA" (Event Acknowledge), or "sAN" (Answer)
if (replyString.StartsWith("sWA", StringComparison.Ordinal) ||
replyString.StartsWith("sEA", StringComparison.Ordinal) ||
replyString.StartsWith("sAN", StringComparison.Ordinal))
{
WasSuccessful = true;
return true;
}
WasSuccessful = false;
return false;
}
}