Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion include/ariec61850/mms/services_span.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ class MmsServiceSpanCodec final {
static constexpr std::size_t maximum_identifiers = 128U;

// reference IEC 61850 client performs bounded bulk reads while walking a full IEC 61850 model.
// The proven ARIEC61850 trace for the SIPROTEC reference model contains a
// The proven ARIEC61850 trace for the reference IEC 61850 model contains a
// single 78-variable Read request. Keep the portable span profile bounded,
// but leave enough headroom for that real discovery pattern.
static constexpr std::size_t maximum_variables = 128U;
Expand Down
4 changes: 2 additions & 2 deletions include/ariec61850/mms/simulator_manifest_codec.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ class MmsSimulatorManifestCodec final {
return result;
}
if (raw == "ENUM") {
// OMICRON reference IEC 61850 client advertises IEC 61850 Enum leaves as INTEGER(8)
// for the captured SIPROTEC model (Mod/Beh/Health/ctlModel).
// independent IEC 61850 test client advertises IEC 61850 Enum leaves as INTEGER(8)
// for the captured reference IED model (Mod/Beh/Health/ctlModel).
result.kind = MmsTypeKind::integer;
result.size = 8U;
return result;
Expand Down
2 changes: 1 addition & 1 deletion src/mms/services.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ std::vector<std::uint8_t> encode_type_impl(
}
auto encoded = BerWriter::encode_signed_integer(
-static_cast<std::int64_t>(*type.size));
// OMICRON reference IEC 61850 client emits variable maximum lengths in at least a
// independent IEC 61850 test client emits variable maximum lengths in at least a
// two-octet signed field. In the golden capture Octet64 is
// 89 02 FF C0 (not the mathematically minimal 89 01 C0).
if (encoded.size() == 1U) encoded.insert(encoded.begin(), 0xFFU);
Expand Down
4 changes: 2 additions & 2 deletions src/mms/static_direct_control.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ void release_selection(MmsStaticDirectBooleanControlBinding& binding) noexcept {
const MmsStaticDirectBooleanOperate& right,
const bool compare_check) noexcept {
// IEC 61850 enhanced SBO correlation is based on the selected command
// identity. OMICRON reference IEC 61850 client emits a fresh T for Oper (and may do so for
// identity. independent IEC 61850 test client emits a fresh T for Oper (and may do so for
// Cancel) rather than replaying the SBOw timestamp, so T is intentionally
// not part of selection identity. The accepted Oper itself is still kept
// intact for CommandTermination correlation.
Expand All @@ -261,7 +261,7 @@ void release_selection(MmsStaticDirectBooleanControlBinding& binding) noexcept {
const MmsStaticDirectBooleanControlBinding& binding,
const MmsStaticDirectBooleanOperate& command) noexcept {
// ctlNum is an IEC 61850 wire value supplied by the remote client. Keep
// zero valid on the server path: OMICRON reference IEC 61850 client uses ctlNum=0 in real
// zero valid on the server path: independent IEC 61850 test client uses ctlNum=0 in real
// SBOw/Oper traffic. ARStack's client-side auto-allocation policy (1..255)
// is separate and remains unchanged.
return command.origin_category <= 8U &&
Expand Down
2 changes: 1 addition & 1 deletion src/mms/static_dispatcher.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -636,7 +636,7 @@ struct SyntheticChildRank final {
if (prefix.find("$BR$") != std::string_view::npos) {
return {kBrcbAttributeOrder};
}
// OMICRON reference IEC 61850 client exposes control-service alternatives in this exact
// independent IEC 61850 test client exposes control-service alternatives in this exact
// order at LN$CO$DO. Deeper service structures remain positional.
if (prefix.find("$CO$") != std::string_view::npos &&
static_cast<std::size_t>(std::count(
Expand Down
2 changes: 1 addition & 1 deletion src/simulation/ied_simulator_profile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ namespace {
// q/t are semantic terminal DataAttribute names, not arbitrary suffixes.
// The former ends_with("t") rule misclassified orCat, orIdent,
// sboTimeout, operTimeout and Test as Timestamp, corrupting the live MMS
// TypeSpecification seen by OMICRON reference IEC 61850 client.
// TypeSpecification seen by independent IEC 61850 test client.
if (entry.is_quality || attribute_leaf_is(entry.da_name, "q") ||
ascii_equal(entry.basic_type, "Quality")) {
return "Quality";
Expand Down
4 changes: 2 additions & 2 deletions tests/test_mms_static_direct_control.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ void invalid_shape_and_values_are_rejected() {
CHECK(!result.success);
CHECK(result.failure_code == 7U);

// ctlNum=0 is valid on the incoming server wire. OMICRON reference IEC 61850 client uses it.
// ctlNum=0 is valid on the incoming server wire. independent IEC 61850 test client uses it.
result = mms_static_direct_boolean_write_oper(&binding, make_oper(true, 0U, false));
CHECK(result.success);
CHECK(state.last_control_number == 0U);
Expand Down Expand Up @@ -329,7 +329,7 @@ void reference_iec61850_sbo_enhanced_accepts_ctl_num_zero_and_fresh_oper_timesta
binding.policy.allow_synchro_check = true;
binding.policy.allow_interlock_check = true;

// Captured OMICRON reference IEC 61850 client behavior:
// Captured independent IEC 61850 test client behavior:
// SBOw uses ctlNum=0 and T1; Oper keeps the selected identity but sends T2.
const auto selected = mms_static_boolean_write_sbow_contextual(
&binding,
Expand Down
4 changes: 2 additions & 2 deletions tools/static_ied_server_iedsim/test_cswi1_type_golden.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
"""Exact OMICRON reference IEC 61850 client CSWI1 TypeSpecification golden regression."""
"""Exact independent IEC 61850 test client CSWI1 TypeSpecification golden regression."""

from __future__ import annotations

Expand Down Expand Up @@ -29,7 +29,7 @@ def manifest() -> str:
"ARSTACK_IED_MODEL\t2\t1",
f"LN\t{d}\tCSWI1",

# ST — exact leaf order/type shape captured from OMICRON reference IEC 61850 client.
# ST — exact leaf order/type shape captured from independent IEC 61850 test client.
f"OBJ\t{d}\tCSWI1$ST$Mod$stVal\tENUM\tEnumeration\t1",
f"OBJ\t{d}\tCSWI1$ST$Mod$q\tQUALITY\tQuality\tgood",
f"OBJ\t{d}\tCSWI1$ST$Mod$t\tTimestamp\tTimestamp\tunix-ms:1720000000000",
Expand Down
2 changes: 1 addition & 1 deletion tools/static_ied_server_iedsim/test_reporting_golden.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,7 @@ int main() {
return 14;
}

// The accepted OMICRON command capture produced a selective BRCB report
// The accepted independent test-client capture produced a selective BRCB report
// after process feedback. Its 36-bit inclusion field selects member 33 and
// ReasonForInclusion is data-change. Lock SqNum/EntryID progression too.
constexpr std::size_t changed_member = 33U;
Expand Down
2 changes: 1 addition & 1 deletion tools/static_ied_server_iedsim/test_runtime_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ def creation_flags() -> int:
def manifest(revision: int, value: bool) -> str:
"""Build a vendor-style model with configured whole-DO DataSet members.

The 36/22 cardinalities mirror the SIPROTEC acceptance case that exposed the
The 36/22 cardinalities mirror the reference IED acceptance case that exposed the
regression. Each configured member owns multiple leaves, so flattening the
Digital DataSet would exceed the 64-member static DataSet limit while the
correct configured membership remains safely at 36.
Expand Down
Loading