Skip to main content

Crate zerodds_opcua_gateway

Crate zerodds_opcua_gateway 

Source
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

Wir implementieren die Type-System-Mapping-Layer aus Spec §8.2 (OPC-UA → DDS) + §9.2 (DDS → OPC-UA) als pure-Rust no_std+alloc Library:

  • BuiltinTypeKind Enum mit allen 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.
  • NodeId mit allen 4 Identifier-Kinds (Numeric, String, Guid, Opaque) — Spec §8.2.2 Tab 8.2.
  • ExpandedNodeId mit Namespace-URI + Server-Index — Spec §8.2.2.
  • NodeClass Enum (8 Werte) — Spec §8.3.1 Tab 8.3.
  • StatusCode + Guid + ByteString + LocalizedText + QualifiedName Modelle — 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.

§Was nicht abgedeckt ist

  • OPC-UA Binary Wire-Encoding (Spec OPCUA-06 Mappings) — Caller-Layer (typisch externer OPC-UA-Stack wie opcua oder open62541).
  • Subscription Service Set Behavior (Spec §8.4.3) — Runtime- Logic; das Mapping-Modell ist exposed, das eigentliche Polling/ Notification ist Caller.
  • Historical Access (Spec §8.3.4 + §9.3.4) — verlangt Historical-Server-Backend.

Re-exports§

pub use address_space::DomainNode;
pub use address_space::SampleVariable;
pub use address_space::TopicNode;
pub use address_space::mangle_topic_node_browse_name;
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.
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).