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 viaUMAA_QOS_FILE, topic cache, service registry, and coordinated shutdownBaseService— Abstract base class with auto-registration,close()lifecycle, and optional_run()coroutineBaseComponent— Abstract base class for multi-service components withon_start(),_run(), andclose()lifecycle hooksCommandProvider— 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 publishingCommandConsumer— Tier 0 client-side command template withsend(),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 supportReportProvider— Tier 1 single-topic publisher with field validation and instance disposal on closeReportConsumer— Tier 1 single-topic subscriber with asyncon_report()hook
Utilities
GUIDUtil— GUID generation, hex conversion for CFT filter expressions, UUID string conversionUmaaTimestamp/set_timestamp()— UMAA DateTimeType ↔ Python datetime bidirectional conversionCommandHookError/CommandFailedError/AssemblyError— Typed exception hierarchyCommandResult— Command execution result wrapperField 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.pyEach class pre-wires command/ack/status/exec_status types and topic names
Generated Data Model
596 Python type modules in
rtiumaapy.datamodelgenerated from UMAA IDL usingrtiddsgen
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_filterrules (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)