namespace Sick.SafetyScanners.Cola2.Commands; /// /// Command to close a COLA2 session /// public sealed class CloseSessionCommand : CommandBase { public CloseSessionCommand() : base(0x43, 0x58) // 'C' and 'X' in ASCII { } public override bool CanBeExecutedWithoutSessionId => false; protected override ReadOnlyMemory AddTelegramData() { // Close session command has no additional data return ReadOnlyMemory.Empty; } protected override bool ProcessReplyInternal(ReadOnlyMemory replyData, byte replyCommandType, byte replyCommandMode) { // Reply should be 'C' (0x43) and 'A' (0x41) for Acknowledge if ((replyCommandType == 0x43 && replyCommandMode == 0x41) || (replyCommandType == 'C' && replyCommandMode == 'A')) { return true; } return false; } }