using System.Text; using Sick.Tim781s.Colab.Helpers; namespace Sick.Tim781s.Colab.Commands; /// /// Base class for ColaB commands /// public abstract class CommandBase : IColaBCommand { private readonly string _commandString; private bool _wasSuccessful; protected CommandBase(string commandString) { _commandString = commandString ?? throw new ArgumentNullException(nameof(commandString)); } public ReadOnlyMemory GetCommandData() { return Encoding.ASCII.GetBytes(_commandString); } public bool WasSuccessful { get => _wasSuccessful; protected set => _wasSuccessful = value; } public abstract bool ProcessReply(ReadOnlyMemory replyData); /// /// Gets the command string /// protected string CommandString => _commandString; }