Skip to content

Latest commit

 

History

History
67 lines (49 loc) · 3.57 KB

File metadata and controls

67 lines (49 loc) · 3.57 KB

Changelog

v0.1.0 (2026-03-27) — Preliminary Release

First public release of the RTI UMAA Python SDK. Delivers everything needed to build a working UMAA component using Tier 0 (command) and Tier 1 (report) service templates.

SDK Core

  • DDSContext — Singleton DDS infrastructure manager with auto QoS assignment via UMAA_QOS_FILE, topic cache, service registry, and coordinated shutdown
  • BaseService — Abstract base class with auto-registration, close() lifecycle, and optional _run() coroutine
  • BaseComponent — Abstract base class for multi-service components with on_start(), _run(), and close() lifecycle hooks
  • CommandProvider — Tier 0 server-side command template with full ICD state machine (ISSUED → COMMANDED → EXECUTING → COMPLETED/FAILED/CANCELED), 7 async hooks, content-filtered reader, automatic ack/status publishing
  • CommandConsumer — Tier 0 client-side command template with send(), cancel(), discovery waiting, and lifecycle hooks (on_status, on_ack, on_exec_status, on_terminal)
  • CommandProviderSession — Per-command state machine with validated transitions (D51 fail-reason checking), cancel/fail/update support
  • ReportProvider — Tier 1 single-topic publisher with field validation and instance disposal on close
  • ReportConsumer — Tier 1 single-topic subscriber with async on_report() hook

Utilities

  • GUIDUtil — GUID generation, hex conversion for CFT filter expressions, UUID string conversion
  • UmaaTimestamp / set_timestamp() — UMAA DateTimeType ↔ Python datetime bidirectional conversion
  • CommandHookError / CommandFailedError / AssemblyError — Typed exception hierarchy
  • CommandResult — Command execution result wrapper
  • Field validation — Automatic numeric range and enum validation against UMAA IDL constraints

Pre-Wired Service Library

  • 350 concrete service classes across 7 UMAA domains:
    • CO (Common Operations) — 42 classes
    • EO (Engineering Operations) — 58 classes
    • MM (Mission Management) — 70 classes
    • MO (Maritime Operations) — 18 classes
    • SA (Situational Awareness) — 66 classes
    • SEM (Sensors) — 26 classes
    • SO (System Operations) — 70 classes
  • Auto-generated from UMAA IDL via tools/generate_services.py
  • Each class pre-wires command/ack/status/exec_status types and topic names

Generated Data Model

  • 596 Python type modules in rtiumaapy.datamodel generated from UMAA IDL using rtiddsgen

Examples

  • Autopilot component — Full 18-service UMAA component (4 command providers, 4 command consumers, 4 report providers, 6 report consumers)
  • GlobalVector consumer — Minimal command consumer example

QoS

  • 4 QoS profiles via XML topic_filter rules (TelemetryQoS, CommandQoS, ConfigQoS, ElementQoS)
  • AssignerQoS automatic profile matching by topic name suffix
  • USTM tool compatibility mode (commented, ready to enable)
  • Cyclone DDS interoperability support

Testing

  • 1,628 tests passing (unit + DDS integration)
  • ~1,400 parametrized service library import/subclass/binding tests
  • Full command lifecycle tests (ack, status, exec_status, rejection, cancellation, update, failure, crash recovery)
  • Full report lifecycle tests (pub/sub, validation, dispose)
  • QoS topic_filter regression tests

Not Yet Implemented

  • Tier 2: Large Set services (LargeSetReportProvider/Consumer)
  • Tier 3: Large List services (LargeListReportProvider/Consumer)
  • Tier 4: Composite services (explicit multi-topic assembly)