feat: verify Tornado PGM KTAP connection

This commit is contained in:
2026-07-10 14:28:45 +09:00
parent b113830c14
commit 930424b752
22 changed files with 3474 additions and 67 deletions

View File

@@ -8,10 +8,10 @@
여기의 `30001`은 원본 시스템의 당시 값일 뿐 새 Test endpoint의 기본값이나 검증값이 아닙니다. 새 설정은 격리 Test Tornado의 현재 `Tools > Option > Control > Network Server > TCP Port`를 직접 확인해 사용합니다. 반환값 `1`도 매뉴얼의 `OnHello` 또는 Network Monitoring `[R]`/`[S]` 확인을 대신하지 않습니다.
장면 PREPARE의 기준 순서는 다음과 같습니다.
원본 장면 PREPARE의 호출 순서는 다음과 같습니다.
1. `LoadScene(Cuts\<file>.t2s, <scene alias>)`
2. layout `10`에 fade effect `7``FadeInSec` 적용
2. IN effect 플래그에 fade effect `7``FadeInSec` 적용
3. `BeginTransaction()`
4. 장면별 데이터와 오브젝트 변경
5. `scene.QueryVariables()`
@@ -20,7 +20,9 @@
TAKE IN은 준비된 장면에 `Play(10)`을 호출하고 `m_TakeIn=true`로 전환합니다. TAKE OUT은 과거 `CutOut(10)` 대신 현재 운영 코드와 동일하게 `StopAll()`을 사용하고 on-air 상태를 해제합니다. NEXT는 `m_TakeIn`이 참일 때만 실행되므로 IDLE 또는 PREPARED 상태에서 바로 출력을 시작해서는 안 됩니다.
`DynamicK3dSession`위 COM 호출 순서와 layout/effect/TAKE OUT 동작을 보존합니다. `TornadoPlayoutEngine` on-air 상태가 없으면 NEXT를 COM 호출 전에 거부합니다.
`DynamicK3dSession`매뉴얼의 transaction 제한에 맞춰 오브젝트 변경을 `BeginTransaction`/`EndTransaction[OnChannel]` 안에서 끝낸 뒤 `QueryVariables`를 호출하고 `Prepare`합니다. `SetSceneEffectType`의 첫 인수도 layout이 아니라 IN effect 플래그 `1`로 전달하며, layout `10``Prepare`/`Play`/`CutOut`에만 사용합니다. `TornadoPlayoutEngine` on-air 상태가 없으면 NEXT를 COM 호출 전에 거부합니다.
K3D의 Play/Stop 계열은 완료 이벤트가 별도인 비동기 명령입니다. 현재 callback handler를 아직 포팅하지 않았으므로 이전/on-air Scene을 명령 반환 직후 `Unload`하지 않고 연결 종료까지 보존합니다. 실제 운영의 장기 세션 정리는 `OnScenePlayed`/`OnCutOut`/`OnStopAll` 성공 콜백 기반으로 구현해야 합니다.
## Scene 빌더의 범위
@@ -42,7 +44,7 @@ TAKE IN은 준비된 장면에 `Play(10)`을 호출하고 `m_TakeIn=true`로 전
- x64 COM 활성화와 KTAP 연결/해제
- 승인된 `.t2s`의 load와 scene alias
- transaction, `QueryVariables`, layout 10 prepare
- 오브젝트 transaction 종료 뒤 `QueryVariables`, layout 10 prepare
- TAKE IN, 다음 cue의 NEXT, TAKE OUT `StopAll`
- STA 직렬화, timeout, 프로세스 교체 및 오류 상태
@@ -52,3 +54,4 @@ TAKE IN은 준비된 장면에 `Play(10)`을 호출하고 `m_TakeIn=true`로 전
- `PageN`/`Nxt_PageN` 페이지 계산과 같은 scene 갱신
- 배경 영상·texture 및 그래프/path mutation
- 실제 시장 데이터와 원본 화면의 픽셀/내용 비교
- `OnScenePlayed`/`OnCutOut`/`OnStopAll` callback 기반 Scene unload