diff --git a/archreview/plans/R2-09-driver-fleet-batch-plan.md.tasks.json b/archreview/plans/R2-09-driver-fleet-batch-plan.md.tasks.json index 6790b898..854a47bf 100644 --- a/archreview/plans/R2-09-driver-fleet-batch-plan.md.tasks.json +++ b/archreview/plans/R2-09-driver-fleet-batch-plan.md.tasks.json @@ -56,7 +56,7 @@ { "id": "B2.5", "subject": "B2: convert the four FOCAS caches to ConcurrentDictionary; FOCAS suite green; merge PR 2", - "status": "pending", + "status": "completed", "blockedBy": [ "B2.3", "B2.4" diff --git a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.FOCAS/FocasDriver.cs b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.FOCAS/FocasDriver.cs index d2ba8789..e964ca94 100644 --- a/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.FOCAS/FocasDriver.cs +++ b/src/Drivers/ZB.MOM.WW.OtOpcUa.Driver.FOCAS/FocasDriver.cs @@ -1195,17 +1195,17 @@ public sealed class FocasDriver : IDriver, IReadable, IWritable, ITagDiscovery, /// scale applied at ; integer fields /// (feed rate, spindle speed) widen to double on store. /// - public Dictionary LastFixedSnapshots { get; } = new(StringComparer.OrdinalIgnoreCase); + public ConcurrentDictionary LastFixedSnapshots { get; } = new(StringComparer.OrdinalIgnoreCase); /// Gets or sets the last program information snapshot. public FocasProgramInfo? LastProgramInfo { get; set; } /// Gets or sets the cached first-axis dynamic snapshot — feeds Program/Number, /MainNumber, /Sequence. public FocasDynamicSnapshot? LastProgramAxisRef { get; set; } /// Gets the last timer values by timer kind. - public Dictionary LastTimers { get; } = []; + public ConcurrentDictionary LastTimers { get; } = new(); /// Gets the last servo load percentages by servo name. - public Dictionary LastServoLoads { get; } = new(StringComparer.OrdinalIgnoreCase); + public ConcurrentDictionary LastServoLoads { get; } = new(StringComparer.OrdinalIgnoreCase); /// Gets the last spindle load percentages by spindle index. - public Dictionary LastSpindleLoads { get; } = []; + public ConcurrentDictionary LastSpindleLoads { get; } = new(); /// /// Gets or sets the per-axis position decimal-place figures fetched once at init via /// cnc_getfigure (parallel to the axis-name list; index = axis). An auto figure