fix(focas): ConcurrentDictionary for fixed-tree caches (05/STAB-5)
This commit is contained in:
@@ -56,7 +56,7 @@
|
|||||||
{
|
{
|
||||||
"id": "B2.5",
|
"id": "B2.5",
|
||||||
"subject": "B2: convert the four FOCAS caches to ConcurrentDictionary; FOCAS suite green; merge PR 2",
|
"subject": "B2: convert the four FOCAS caches to ConcurrentDictionary; FOCAS suite green; merge PR 2",
|
||||||
"status": "pending",
|
"status": "completed",
|
||||||
"blockedBy": [
|
"blockedBy": [
|
||||||
"B2.3",
|
"B2.3",
|
||||||
"B2.4"
|
"B2.4"
|
||||||
|
|||||||
@@ -1195,17 +1195,17 @@ public sealed class FocasDriver : IDriver, IReadable, IWritable, ITagDiscovery,
|
|||||||
/// scale applied at <see cref="PublishAxisSnapshot"/>; integer fields
|
/// scale applied at <see cref="PublishAxisSnapshot"/>; integer fields
|
||||||
/// (feed rate, spindle speed) widen to double on store.
|
/// (feed rate, spindle speed) widen to double on store.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public Dictionary<string, double> LastFixedSnapshots { get; } = new(StringComparer.OrdinalIgnoreCase);
|
public ConcurrentDictionary<string, double> LastFixedSnapshots { get; } = new(StringComparer.OrdinalIgnoreCase);
|
||||||
/// <summary>Gets or sets the last program information snapshot.</summary>
|
/// <summary>Gets or sets the last program information snapshot.</summary>
|
||||||
public FocasProgramInfo? LastProgramInfo { get; set; }
|
public FocasProgramInfo? LastProgramInfo { get; set; }
|
||||||
/// <summary>Gets or sets the cached first-axis dynamic snapshot — feeds Program/Number, /MainNumber, /Sequence.</summary>
|
/// <summary>Gets or sets the cached first-axis dynamic snapshot — feeds Program/Number, /MainNumber, /Sequence.</summary>
|
||||||
public FocasDynamicSnapshot? LastProgramAxisRef { get; set; }
|
public FocasDynamicSnapshot? LastProgramAxisRef { get; set; }
|
||||||
/// <summary>Gets the last timer values by timer kind.</summary>
|
/// <summary>Gets the last timer values by timer kind.</summary>
|
||||||
public Dictionary<FocasTimerKind, FocasTimer> LastTimers { get; } = [];
|
public ConcurrentDictionary<FocasTimerKind, FocasTimer> LastTimers { get; } = new();
|
||||||
/// <summary>Gets the last servo load percentages by servo name.</summary>
|
/// <summary>Gets the last servo load percentages by servo name.</summary>
|
||||||
public Dictionary<string, double> LastServoLoads { get; } = new(StringComparer.OrdinalIgnoreCase);
|
public ConcurrentDictionary<string, double> LastServoLoads { get; } = new(StringComparer.OrdinalIgnoreCase);
|
||||||
/// <summary>Gets the last spindle load percentages by spindle index.</summary>
|
/// <summary>Gets the last spindle load percentages by spindle index.</summary>
|
||||||
public Dictionary<int, int> LastSpindleLoads { get; } = [];
|
public ConcurrentDictionary<int, int> LastSpindleLoads { get; } = new();
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the per-axis position decimal-place figures fetched once at init via
|
/// Gets or sets the per-axis position decimal-place figures fetched once at init via
|
||||||
/// <c>cnc_getfigure</c> (parallel to the axis-name list; index = axis). An auto figure
|
/// <c>cnc_getfigure</c> (parallel to the axis-name list; index = axis). An auto figure
|
||||||
|
|||||||
Reference in New Issue
Block a user