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;
}