feat(focas): scale axis positions by 10^PositionDecimalPlaces (config-supplied)
This commit is contained in:
@@ -65,7 +65,8 @@ public static class FocasDriverFactoryExtensions
|
||||
HostAddress: d.HostAddress ?? throw new InvalidOperationException(
|
||||
$"FOCAS config for '{driverInstanceId}' has a device missing HostAddress"),
|
||||
DeviceName: d.DeviceName,
|
||||
Series: ParseSeries(d.Series ?? dto.Series)))]
|
||||
Series: ParseSeries(d.Series ?? dto.Series),
|
||||
PositionDecimalPlaces: d.PositionDecimalPlaces ?? 0))]
|
||||
: [],
|
||||
Tags = dto.Tags is { Count: > 0 }
|
||||
? [.. dto.Tags.Select(t => new FocasTagDefinition(
|
||||
@@ -234,6 +235,13 @@ public static class FocasDriverFactoryExtensions
|
||||
|
||||
/// <summary>Gets or sets the CNC series for this device (overrides top-level series if provided).</summary>
|
||||
public string? Series { get; init; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets the axis-position decimal places. <c>cnc_rddynamic2</c> returns
|
||||
/// positions as scaled integers; the driver divides by <c>10^PositionDecimalPlaces</c>
|
||||
/// so they surface in engineering units. Omitted / <c>0</c> = no scaling (legacy).
|
||||
/// </summary>
|
||||
public int? PositionDecimalPlaces { get; init; }
|
||||
}
|
||||
|
||||
internal sealed class FocasTagDto
|
||||
|
||||
Reference in New Issue
Block a user