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"]`