@@ -23,6 +23,25 @@ public interface IFocasClient : IDisposable
|
||||
/// <summary>True when the FWLIB handle is valid + the socket is up.</summary>
|
||||
bool IsConnected { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Plan PR F4-d (issue #271) — emit the CNC password via FOCAS
|
||||
/// <c>cnc_wrunlockparam</c>. Some controllers (notably 16i + some 30i
|
||||
/// firmwares with parameter-protect on) gate <c>cnc_wrparam</c> and selected
|
||||
/// reads behind a connection-level password; this call lifts the gate for
|
||||
/// the lifetime of the FWLIB handle (resets on reconnect, hence the driver
|
||||
/// re-issues unlock on every <see cref="ConnectAsync"/>).
|
||||
/// <para>Default impl is a no-op (<see cref="Task.CompletedTask"/>) so transport
|
||||
/// variants that don't surface unlock (today: IPC and FAKE clients) keep
|
||||
/// compiling. The FWLIB-backed client overrides this with a real
|
||||
/// <c>cnc_wrunlockparam</c> call.</para>
|
||||
/// <para><b>No-log invariant:</b> <paramref name="password"/> is a secret. The
|
||||
/// wire-client implementation MUST NOT log the password — see
|
||||
/// <c>FocasDeviceOptions.Password</c> + <c>docs/v2/focas-deployment.md</c>
|
||||
/// § "FOCAS password handling".</para>
|
||||
/// </summary>
|
||||
Task UnlockAsync(string password, CancellationToken cancellationToken)
|
||||
=> Task.CompletedTask;
|
||||
|
||||
/// <summary>
|
||||
/// Read the value at <paramref name="address"/> in the requested
|
||||
/// <paramref name="type"/>. Returns a boxed .NET value + the OPC UA status mapped
|
||||
|
||||
Reference in New Issue
Block a user