Files

3.3 KiB

Simulator 모듈 가이드

Simulator는 Factory 모듈의 시뮬레이션 전용 버전입니다. 실시간 MQTT 데이터 없이 로컬에서 설비 동작을 테스트하고 시뮬레이션합니다.


모듈 구조

Simulator/
├── SimulatorAppMain.cs      # 앱 진입점
├── SimulatorSceneMain.cs    # 씬 초기화
├── Config/
│   ├── AppConfig.cs         # 설정 로드
│   └── Constants.cs         # 상수 정의
└── LNB/
    ├── SimulatorLNB.cs      # Left Navigation Bar
    ├── LNBExplorer.cs       # 탐색기 뷰
    └── LNBLibrary.cs        # 라이브러리 뷰

SimulatorAppMain

namespace Simulator
{
    [DefaultExecutionOrder(100)]
    public class SimulatorAppMain : SingletonApp<SimulatorAppMain>
    {
        public Action Initialized;

        protected override async void Init()
        {
            // 로깅 설정
            Log4netCodeConfigurator.Setup();

            // 설정 로드
            await SettupConfigAsync();

            // 네트워크 설정 (MQTT 토픽은 주석 처리됨)
            SetNetworkConfig();

            Initialized?.Invoke();
        }
    }
}

Factory와의 차이점

항목 Factory Simulator
MQTT 구독 AGV, ALARM, PORT 토픽 활성화 토픽 구독 비활성화
데이터 소스 실시간 MQTT 로컬 시뮬레이션 데이터
용도 프로덕션 시각화 개발/테스트
Playback 서버 데이터 재생 로컬 데이터 재생

설정

Factory와 동일한 FactoryAppConfig를 공유합니다:

private async UniTask SettupConfigAsync()
{
    if (FactoryAppConfig.LoadConfig())
    {
        Application.targetFrameRate = FactoryAppConfig.Config.TargetFrameRate;
        LocalizationManager.Instance.LoadDefaultLocalizationData(FactoryAppConfig.Config.Language);
        // ...
    }
}

네트워크 설정

private void SetNetworkConfig()
{
    // URL 등록
    URLList.Add("baseinfo", $"{FactoryConstants.API_DOMAIN}/baseinfo");
    URLList.Add("playbackList", $"{FactoryConstants.API_DOMAIN}/playback/list");
    URLList.Add("playbackFile", $"{FactoryConstants.API_DOMAIN}/playback");

    // MQTT 설정만 하고 토픽은 구독하지 않음
    DataRepository.Instance.MqttReceiver.SetDataPicker(...);
    DataRepository.Instance.MqttReceiver.SetDomainPort(...);

    // 주석 처리된 토픽 구독
    // DataRepository.Instance.MqttReceiver.AddTopic("AGV");
    // DataRepository.Instance.MqttReceiver.AddTopic("ALARM");
}

LNB (Left Navigation Bar)

SimulatorLNB

시뮬레이터 전용 좌측 네비게이션 바입니다.

LNBExplorer

파일 시스템 탐색기 뷰를 제공합니다.

LNBLibrary

사전 정의된 설비 라이브러리를 제공합니다.


사용 시나리오

  1. 설비 배치 테스트: 3D 공간에 설비 배치 및 레이아웃 확인
  2. 애니메이션 테스트: AGV 이동 경로, 알람 UI 동작 확인
  3. UI 개발: InfoWindow, Modal 등 UI 컴포넌트 테스트
  4. Playback 테스트: 과거 데이터 재생 기능 검증

의존성

  • Factory 모듈: Config, Constants 공유
  • UVC 라이브러리: Core, Data, Locale, Util, Log