Closed JakobVogelsang closed 1 month ago
What plug-ins are affected in this issue?
On which plug-ins
does this occur?
It could appear in all the six subscriber plugins:
The problem is likely to be found here:
Here, a query is constructed with the assumption that srcLNClass
and srcLNInst
are not empty.
After having looked into the issue for GOOSE later binding the code that fetches the list for the subscribed list is here
and does not call packages/plugins/src/editors/subscription/foundation#getExtRef
at all.
The filter for srcLNClass
and srcLNInst
is here
It looks like the check for srcLNClass
fails, because a missing value is transformed to empty string and compared to lnElement.lnClass
which is probably 'LLN0'. The srcLNInst
passes, because a missing value is interpreted as empty string which is the default value by coincidence.
Take note that the comparison function converts missing element, missing attribute and missing value to empty string.
The part in packages/plugins/src/editors/subscription/foundation#getExtRef
is being used in the Message binding plugins
@clepski this would be the file for the regression test. It has SMV and GOOSE services linked to the ExtRef and both would fail to show correct subscription at the moment.
@DavoodSooran can you validate this story?
I suggest to close this issue and create an new issue and pull-request for the following finding: https://github.com/openscd/open-scd/issues/1556
As a user of OpenSCD I want to be able to see already existing subscriptions in OpenSCD in all circumstances. At the moment when an
ExtRef
element has missingsrcLNClass
andsrcLNInst
is interpreted as unsubscribe. That however is incorrect as described here.Acceptance Criteria On checking existing subscriptions, the existing rules must be extended so that:
srcLNClass
defaulting toLLN0
when missingsrcLNInst
defaulting to empty string when missingExample
<ExtRef iedName="AA1E1Q01BCU" ldInst="MV" ... srcLDInst="LD0" srcCBName="gcb" serviceType="GOOSE" />
must be interpreted as<ExtRef iedName="AA1E1Q01BCU" ldInst="MV" ... srcLDInst="LD0" srcLNClass="LLN0" srcLNInst="" srcCBName="gcb" serviceType="GOOSE" />