From 5ee353cf85e61ce9edd6f48268d198adfdc3f0b2 Mon Sep 17 00:00:00 2001 From: Steffen van den Driest <35229971+Stef3st@users.noreply.github.com> Date: Mon, 27 Nov 2023 16:56:25 +0100 Subject: [PATCH] feat: added acd as a supported cdc type (#1371) Signed-off-by: Stef3st --- .../src/editors/protocol104/foundation/cdc.ts | 30 ++++++++++++++++++- .../wizards/__snapshots__/doi.test.snap.js | 12 ++++++-- .../editors/protocol104/wizards/doi.test.ts | 11 ++++++- 3 files changed, 48 insertions(+), 5 deletions(-) diff --git a/packages/open-scd/src/editors/protocol104/foundation/cdc.ts b/packages/open-scd/src/editors/protocol104/foundation/cdc.ts index bd39fa572b..91e8a928e6 100644 --- a/packages/open-scd/src/editors/protocol104/foundation/cdc.ts +++ b/packages/open-scd/src/editors/protocol104/foundation/cdc.ts @@ -29,6 +29,7 @@ import { get } from 'lit-translate'; * List of supported Common Data Classes in the 104 protocol. */ export const supportedCdcTypes = [ + 'ACD', 'ACT', 'APC', 'ASG', @@ -49,7 +50,7 @@ export const supportedCdcTypes = [ 'SPG', 'SPS', ] as const; -export type SupportedCdcType = typeof supportedCdcTypes[number]; +export type SupportedCdcType = (typeof supportedCdcTypes)[number]; export type CreateFunction = ( lnElement: Element, @@ -96,6 +97,33 @@ export const cdcProcessings: Record< control: Record; } > = { + ACD: { + monitor: { + '30': { + daPaths: [ + { path: ['general'] }, + { path: ['phsA'] }, + { path: ['phsB'] }, + { path: ['phsC'] }, + { path: ['neut'] }, + ], + create: createAddressAction, + inverted: true, + }, + '40': { + daPaths: [ + { path: ['general'] }, + { path: ['phsA'] }, + { path: ['phsB'] }, + { path: ['phsC'] }, + { path: ['neut'] }, + ], + create: createAddressAction, + inverted: false, + }, + }, + control: {}, + }, ACT: { monitor: { '30': { diff --git a/packages/open-scd/test/unit/editors/protocol104/wizards/__snapshots__/doi.test.snap.js b/packages/open-scd/test/unit/editors/protocol104/wizards/__snapshots__/doi.test.snap.js index 0707a23cf2..d6dda7b182 100644 --- a/packages/open-scd/test/unit/editors/protocol104/wizards/__snapshots__/doi.test.snap.js +++ b/packages/open-scd/test/unit/editors/protocol104/wizards/__snapshots__/doi.test.snap.js @@ -183,7 +183,7 @@ snapshots["Wizards for 104 DOI Element show 104 DOI Basic Info with ctlModel (Kn `; /* end snapshot Wizards for 104 DOI Element show 104 DOI Basic Info with ctlModel (Known CDC Monitor and Control) looks like the latest snapshot */ -snapshots["Wizards for 104 DOI Element show 104 DOI Basic Info (Unknown CDC) looks like the latest snapshot"] = +snapshots["Wizards for 104 DOI Element show 104 DOI Basic Info for CDC=ACD looks like the latest snapshot"] = ` + + @@ -257,5 +263,5 @@ snapshots["Wizards for 104 DOI Element show 104 DOI Basic Info (Unknown CDC) loo `; -/* end snapshot Wizards for 104 DOI Element show 104 DOI Basic Info (Unknown CDC) looks like the latest snapshot */ +/* end snapshot Wizards for 104 DOI Element show 104 DOI Basic Info for CDC=ACD looks like the latest snapshot */ diff --git a/packages/open-scd/test/unit/editors/protocol104/wizards/doi.test.ts b/packages/open-scd/test/unit/editors/protocol104/wizards/doi.test.ts index 85e6611a87..7ab0b7c4c9 100644 --- a/packages/open-scd/test/unit/editors/protocol104/wizards/doi.test.ts +++ b/packages/open-scd/test/unit/editors/protocol104/wizards/doi.test.ts @@ -56,12 +56,21 @@ describe('Wizards for 104 DOI Element', () => { }); }); - describe('show 104 DOI Basic Info (Unknown CDC)', () => { + describe('show 104 DOI Basic Info for CDC=ACD', () => { beforeEach(async () => { doiElement = doc.querySelector( 'IED[name="B1"] LN[lnType="SE_GAPC_SET_V001"] DOI[name="Str"]' )!; + const doElement = doc + .querySelector('LNodeType[id="SE_GAPC_SET_V001"] > DO[name="Str"]') + ?.getAttribute('type')!; + + expect(doElement).to.be.equal('SE_ACD_V001'); + + const doType = doc.querySelector(`DOType[id="${doElement}"]`)!; + expect(doType.getAttribute('cdc')).to.be.equal('ACD'); + const wizard = showDOIInfoWizard(doiElement); element.workflow.push(() => wizard); await element.requestUpdate();