Expand description
OMG DDS-OPCUA Gateway 1.0 — Type-System + AddressSpace Mapping.
Crate zerodds-opcua-gateway. Safety classification: STANDARD.
Spec formal/2020-01-01 (docs/standards/cache/omg/dds-opcua-1.0.pdf).
§Scope
We implement the type-system-mapping layer from Spec §8.2 (OPC-UA → DDS) + §9.2 (DDS → OPC-UA) as a pure-Rust no_std+alloc library:
BuiltinTypeKindenum with all 25 OPC-UA built-in type IDs (Spec §8.2 Tab 8.1).- Primitive-Type-Mapping (Boolean, SByte/Byte, Int16/UInt16, Int32/UInt32, Int64/UInt64, Float, Double, String) — Spec Tab 8.1.
NodeIdwith all 4 identifier kinds (Numeric, String, Guid, Opaque) — Spec §8.2.2 Tab 8.2.ExpandedNodeIdwith namespace URI + server index — Spec §8.2.2.NodeClassenum (8 values) — Spec §8.3.1 Tab 8.3.StatusCode+Guid+ByteString+LocalizedText+QualifiedNamemodels — Spec Tab 8.2.BodyEncoding+ExtensionObject+Variant+DataValue— Spec Tab 8.2.- AddressSpace-Mapping: DDS Domain → OPC-UA ObjectNode + DDS Topic → OPC-UA ObjectNode + DDS Sample → OPC-UA Variable — Spec §9.3.
§What is not covered
- OPC-UA Binary Wire-Encoding (Spec OPCUA-06 Mappings) —
the caller layer (typically an external OPC-UA stack like
opcuaoropen62541). - Subscription Service Set Behavior (Spec §8.4.3) — runtime logic; the mapping model is exposed, the actual polling/ notification is the caller’s.
- Historical Access (Spec §8.3.4 + §9.3.4) — requires a historical-server backend.
Re-exports§
pub use address_space::DomainNode;pub use address_space::InstanceNode;pub use address_space::SampleVariable;pub use address_space::TopicNode;pub use address_space::build_sample_instance;pub use address_space::mangle_topic_node_browse_name;pub use conformance::ConformancePoint;pub use conformance::DECLARED_CONFORMANCE;pub use conformance::declares;pub use conformance::is_multi_point_conformant;pub use data_value::DataValue;pub use data_value::ExtensionObject;pub use data_value::Variant;pub use data_value::VariantValue;pub use node_id::ExpandedNodeId;pub use node_id::NodeId;pub use node_id::NodeIdentifier;pub use types::BuiltinTypeKind;pub use types::ByteString;pub use types::Guid;pub use types::LocalizedText;pub use types::NodeClass;pub use types::QualifiedName;pub use types::StatusCode;pub use types::map_primitive_to_dds;pub use xml::BridgeDef;pub use xml::ConnectionDirection;pub use xml::GatewayConfig;pub use xml::OpcuaXmlError;pub use xml::OpcuaXmlError as XmlError;pub use xml::UaConnection;pub use xml::parse_gateway_config;
Modules§
- address_
space - AddressSpace-Mapping DDS ↔ OPC UA — Spec §9.3.
- conformance
- Spec §2 — declared OPC UA/DDS Gateway conformance points.
- data_
value Variant+DataValue+ExtensionObject— Spec §8.2.2 Tab 8.2.- dds_
to_ ua - DDS → OPC UA Type Mapping — Spec §9.2.
- historical
- Historical Data Reading — Spec §9.3.4.4.
- node_id
NodeId+ExpandedNodeId— Spec §8.2.2 Tab 8.2.- service_
sets - OPC UA Service Sets Mapping — Spec §8.3.
- subscription_
mapping - OPC-UA Subscription Model Mapping — Spec §8.4.
- types
- OPC-UA Built-in Types + Primitive-Type-Mapping zu DDS — Spec §8.2.
- xml
- DDS-OPCUA Gateway XML Configuration Loader (Spec §10).