30 lines
1006 B
C#
30 lines
1006 B
C#
namespace ZB.MOM.WW.OtOpcUa.Driver.AbLegacy;
|
|
|
|
/// <summary>
|
|
/// Wire-layer abstraction over a single PCCC tag. Mirrors <c>IAbCipTagRuntime</c>'s shape so
|
|
/// the same test-fake pattern applies; the only meaningful difference is the protocol layer
|
|
/// underneath (<c>ab_pccc</c> vs <c>ab_eip</c>).
|
|
/// </summary>
|
|
public interface IAbLegacyTagRuntime : IDisposable
|
|
{
|
|
Task InitializeAsync(CancellationToken cancellationToken);
|
|
Task ReadAsync(CancellationToken cancellationToken);
|
|
Task WriteAsync(CancellationToken cancellationToken);
|
|
int GetStatus();
|
|
object? DecodeValue(AbLegacyDataType type, int? bitIndex);
|
|
void EncodeValue(AbLegacyDataType type, int? bitIndex, object? value);
|
|
}
|
|
|
|
public interface IAbLegacyTagFactory
|
|
{
|
|
IAbLegacyTagRuntime Create(AbLegacyTagCreateParams createParams);
|
|
}
|
|
|
|
public sealed record AbLegacyTagCreateParams(
|
|
string Gateway,
|
|
int Port,
|
|
string CipPath,
|
|
string LibplctagPlcAttribute,
|
|
string TagName,
|
|
TimeSpan Timeout);
|