feat(vtags): wire IHistoryWriter through DriverHostActor (Null default; durable sink infra-gated) (H5d, stillpending §1)
This commit is contained in:
@@ -13,6 +13,7 @@ using ZB.MOM.WW.OtOpcUa.Configuration;
|
||||
using ZB.MOM.WW.OtOpcUa.Core.Abstractions;
|
||||
using ZB.MOM.WW.OtOpcUa.Core.AlarmHistorian;
|
||||
using ZB.MOM.WW.OtOpcUa.Core.Scripting;
|
||||
using ZB.MOM.WW.OtOpcUa.Core.VirtualTags;
|
||||
using ZB.MOM.WW.OtOpcUa.OpcUaServer;
|
||||
using ZB.MOM.WW.OtOpcUa.Runtime.Drivers;
|
||||
using ZB.MOM.WW.OtOpcUa.Runtime.Health;
|
||||
@@ -43,6 +44,10 @@ public static class ServiceCollectionExtensions
|
||||
{
|
||||
services.TryAddSingleton<IAlarmHistorianSink>(NullAlarmHistorianSink.Instance);
|
||||
services.TryAddSingleton<IHistorianDataSource>(NullHistorianDataSource.Instance);
|
||||
// VirtualTag historization sink. Null default — the durable AVEVA sink is infra-gated (there is
|
||||
// no live-data historian write RPC). TryAddSingleton so a deployment that bound a real
|
||||
// IHistoryWriter earlier wins.
|
||||
services.TryAddSingleton<IHistoryWriter>(NullHistoryWriter.Instance);
|
||||
services.TryAddSingleton<IDriverFactory>(NullDriverFactory.Instance);
|
||||
services.TryAddSingleton<IOpcUaAddressSpaceSink>(NullOpcUaAddressSpaceSink.Instance);
|
||||
services.TryAddSingleton<IServiceLevelPublisher>(NullServiceLevelPublisher.Instance);
|
||||
@@ -184,6 +189,10 @@ public static class ServiceCollectionExtensions
|
||||
virtualTagEvaluator = NullVirtualTagEvaluator.Instance;
|
||||
}
|
||||
|
||||
// VirtualTag historization sink threaded to the spawned VirtualTagHostActor. Null default
|
||||
// (durable AVEVA sink is infra-gated); a deployment binding a real IHistoryWriter overrides.
|
||||
var historyWriter = resolver.GetService<IHistoryWriter>() ?? NullHistoryWriter.Instance;
|
||||
|
||||
var dbHealth = system.ActorOf(
|
||||
DbHealthProbeActor.Props(dbFactory),
|
||||
DbHealthProbeActorName);
|
||||
@@ -215,6 +224,7 @@ public static class ServiceCollectionExtensions
|
||||
opcUaPublishActor: publishActor,
|
||||
healthPublisher: healthPublisher,
|
||||
virtualTagEvaluator: virtualTagEvaluator,
|
||||
historyWriter: historyWriter,
|
||||
loggerFactory: loggerFactory,
|
||||
scriptRootLogger: scriptRootLogger),
|
||||
DriverHostActorName);
|
||||
|
||||
Reference in New Issue
Block a user