diff --git a/packages/open-scd/src/editors/protocol104/foundation/signalNames.ts b/packages/open-scd/src/editors/protocol104/foundation/signalNames.ts index 4f2049f3c..196af983b 100644 --- a/packages/open-scd/src/editors/protocol104/foundation/signalNames.ts +++ b/packages/open-scd/src/editors/protocol104/foundation/signalNames.ts @@ -58,6 +58,10 @@ export function getSignalName(tiNumber: string): string { return get('protocol104.values.signalNames.tiNumber50'); case '51': return get('protocol104.values.signalNames.tiNumber51'); + case '58': + return get('protocol104.values.signalNames.tiNumber58'); + case '59': + return get('protocol104.values.signalNames.tiNumber59'); case '60': return get('protocol104.values.signalNames.tiNumber60'); case '61': diff --git a/packages/open-scd/src/editors/protocol104/wizards/createAddresses.ts b/packages/open-scd/src/editors/protocol104/wizards/createAddresses.ts index 224c6668d..a65d8b06d 100644 --- a/packages/open-scd/src/editors/protocol104/wizards/createAddresses.ts +++ b/packages/open-scd/src/editors/protocol104/wizards/createAddresses.ts @@ -104,7 +104,9 @@ export function createAddressesAction( const ctlModel = getCtlModel(lnElement, doElement); if (ctlModel !== null && ctlModel !== 'status-only') { const selectedControlTi = - getValue(inputs.find(i => i.label === 'controlTi')!) ?? ''; + getValue(inputs.find(i => i.label === 'controlTi')!)?.split( + ' (' + )[0] ?? ''; const controlInverted = getSwitchValue(wizard, 'controlInverted'); const tiInformation = cdcProcessing.control[selectedControlTi]; @@ -336,7 +338,12 @@ export function createAddressesWizard( ${controlTis.map( controlTi => html` - ${controlTi} + ${controlTi + + ' (' + + getSignalName(controlTi) + + ')'} ` )} ` @@ -345,7 +352,9 @@ export function createAddressesWizard( fields.push( html` ` diff --git a/packages/open-scd/src/translations/de.ts b/packages/open-scd/src/translations/de.ts index 5016cc59f..46d2f33da 100644 --- a/packages/open-scd/src/translations/de.ts +++ b/packages/open-scd/src/translations/de.ts @@ -494,6 +494,8 @@ export const de: Translations = { tiNumber49: 'Sollwertbefehl, skalierte Wert', tiNumber50: 'Sollwertbefehl, Kurz-Gleitkommazahl', tiNumber51: 'Bit string von 32 Bit Befehl', + tiNumber58: 'Einzelbefehl mit Zeitstempel CP56Time2a', + tiNumber59: 'Doppelbefehl mit Zeitstempel CP56Time2a', tiNumber60: 'Regelungsschritt-Befehl mit Zeitstempel CP56Time2a', tiNumber61: 'Gemessener Wert, normalisierter Wert Befehl mit Zeitstempel CP56Time2a', diff --git a/packages/open-scd/src/translations/en.ts b/packages/open-scd/src/translations/en.ts index 6dee0f0f9..fec63e4ea 100644 --- a/packages/open-scd/src/translations/en.ts +++ b/packages/open-scd/src/translations/en.ts @@ -488,6 +488,8 @@ export const en = { tiNumber49: 'Set-point Command, scaled value', tiNumber50: 'Set-point Command, short floating point number', tiNumber51: 'Bit string 32 bit command', + tiNumber58: 'Single command with time tag CP56Time2a', + tiNumber59: 'Double command with time tag CP56Time2a', tiNumber60: 'Regulating step command with time tag CP56Time2a', tiNumber61: 'Measured value, normalized value command with time tag CP56Time2a', diff --git a/packages/open-scd/test/unit/editors/protocol104/wizards/createAddresses.test.ts b/packages/open-scd/test/unit/editors/protocol104/wizards/createAddresses.test.ts index 4c5d2a344..cd73265e0 100644 --- a/packages/open-scd/test/unit/editors/protocol104/wizards/createAddresses.test.ts +++ b/packages/open-scd/test/unit/editors/protocol104/wizards/createAddresses.test.ts @@ -19,6 +19,8 @@ import { import { fetchDoc } from '../../../wizards/test-support.js'; import { Switch } from '@material/mwc-switch'; +import { WizardSelect } from '../../../../../src/wizard-select.js'; +import { WizardTextField } from '../../../../../src/wizard-textfield.js'; describe('Wizards for preparing 104 Address Creation', () => { let doc: XMLDocument; @@ -143,6 +145,9 @@ describe('Wizards for preparing 104 Address Creation', () => { }); describe('show prepare 104 Address creation (single monitor TI and single control TI with CtlModel)', () => { + const newMonitorTiValue = '30'; + const newControlTiValue = '58'; + beforeEach(async () => { await prepareWizard( 'IED[name="B1"] LN[lnType="SE_GGIO_SET_V002"]', @@ -151,6 +156,9 @@ describe('Wizards for preparing 104 Address Creation', () => { }); it('when processing the request without Check Selected, the expected Create Actions are returned', () => { + inputs[3].value = newMonitorTiValue; + inputs[5].value = newControlTiValue; + const actions = createAddressesAction( lnElement, doElement, @@ -160,6 +168,28 @@ describe('Wizards for preparing 104 Address Creation', () => { expectCreateActions(actions, 2); }); + it('TIs contain descriptions', async () => { + const monitorTi = element.wizardUI.dialog!.querySelector( + 'wizard-textfield[label="monitorTi"]' + ) as WizardTextField; + expect(monitorTi).to.exist; + + const controlTi = element.wizardUI.dialog!.querySelector( + `wizard-textfield[label="controlTi"]` + ) as WizardTextField; + expect(controlTi).to.exist; + + const monitorTiValue = monitorTi.value; + const controlTiValue = controlTi.value; + + expect(monitorTiValue).to.equal( + `${newMonitorTiValue} ([protocol104.values.signalNames.tiNumber${newMonitorTiValue}])` + ); + expect(controlTiValue).to.equal( + `${newControlTiValue} ([protocol104.values.signalNames.tiNumber${newControlTiValue}])` + ); + }); + it('when processing the request with Check Selected, the expected Create Actions are returned', async () => { const switchElement = element.wizardUI.dialog!.querySelector( `mwc-switch[id="controlCheck"]`