Skip to main content

Crate zerodds_rtc

Crate zerodds_rtc 

Source
Expand description

OMG RTC 1.0 — Robotic Technology Component.

Crate zerodds-rtc. Safety classification: STANDARD. Spec formal/2008-04-04 (docs/standards/cache/omg/rtc-1.0.pdf).

§Scope

Implementiert sind: Lightweight RTC, Execution Semantics (Periodic / Stimulus Response / Modes), Local PSM (§5.2 + §5.3 + §6.3) als Rust-Library. Das Local PSM ist explizit “Components on same network node, direct object refs without CORBA-mediated middleware” (Spec §1.3 Punkt 1, S. 2) und damit ZeroDDS-konform.

§Was nicht abgedeckt ist

  • CORBA PSM (§6.5) — verlangt CORBA-ORB; ZeroDDS hat keinen.
  • Lightweight CCM PSM (§6.4) — verlangt LwCCM-Container; siehe crates/ccm/ welche die IDL-Equivalent-Transformation liefert, aber keinen Container bereitstellt.
  • Introspection §5.4 Resource Data Model — partial: das Datenmodell ist im Crate, der Discovery-/Wire-Aspekt nicht.

§Module

  • return_codeReturnCode_t (Spec §5.2.1).
  • lifecycleLifeCycleState, ExecutionKind, ComponentAction Trait + State-Machine-Enforcement (Spec §5.2.2.3 / §5.2.2.7 / §5.2.2.4).
  • objectLightweightRTObject-Modell (Spec §5.2.2.2) + ExecutionContextHandle_t (Spec §5.2.2.8).
  • executionExecutionContext + ExecutionContextOperations (Spec §5.2.2.5 / §5.2.2.6).
  • semantics — Execution-Kind-Profile (Periodic/Stimulus/Modes, Spec §5.3).

§Beispiel

use zerodds_rtc::ReturnCode;

// Spec §5.2.1.1: ReturnCode::Ok ist der einzige OK-Code.
assert!(ReturnCode::Ok.is_ok());
assert!(!ReturnCode::PreconditionNotMet.is_ok());
assert_eq!(ReturnCode::Ok.into_result(), Ok(()));

Re-exports§

pub use execution::ExecutionContext;
pub use execution::ExecutionContextOperations;
pub use lifecycle::ComponentAction;
pub use lifecycle::ExecutionKind;
pub use lifecycle::LifeCycleState;
pub use object::ExecutionContextHandle;
pub use object::LightweightRtObject;
pub use resource::ComponentProfile;
pub use resource::ConnectorProfile;
pub use resource::Introspection;
pub use resource::PortDirection;
pub use resource::PortProfile;
pub use resource::ProfileId;
pub use return_code::ReturnCode;
pub use semantics::DataFlowComponentAction;
pub use semantics::FsmComponentAction;
pub use semantics::ModeOfOperation;
pub use semantics::MultiModeComponentAction;

Modules§

execution
ExecutionContext + ExecutionContextOperations — Spec §5.2.2.5 / §5.2.2.6.
lifecycle
Lifecycle-Modell — Spec §5.2.2.3 / §5.2.2.4 / §5.2.2.7.
object
LightweightRTObject + State-Machine — Spec §5.2.2.2.
resource
OMG RTC 1.0 §5.4 Resource Data Model + Introspection Interfaces.
return_code
ReturnCode_t — Spec §5.2.1.
semantics
Execution-Semantics-Profile — Spec §5.3.