@@ -23,6 +23,24 @@ import {
23
23
} from '../foundation.js' ;
24
24
import { securityEnableEnum , smpModEnum } from './foundation/enums.js' ;
25
25
import { maxLength , patterns } from './foundation/limits.js' ;
26
+ import { editSMvWizard } from './smv.js' ;
27
+
28
+ function getSMV ( element : Element ) : Element | null {
29
+ const cbName = element . getAttribute ( 'name' ) ;
30
+ const iedName = element . closest ( 'IED' ) ?. getAttribute ( 'name' ) ;
31
+ const apName = element . closest ( 'AccessPoint' ) ?. getAttribute ( 'name' ) ;
32
+ const ldInst = element . closest ( 'LDevice' ) ?. getAttribute ( 'inst' ) ;
33
+
34
+ return (
35
+ element
36
+ . closest ( 'SCL' )
37
+ ?. querySelector (
38
+ `:root > Communication > SubNetwork > ` +
39
+ `ConnectedAP[iedName="${ iedName } "][apName="${ apName } "] > ` +
40
+ `SMV[ldInst="${ ldInst } "][cbName="${ cbName } "]`
41
+ ) ?? null
42
+ ) ;
43
+ }
26
44
27
45
interface ContentOptions {
28
46
name : string | null ;
@@ -159,6 +177,8 @@ export function editSampledValueControlWizard(element: Element): Wizard {
159
177
const nofASDU = element . getAttribute ( 'nofASDU' ) ;
160
178
const securityEnable = element . getAttribute ( 'securityEnabled' ) ;
161
179
180
+ const sMV = getSMV ( element ) ;
181
+
162
182
return [
163
183
{
164
184
title : get ( 'wizard.title.edit' , { tagName : element . tagName } ) ,
@@ -179,6 +199,18 @@ export function editSampledValueControlWizard(element: Element): Wizard {
179
199
nofASDU,
180
200
securityEnable,
181
201
} ) ,
202
+ sMV
203
+ ? html `< mwc-button
204
+ id ="editsmv "
205
+ label =${ translate ( 'scl.Communication' ) }
206
+ icon ="edit"
207
+ @click="${ ( e : MouseEvent ) => {
208
+ e . target ?. dispatchEvent (
209
+ newSubWizardEvent ( ( ) => editSMvWizard ( sMV ) )
210
+ ) ;
211
+ } } }"
212
+ > </ mwc-button > `
213
+ : html `` ,
182
214
] ,
183
215
} ,
184
216
] ;
0 commit comments