# 5. OPC UA 서버 기능 (Phase 1) — 완료

This commit is contained in:
windpacer
2026-04-15 08:19:55 +00:00
parent 85e596d66b
commit d9f5bfd6f6
32 changed files with 1013 additions and 6 deletions

View File

@@ -69,6 +69,10 @@ public interface IExperionDbService
Task<IEnumerable<string>> GetTagNamesAsync();
Task<HistoryQueryResult> QueryHistoryAsync(
IEnumerable<string> tagNames, DateTime? from, DateTime? to, int limit);
// ── OPC UA Server 지원 ────────────────────────────────────────────────────
/// <summary>realtime_table × node_map_master 조인 → nodeId → dataType 사전 반환</summary>
Task<IReadOnlyDictionary<string, string>> GetRealtimeNodeDataTypesAsync();
}
// ── Realtime Service ─────────────────────────────────────────────────────────
@@ -87,6 +91,24 @@ public interface IExperionRealtimeService
public record RealtimeServiceStatus(bool Running, int SubscribedCount, string Message);
// ── OPC UA Server ─────────────────────────────────────────────────────────────
public interface IExperionOpcServerService
{
Task StartServerAsync();
Task StopServerAsync();
OpcServerStatus GetStatus();
void UpdateNodeValue(string tagname, string? value, DateTime timestamp);
void RebuildAddressSpace(IEnumerable<ExperionCrawler.Core.Domain.Entities.RealtimePoint> points);
}
public record OpcServerStatus(
bool Running,
int ConnectedClientCount,
int NodeCount,
string EndpointUrl,
DateTime? StartedAt);
// ── Status Code ──────────────────────────────────────────────────────────────
public interface IExperionStatusCodeService