Skip to content

[Superseded by #41] Add portable static IEC 61850 server adapter - #37

Closed
masarray wants to merge 1 commit into
agent/esp32p4-sv-publisher-first-trialfrom
main-phase-e5-mms-server
Closed

masarray wants to merge 1 commit into
agent/esp32p4-sv-publisher-first-trialfrom
main-phase-e5-mms-server

Conversation

@masarray

@masarray masarray commented Aug 10, 2026 •

Copy link
Copy Markdown
Owner

What changed

  • add a separate ARIEC61850::mms_server_core library for the bounded server-side span codecs/runtime;
  • add MmsStaticServerSession, an allocation-free fixed-buffer pump over an already-connected TcpByteStream;
  • preserve fragmented/coalesced TPKT input and partial TCP sends across polls;
  • add a WinSock/BSD desktop listener, ariec61850_static_ied_server;
  • expose a read-only ESP32S3IOLD0 model with LLN0, LPHD1, and GGIO1 Ind1..Ind8;
  • keep root LN TypeSpecifications available for GVAA while listing leaf variables for live-model discovery;
  • add normal CTest and hard-profile wiring for connection/session regressions;
  • document the lwIP/ESP-IDF integration boundary and current limitations.

Why

The portable server core already handled COTP, ACSE/MMS Initiate, static browse/read dispatch, DataSets, and reporting primitives, but it had no reusable transport session pump or runnable product adapter. This slice bridges a connected TCP stream to the core without adding WinSock, BSD sockets, lwIP, FreeRTOS, or ESP-IDF dependencies to the protocol engine.

The PR is intentionally stacked on agent/esp32p4-sv-publisher-first-trial, where the bounded static MMS server lineage currently lives. It does not touch the parallel Dynamic DataSet/Smart Dynamic RCB branches.

Validation

  • MSVC Release build:
    • ariec61850_mms_server_core
    • ariec61850_static_ied_server
    • ariec61850_mms_server_session_tests
    • ariec61850_mms_connection_runtime_tests
  • CTest: 3/3 passed for server session, full connection runtime, and server help contract.
  • TCP loopback with the repository's own ariec61850_live_discover:
    • association and discovery succeeded;
    • 1 domain, 10 variables;
    • 1 LD, 3 LN, 10 DO, 10 DA;
    • 10 exact MMS types;
    • partial=false;
    • deterministic fingerprint 4c236411211eccc0.

Acceptance boundary

This is the first read-only runnable server adapter, not full IEC 61850 server parity or conformance. external IEC 61850 client/physical ESP32 evidence, concurrent desktop clients, GPIO-backed live snapshots, reporting/control integration, file services, TLS, and runtime SCL model loading remain follow-up slices.

Copy link
Copy Markdown
Owner Author

Superseded by clean current-main successor #41.

#41 preserves the runnable read-only IEC 61850 MMS server scope and loopback evidence, adds the GCC/Clang POSIX socket type-safety fix, integrates the bounded server engine into the current embedded profile, and is based directly on current main (including #38).

This PR is retained as historical prototype/CI evidence only; its old SV/URCB/BRCB lineage should not be merged.

@masarray masarray changed the title Add portable static IEC 61850 server adapter [Superseded by #41] Add portable static IEC 61850 server adapter Aug 10, 2026
@masarray masarray closed this Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant