Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MAKRTI Client

Cross-platform build License C++

MAK RTI 4.6.1과 IEEE 1516-2000(SISO DLC)을 목표로 하는 C++17/C# HLA client 골격입니다. FDD와 client bindings를 XML로 관리하고, 검증된 typed message 및 codec을 자동 생성합니다.

현재 구현은 상용 SDK 없이 빌드되는 vendor-neutral 코어와 in-process Mock transport입니다. MAK RTI direct adapter는 실제 4.6.1 SDK의 header, library, example과 ABI를 확인한 뒤 별도 target으로 추가합니다. VR-Link에는 종속되지 않습니다.

현재 제공 범위

  • IEEE 1516-2000 FDD와 client bindings 교차 검증
  • C++ message, object/interaction binding, HLA codec 결정적 생성
  • typed object register/update와 interaction send/subscribe API
  • thread-safe Mock transport와 RAII subscription
  • XML profile → 환경변수 → C++ option 설정 우선순위
  • Windows x64와 Rocky Linux 9 x64용 정적/공유 C++ 라이브러리
  • 예외가 ABI 경계를 넘지 않는 C API와 C# P/Invoke SDK
  • net8.0/net10.0, win-x64/linux-x64 런타임을 담은 NuGet 패키지
  • Windows PowerShell 및 Linux shell 빌드, Docker 검증, 교차 플랫폼 CI
flowchart LR
    FDD[FDD XML] --> V[Validator / Generator]
    B[Client bindings XML] --> V
    V --> G[Generated C++ messages / codec]
    A[Application] --> C[MAKRTI Client API]
    G --> C
    C --> T[ITransport]
    T --> M[Mock transport]
    T -. SDK 확인 후 별도 추가 .-> R[MAK RTI 4.6.1 adapter]
    L[MAK Data Logger] -. 외부 federate .-> R
Loading

빠른 시작

Windows에서는 CMake 3.24+, Python 3, C++17 MSVC와 .NET 10 SDK를 사용합니다.

./build.ps1 -Doctor
./build.ps1 -Generate
./build.ps1 -Configuration Debug -Test
./build/windows/Debug/makrti-cli.exe demo ./config/makrti_client.mock.xml
./build.ps1 -Configuration Release -Test -Package
./tools/test-rocky9.ps1
./tools/package-nuget.ps1

Rocky Linux 9에서는 Docker 없이도 ./build.sh --doctor --clean --test --package로 동일한 검증을 실행할 수 있습니다. 주요 산출물은 다음과 같습니다.

산출물 내용
makrti-client-Release.zip Windows x64 C++ static/shared, C ABI DLL
makrti-client-rocky9-x64.tar.gz Rocky Linux 9 x64 C++ static/shared, C ABI SO
MAKRTI.Client.0.2.0.nupkg C# SDK와 Windows/Linux x64 native runtime

메시지를 바꾸려면 Simulation.xmlclient-bindings.xml을 수정한 뒤 ./build.ps1 -Generate를 실행합니다. generated/ 파일은 직접 편집하지 않습니다.

API 예시

#include <makrti/makrti.hpp>

auto config = makrti::load_configuration("config/makrti_client.mock.xml");
makrti::Client client(std::move(config), makrti::make_mock_transport());
client.connect();

auto received = client.subscribe_interactions<makrti::generated::WeaponFire>(
    [](const auto& fire) { /* use fire */ });
client.send(makrti::generated::WeaponFire{101, 202, 1, "TrainingMissile"});

문서

상용 제품 및 라이선스

MAK RTI, VR-Link, MAK Data Logger 및 그 runtime/license는 이 저장소에 포함되지 않습니다. MAK 제품명은 각 권리자의 상표일 수 있으며, 이 프로젝트는 MAK Technologies의 공식 배포물이 아닙니다. 저장소 자체 코드는 Apache License 2.0으로 배포됩니다.

About

C++17 client core and FDD code generator for MAK RTI 4.6.1 / IEEE 1516-2000

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages