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