Files
Tornado3_2026Election/SYSTEM_SPEC.md
2026-03-25 17:26:16 +09:00

3.3 KiB

선거방송 송출 프로그램 요구사항 정의 (v0.1)


1. 시스템 개요

1.1 목적

  • Tornado3를 통해 선거 방송 자막 송출
  • 포맷(디자인)에 데이터 매핑 후 송출

2. 데이터 처리

2.1 데이터 수신

  • Polling 기반
  • 수동 수신 가능

2.2 수동 수신 정책

  • 수동 수신 시 polling 주기 초기화
  • 3초 이내 재요청 금지

2.3 갱신 vs 송출

  • 갱신 중 송출 요청 시 → 갱신 완료 후 송출

2.4 데이터 기준

  • 득표율: 소수점 1자리 반올림
  • 득표수: 3자리 콤마

2.5 데이터 유효성

  • 필수 필드 누락 시 송출 금지
  • 사진 필수 포맷에서 이미지 없으면 송출 금지

3. 포맷

3.1 정의

  • 디자인 템플릿
  • 데이터 매핑 구조

3.2 구조

  • 포맷 → 컷 → (준비 → 송출)

3.3 루프

  • 하위 범주 반복 (예: 시도별 17개)

3.4 데이터 반영

  • 현재 컷 반영 금지
  • 다음 컷부터 반영

3.5 송출 시간

  • 포맷별 설정 가능
  • 변경 시 다음 컷부터 적용

4. 스케줄

4.1 구조

  • 큐 기반

4.2 상태

  • 현재 송출: 빨간색
  • 다음 송출: 주황색

4.3 제어

  • 다음 포맷 변경 가능
  • 현재 포맷 강제 중지 후 전환 가능
  • 순서 변경 가능

4.4 삭제 정책

  • 대기 포맷 삭제 가능
  • 송출 중 포맷 삭제 불가

4.5 루프

  • 전체 루프 가능
  • 첫 포맷부터 재시작

4.6 빈 스케줄

  • 설정에 따라:
    • 즉시 Out
    • 마지막 화면 유지

4.7 종료

  • 수동 종료 시:
    • 스케줄 종료
    • 해당 Layer Out

5. 방송 영역

  • 노멀
  • 좌상단
  • 하단
  • VideoWall

특징:

  • 독립 스케줄
  • 동시 송출 가능

6. 방송사 설정

대상

  • KNN, TBC, KBC, G1, TJB, JTV

특징

  • 동일 구조
  • 지역 필터만 다름

지역 필터

  • 기본값 제공
  • 사용자 수정 가능

7. 유력/확실/당선

기준

  • 후보 단위

수동 입력

  • 콤보박스 선택
  • 자동 판정보다 우선

자동 판정

  • 수동 지정 없는 경우만 적용
  • 당선 조건:
    • (1위 - 2위) > 남은 개표수

초기화

  • 전체 초기화 가능

저장

  • 방송사 + 선거종류 + 선거구 + 후보 기준

8. Tornado3 연동

방식

  • TCP + DLL

기능

  • 이미지 변경
  • 텍스트 변경
  • 준비
  • 송출

응답 처리

  • ACK 대기 없음
  • 5초 내 응답 없으면 실패

상태

  • IDLE
  • READY (송출 가능 상태)
  • SENDING
  • ON_AIR
  • ERROR

연결

  • 끊김 시 재연결
  • 재연결 후 사용자 확인 후 재개

9. 상태 흐름

IDLE → READY → SENDING → ON_AIR → NEXT

ERROR


10. 복원

대상

  • 스케줄
  • 방송사
  • 상태값

방식

  • 통합 대화상자
  • 체크박스 선택

11. UI 구조

네비게이션

  • 통합 스케줄
  • 노멀
  • 좌상단
  • 하단
  • VideoWall
  • 데이터
  • 설정
  • 로그

표시

  • 빨강: 현재 송출
  • 주황: 다음 송출

12. 이미지

경로 규칙: {선택경로}/{선거종류}/{지역코드}/{후보코드}.png


13. 예외 처리

  • API 실패 → 사용자 알림
  • Tornado 실패 → ERROR 상태

14. 핵심 개념

  • 포맷 기반
  • 컷 단위 송출
  • 스케줄 큐 구조
  • 상태 머신 기반 제어