namespace Sick.ColaB;
///
/// Result of parsing LMDscandata from SICK scanner
/// Contains raw scan data that can be converted to application-specific formats
///
public sealed class ScanDataResult
{
///
/// Distance measurements in meters
///
public double[] Ranges { get; init; } = [];
///
/// Intensity/RSSI values (normalized 0-1), optional
///
public double[]? Intensities { get; init; }
///
/// Starting angle in degrees
///
public double StartAngleDeg { get; init; }
///
/// Angular step width in degrees
///
public double AngularStepDeg { get; init; }
///
/// Scale factor applied to distance values
///
public double ScaleFactor { get; init; } = 1.0;
///
/// Scale offset applied to distance values
///
public double ScaleOffset { get; init; }
///
/// Timestamp when data was parsed
///
public DateTime Timestamp { get; init; } = DateTime.UtcNow;
///
/// Checks if the scan data is valid (has range measurements)
///
public bool IsValid => Ranges.Length > 0;
}