How aklira/igs-iec61850-mms works
This is an IEC 61850 MMS protocol stack for SCADA and telecontrol. Its user-facing workflow is a typed client accessing a server’s model, data, controls, and reports over MMS; a separate configuration path parses and validates SCL before building a server model. Core modules provide the standard catalogue, naming/layout, ACSI types, control state machines, and report engines. The graph reflects indexed references and excerpts; where runtime wiring was not shown, links are omitted rather than inferred.
Main entry points: model.rs Served model · build.rs Model builder · mod.rs Server model · reports.rs Report service
Components 27
Client access
- Typed client
crates/igs-iec61850-mms/src/client.rs - Dataset access
crates/igs-iec61850-mms/src/client_dataset.rs - Control API
crates/igs-iec61850-mms/src/client_control.rs - Report API
crates/igs-iec61850-mms/src/client_report.rs - Buffered client
crates/igs-iec61850-mms/src/client_buffered.rs
MMS server
- Server process
crates/igs-iec61850-mms/src/bin/igs61850-server.rs - Served model
crates/igs-iec61850-mms/src/model.rs - Dataset service
crates/igs-iec61850-mms/src/datasets.rs - Value updates
crates/igs-iec61850-mms/src/updates.rs
IEC data model
- Server model
crates/igs-iec61850-mms-core/src/model/mod.rs - Model layout
crates/igs-iec61850-mms-core/src/model/layout.rs - Standard catalogue
crates/igs-iec61850-mms-core/src/catalogue/mod.rs - ACSI types
crates/igs-iec61850-mms-core/src/acsi.rs - Discovery
crates/igs-iec61850-mms-core/src/discovery.rs - Object names
crates/igs-iec61850-mms-core/src/names.rs
SCL configuration
- SCL parser
crates/igs-iec61850-mms-core/src/scl/mod.rs - SCL validation
crates/igs-iec61850-mms-core/src/scl/validate.rs - Model builder
crates/igs-iec61850-mms-core/src/scl/build.rs
Control and reports
- Server controls
crates/igs-iec61850-mms/src/control.rs - Control machine
crates/igs-iec61850-mms-core/src/control/machine.rs - Unbuffered reports
crates/igs-iec61850-mms-core/src/report/urcb.rs - Buffered reports
crates/igs-iec61850-mms-core/src/report/brcb.rs - Report encoding
crates/igs-iec61850-mms-core/src/report/encode.rs - Report service
crates/igs-iec61850-mms/src/reports.rs - Buffered service
crates/igs-iec61850-mms/src/buffered.rs
Other components
- SCADA client
- MMS peer
Connections 31
- SCADA client → Typed client: uses
- Buffered client → Typed client: uses
crates/igs-iec61850-mms/src/client_buffered.rs - Buffered client → Control API: uses
crates/igs-iec61850-mms/src/client_buffered.rs - Buffered client → Report API: uses
crates/igs-iec61850-mms/src/client_buffered.rs - Server process → Served model: serves
- Served model → Dataset service: dispatches
crates/igs-iec61850-mms/src/model.rs - Served model → Server controls: dispatches
crates/igs-iec61850-mms/src/model.rs - Served model → Report service: dispatches
crates/igs-iec61850-mms/src/model.rs - Served model → Buffered service: dispatches
crates/igs-iec61850-mms/src/model.rs - Served model → Value updates: uses
crates/igs-iec61850-mms/src/model.rs - Served model → Server model: serves
- Served model → MMS peer: exchanges MMS
- Server model → Model layout: builds layout
crates/igs-iec61850-mms-core/src/model/mod.rs - Server model → Standard catalogue: checks against
crates/igs-iec61850-mms-core/src/model/mod.rs - Server model → Object names: uses names
crates/igs-iec61850-mms-core/src/model/mod.rs - Discovery → Server model: reads model
crates/igs-iec61850-mms-core/src/discovery.rs - SCL parser → SCL validation: validates
crates/igs-iec61850-mms-core/src/scl/mod.rs - Model builder → SCL validation: checks
crates/igs-iec61850-mms-core/src/scl/build.rs - Model builder → Server model: builds
crates/igs-iec61850-mms-core/src/scl/build.rs - Model builder → Model layout: uses
crates/igs-iec61850-mms-core/src/scl/build.rs - Model builder → Standard catalogue: uses
crates/igs-iec61850-mms-core/src/scl/build.rs - Model builder → Unbuffered reports: configures
crates/igs-iec61850-mms-core/src/scl/build.rs - Model builder → Buffered reports: configures
crates/igs-iec61850-mms-core/src/scl/build.rs - Server controls → Control machine: uses
- Report service → Unbuffered reports: uses
- Report service → Report encoding: encodes reports
- Buffered service → Buffered reports: uses
- Buffered service → Report service: uses
crates/igs-iec61850-mms/src/buffered.rs - Report encoding → Buffered reports: encodes
crates/igs-iec61850-mms-core/src/report/encode.rs - Report encoding → Unbuffered reports: encodes
crates/igs-iec61850-mms-core/src/report/encode.rs - ACSI types → Standard catalogue: maps types
crates/igs-iec61850-mms-core/src/acsi.rs