6636de1199
It had no production sender: every driver data change is already a batch, and the comms-loss fan was converted earlier. DependencyMuxActor drops its per-value receive, DriverInstanceActor drops the record, and DependencyMuxActorTests' 13 sends move to the ValuePublishes.Single one-item batch (same semantics through the batch path). XML docs and the living docs (DriverLifecycle, VirtualTags, ScriptEditor) are reworded; historical plan docs are left as written. Refs #731 #734 Claude-Session: https://claude.ai/code/session_01Ub9hGmYLQvn9XETzw7CMsT
24 lines
1.3 KiB
C#
24 lines
1.3 KiB
C#
using ZB.MOM.WW.OtOpcUa.Runtime.Drivers;
|
|
|
|
namespace ZB.MOM.WW.OtOpcUa.Runtime.Tests.Harness;
|
|
|
|
/// <summary>
|
|
/// Builds the ONE message shape a driver child sends for its values — a
|
|
/// <see cref="DriverInstanceActor.AttributeValueBatchPublished"/> — for tests that push a single value into the
|
|
/// dependency mux by hand. There is no per-value message: the former per-value record had no production
|
|
/// sender and was deleted (02/U4).
|
|
/// </summary>
|
|
public static class ValuePublishes
|
|
{
|
|
/// <summary>A one-item batch for <paramref name="fullReference"/>.</summary>
|
|
/// <param name="driverInstanceId">The publishing driver's id.</param>
|
|
/// <param name="fullReference">The value's reference (RawPath).</param>
|
|
/// <param name="value">The value.</param>
|
|
/// <param name="statusCode">The full OPC UA status code.</param>
|
|
/// <param name="timestampUtc">The source timestamp.</param>
|
|
/// <returns>The batch message.</returns>
|
|
public static DriverInstanceActor.AttributeValueBatchPublished Single(
|
|
string driverInstanceId, string fullReference, object? value, uint statusCode, DateTime timestampUtc) =>
|
|
new(driverInstanceId, new[] { new DriverInstanceActor.AttributeValueItem(fullReference, value, statusCode, timestampUtc) });
|
|
}
|