using Sick.SafetyScanners.DataStructures; using Sick.SafetyScanners.Helpers; namespace Sick.SafetyScanners.DataProcessing; /// /// Parser for DeviceStatus response from COLA2 variable command /// Thread-safe implementation /// public sealed class ParseDeviceStatus { /// /// Parses the device status from a TCP sequence (COLA2 response) /// Matches: ParseDeviceStatusData::parseTCPSequence in C++ /// public DeviceStatus ParseTcpSequence(PacketBuffer buffer) { var span = buffer.GetBufferSpan(); return new DeviceStatus { Status = (SopasDeviceStatus)ReadDeviceStatus(span) }; } /// /// Matches: ParseDeviceStatusData::readDeviceStatus in C++ /// private byte ReadDeviceStatus(ReadOnlySpan span) { return ReadWriteHelper.ReadUint8(span, 0); } }