3.3 KiB
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
사전 정의된 설비 라이브러리를 제공합니다.
사용 시나리오
- 설비 배치 테스트: 3D 공간에 설비 배치 및 레이아웃 확인
- 애니메이션 테스트: AGV 이동 경로, 알람 UI 동작 확인
- UI 개발: InfoWindow, Modal 등 UI 컴포넌트 테스트
- Playback 테스트: 과거 데이터 재생 기능 검증
의존성
- Factory 모듈: Config, Constants 공유
- UVC 라이브러리: Core, Data, Locale, Util, Log