diff --git a/src/Web/wwwroot/js/app.js b/src/Web/wwwroot/js/app.js
index e483b5b..bd74e70 100644
--- a/src/Web/wwwroot/js/app.js
+++ b/src/Web/wwwroot/js/app.js
@@ -630,7 +630,7 @@ function pbRender(points) {
| ${esc(p?.id || '')} |
${esc((p?.tagName)?.toUpperCase() || '')} |
- ${p?.liveValue != null ? esc(String(fmtVal(p.liveValue))) : '—'} |
+ ${p?.liveValue != null ? esc(String(fmtVal(parseEnumPv(p.liveValue)))) : '—'} |
${p?.liveValue != null ? fmtTs(p.timestamp) : '—'} |
|
@@ -2131,6 +2131,19 @@ function fmtVal(v) {
return n.toFixed(2);
}
+/**
+ * OPC UA EnumValueType pv 값 파싱
+ * "{0 | L-STpv | }" → "L-STpv"
+ * "{0 | MID | }" → "MID"
+ * 일반 값은 그대로 반환
+ */
+function parseEnumPv(v) {
+ if (v == null) return v;
+ const s = String(v);
+ const m = s.match(/^\{\s*\d+\s*\|\s*([^|]+?)\s*\|\s*\}$/);
+ return m ? m[1].trim() : s;
+}
+
// ═══════════════════════════════════════════════════════════════
// fastRecord — 변수 / 모달 헬퍼
// ═══════════════════════════════════════════════════════════════