@openscd/scl-lib 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/LICENCE +201 -0
  2. package/README.md +20 -0
  3. package/dist/foundation/codecomponents/nsds.d.ts +5 -0
  4. package/dist/foundation/codecomponents/nsds.js +22435 -0
  5. package/dist/foundation/codecomponents/nsds.js.map +1 -0
  6. package/dist/foundation/nsd.json +137748 -0
  7. package/dist/foundation/uniqueElementName.d.ts +2 -0
  8. package/dist/foundation/uniqueElementName.js +18 -0
  9. package/dist/foundation/uniqueElementName.js.map +1 -0
  10. package/dist/foundation/utils.d.ts +20 -0
  11. package/dist/foundation/utils.js +14 -0
  12. package/dist/foundation/utils.js.map +1 -0
  13. package/dist/generator/appIdGenerator.d.ts +21 -0
  14. package/dist/generator/appIdGenerator.js +53 -0
  15. package/dist/generator/appIdGenerator.js.map +1 -0
  16. package/dist/generator/lnInstGenerator.d.ts +16 -0
  17. package/dist/generator/lnInstGenerator.js +41 -0
  18. package/dist/generator/lnInstGenerator.js.map +1 -0
  19. package/dist/generator/macAddressGenerator.d.ts +14 -0
  20. package/dist/generator/macAddressGenerator.js +39 -0
  21. package/dist/generator/macAddressGenerator.js.map +1 -0
  22. package/dist/index.d.ts +61 -0
  23. package/dist/index.js +55 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/tAddress/changeGseOrSmvAddress.d.ts +14 -0
  26. package/dist/tAddress/changeGseOrSmvAddress.js +43 -0
  27. package/dist/tAddress/changeGseOrSmvAddress.js.map +1 -0
  28. package/dist/tBaseElement/find.d.ts +6 -0
  29. package/dist/tBaseElement/find.js +529 -0
  30. package/dist/tBaseElement/find.js.map +1 -0
  31. package/dist/tBaseElement/getChildren.d.ts +5 -0
  32. package/dist/tBaseElement/getChildren.js +12 -0
  33. package/dist/tBaseElement/getChildren.js.map +1 -0
  34. package/dist/tBaseElement/getReference.d.ts +9 -0
  35. package/dist/tBaseElement/getReference.js +31 -0
  36. package/dist/tBaseElement/getReference.js.map +1 -0
  37. package/dist/tBaseElement/identity.d.ts +2 -0
  38. package/dist/tBaseElement/identity.js +566 -0
  39. package/dist/tBaseElement/identity.js.map +1 -0
  40. package/dist/tBaseElement/isPublic.d.ts +2 -0
  41. package/dist/tBaseElement/isPublic.js +5 -0
  42. package/dist/tBaseElement/isPublic.js.map +1 -0
  43. package/dist/tBaseElement/parentTags.d.ts +3 -0
  44. package/dist/tBaseElement/parentTags.js +8 -0
  45. package/dist/tBaseElement/parentTags.js.map +1 -0
  46. package/dist/tBaseElement/tags.d.ts +8 -0
  47. package/dist/tBaseElement/tags.js +807 -0
  48. package/dist/tBaseElement/tags.js.map +1 -0
  49. package/dist/tBay/updateBay.d.ts +5 -0
  50. package/dist/tBay/updateBay.js +81 -0
  51. package/dist/tBay/updateBay.js.map +1 -0
  52. package/dist/tControl/controlBlockGseOrSmv.d.ts +7 -0
  53. package/dist/tControl/controlBlockGseOrSmv.js +26 -0
  54. package/dist/tControl/controlBlockGseOrSmv.js.map +1 -0
  55. package/dist/tControl/controlBlockObjRef.d.ts +2 -0
  56. package/dist/tControl/controlBlockObjRef.js +14 -0
  57. package/dist/tControl/controlBlockObjRef.js.map +1 -0
  58. package/dist/tControl/controlBlocks.d.ts +2 -0
  59. package/dist/tControl/controlBlocks.js +9 -0
  60. package/dist/tControl/controlBlocks.js.map +1 -0
  61. package/dist/tControl/findControlSubscription.d.ts +2 -0
  62. package/dist/tControl/findControlSubscription.js +8 -0
  63. package/dist/tControl/findControlSubscription.js.map +1 -0
  64. package/dist/tControl/pathId.d.ts +1 -0
  65. package/dist/tControl/pathId.js +9 -0
  66. package/dist/tControl/pathId.js.map +1 -0
  67. package/dist/tControl/removeControlBlock.d.ts +14 -0
  68. package/dist/tControl/removeControlBlock.js +35 -0
  69. package/dist/tControl/removeControlBlock.js.map +1 -0
  70. package/dist/tControl/updateConfRev.d.ts +2 -0
  71. package/dist/tControl/updateConfRev.js +8 -0
  72. package/dist/tControl/updateConfRev.js.map +1 -0
  73. package/dist/tControl/updateDatSet.d.ts +6 -0
  74. package/dist/tControl/updateDatSet.js +22 -0
  75. package/dist/tControl/updateDatSet.js.map +1 -0
  76. package/dist/tControlWithIEDName/connctedAp.d.ts +2 -0
  77. package/dist/tControlWithIEDName/connctedAp.js +7 -0
  78. package/dist/tControlWithIEDName/connctedAp.js.map +1 -0
  79. package/dist/tDataSet/canAddDataSet.d.ts +4 -0
  80. package/dist/tDataSet/canAddDataSet.js +44 -0
  81. package/dist/tDataSet/canAddDataSet.js.map +1 -0
  82. package/dist/tDataSet/createDataSet.d.ts +9 -0
  83. package/dist/tDataSet/createDataSet.js +33 -0
  84. package/dist/tDataSet/createDataSet.js.map +1 -0
  85. package/dist/tDataSet/removeDataSet.d.ts +10 -0
  86. package/dist/tDataSet/removeDataSet.js +27 -0
  87. package/dist/tDataSet/removeDataSet.js.map +1 -0
  88. package/dist/tDataSet/updateDataSet.d.ts +7 -0
  89. package/dist/tDataSet/updateDataSet.js +28 -0
  90. package/dist/tDataSet/updateDataSet.js.map +1 -0
  91. package/dist/tDataTypeTemplates/foundation.d.ts +2 -0
  92. package/dist/tDataTypeTemplates/foundation.js +118 -0
  93. package/dist/tDataTypeTemplates/foundation.js.map +1 -0
  94. package/dist/tDataTypeTemplates/importLNodeType.d.ts +13 -0
  95. package/dist/tDataTypeTemplates/importLNodeType.js +88 -0
  96. package/dist/tDataTypeTemplates/importLNodeType.js.map +1 -0
  97. package/dist/tDataTypeTemplates/insertSelectedLNodeType.d.ts +20 -0
  98. package/dist/tDataTypeTemplates/insertSelectedLNodeType.js +187 -0
  99. package/dist/tDataTypeTemplates/insertSelectedLNodeType.js.map +1 -0
  100. package/dist/tDataTypeTemplates/lNodeTypeToSelection.d.ts +8 -0
  101. package/dist/tDataTypeTemplates/lNodeTypeToSelection.js +67 -0
  102. package/dist/tDataTypeTemplates/lNodeTypeToSelection.js.map +1 -0
  103. package/dist/tDataTypeTemplates/nsdToJson.d.ts +101 -0
  104. package/dist/tDataTypeTemplates/nsdToJson.js +433 -0
  105. package/dist/tDataTypeTemplates/nsdToJson.js.map +1 -0
  106. package/dist/tDataTypeTemplates/removeDataType.d.ts +12 -0
  107. package/dist/tDataTypeTemplates/removeDataType.js +62 -0
  108. package/dist/tDataTypeTemplates/removeDataType.js.map +1 -0
  109. package/dist/tDataTypeTemplates/updateLNodeType.d.ts +2 -0
  110. package/dist/tDataTypeTemplates/updateLNodeType.js +22 -0
  111. package/dist/tDataTypeTemplates/updateLNodeType.js.map +1 -0
  112. package/dist/tExtRef/doesFcdaMeetExtRefRestrictions.d.ts +16 -0
  113. package/dist/tExtRef/doesFcdaMeetExtRefRestrictions.js +52 -0
  114. package/dist/tExtRef/doesFcdaMeetExtRefRestrictions.js.map +1 -0
  115. package/dist/tExtRef/extRefTypeRestrictions.d.ts +17 -0
  116. package/dist/tExtRef/extRefTypeRestrictions.js +32 -0
  117. package/dist/tExtRef/extRefTypeRestrictions.js.map +1 -0
  118. package/dist/tExtRef/isSubscribed.d.ts +7 -0
  119. package/dist/tExtRef/isSubscribed.js +23 -0
  120. package/dist/tExtRef/isSubscribed.js.map +1 -0
  121. package/dist/tExtRef/matchDataAttributes.d.ts +2 -0
  122. package/dist/tExtRef/matchDataAttributes.js +13 -0
  123. package/dist/tExtRef/matchDataAttributes.js.map +1 -0
  124. package/dist/tExtRef/matchSrcAttributes.d.ts +2 -0
  125. package/dist/tExtRef/matchSrcAttributes.js +28 -0
  126. package/dist/tExtRef/matchSrcAttributes.js.map +1 -0
  127. package/dist/tExtRef/sourceControlBlock.d.ts +8 -0
  128. package/dist/tExtRef/sourceControlBlock.js +52 -0
  129. package/dist/tExtRef/sourceControlBlock.js.map +1 -0
  130. package/dist/tExtRef/subscribe.d.ts +47 -0
  131. package/dist/tExtRef/subscribe.js +187 -0
  132. package/dist/tExtRef/subscribe.js.map +1 -0
  133. package/dist/tExtRef/unsubscribe.d.ts +27 -0
  134. package/dist/tExtRef/unsubscribe.js +55 -0
  135. package/dist/tExtRef/unsubscribe.js.map +1 -0
  136. package/dist/tFCDA/canAddFCDA.d.ts +10 -0
  137. package/dist/tFCDA/canAddFCDA.js +42 -0
  138. package/dist/tFCDA/canAddFCDA.js.map +1 -0
  139. package/dist/tFCDA/fcdaBaseTypes.d.ts +11 -0
  140. package/dist/tFCDA/fcdaBaseTypes.js +56 -0
  141. package/dist/tFCDA/fcdaBaseTypes.js.map +1 -0
  142. package/dist/tFCDA/removeFCDA.d.ts +8 -0
  143. package/dist/tFCDA/removeFCDA.js +33 -0
  144. package/dist/tFCDA/removeFCDA.js.map +1 -0
  145. package/dist/tGSE/changeGSEContent.d.ts +17 -0
  146. package/dist/tGSE/changeGSEContent.js +53 -0
  147. package/dist/tGSE/changeGSEContent.js.map +1 -0
  148. package/dist/tGSE/createGSE.d.ts +20 -0
  149. package/dist/tGSE/createGSE.js +44 -0
  150. package/dist/tGSE/createGSE.js.map +1 -0
  151. package/dist/tGSEControl/canAddGSEControl.d.ts +4 -0
  152. package/dist/tGSEControl/canAddGSEControl.js +27 -0
  153. package/dist/tGSEControl/canAddGSEControl.js.map +1 -0
  154. package/dist/tGSEControl/createGSEControl.d.ts +49 -0
  155. package/dist/tGSEControl/createGSEControl.js +65 -0
  156. package/dist/tGSEControl/createGSEControl.js.map +1 -0
  157. package/dist/tGSEControl/updateGSEControl.d.ts +15 -0
  158. package/dist/tGSEControl/updateGSEControl.js +61 -0
  159. package/dist/tGSEControl/updateGSEControl.js.map +1 -0
  160. package/dist/tIED/insertIED.d.ts +13 -0
  161. package/dist/tIED/insertIED.js +245 -0
  162. package/dist/tIED/insertIED.js.map +1 -0
  163. package/dist/tIED/removeIED.d.ts +14 -0
  164. package/dist/tIED/removeIED.js +70 -0
  165. package/dist/tIED/removeIED.js.map +1 -0
  166. package/dist/tIED/updateIED.d.ts +17 -0
  167. package/dist/tIED/updateIED.js +185 -0
  168. package/dist/tIED/updateIED.js.map +1 -0
  169. package/dist/tInputs/removeInputs.d.ts +7 -0
  170. package/dist/tInputs/removeInputs.js +25 -0
  171. package/dist/tInputs/removeInputs.js.map +1 -0
  172. package/dist/tLN/removeSubscriptionSupervision.d.ts +7 -0
  173. package/dist/tLN/removeSubscriptionSupervision.js +94 -0
  174. package/dist/tLN/removeSubscriptionSupervision.js.map +1 -0
  175. package/dist/tLN/supervision/canInstantiateSubscriptionSupervision.d.ts +13 -0
  176. package/dist/tLN/supervision/canInstantiateSubscriptionSupervision.js +116 -0
  177. package/dist/tLN/supervision/canInstantiateSubscriptionSupervision.js.map +1 -0
  178. package/dist/tLN/supervision/createSupervisionEdit.d.ts +20 -0
  179. package/dist/tLN/supervision/createSupervisionEdit.js +129 -0
  180. package/dist/tLN/supervision/createSupervisionEdit.js.map +1 -0
  181. package/dist/tLN/supervision/findControlBlockOnSrcAttributes.d.ts +10 -0
  182. package/dist/tLN/supervision/findControlBlockOnSrcAttributes.js +13 -0
  183. package/dist/tLN/supervision/findControlBlockOnSrcAttributes.js.map +1 -0
  184. package/dist/tLN/supervision/foundation.d.ts +37 -0
  185. package/dist/tLN/supervision/foundation.js +43 -0
  186. package/dist/tLN/supervision/foundation.js.map +1 -0
  187. package/dist/tLN/supervision/insertSubscriptionSupervisions.d.ts +11 -0
  188. package/dist/tLN/supervision/insertSubscriptionSupervisions.js +98 -0
  189. package/dist/tLN/supervision/insertSubscriptionSupervisions.js.map +1 -0
  190. package/dist/tLN/supervision/instantiateSubscriptionSupervision.d.ts +10 -0
  191. package/dist/tLN/supervision/instantiateSubscriptionSupervision.js +36 -0
  192. package/dist/tLN/supervision/instantiateSubscriptionSupervision.js.map +1 -0
  193. package/dist/tLN/supervision/removeSupervision.d.ts +7 -0
  194. package/dist/tLN/supervision/removeSupervision.js +39 -0
  195. package/dist/tLN/supervision/removeSupervision.js.map +1 -0
  196. package/dist/tReportControl/canAddReportControl.d.ts +11 -0
  197. package/dist/tReportControl/canAddReportControl.js +24 -0
  198. package/dist/tReportControl/canAddReportControl.js.map +1 -0
  199. package/dist/tReportControl/createReportControl.d.ts +68 -0
  200. package/dist/tReportControl/createReportControl.js +78 -0
  201. package/dist/tReportControl/createReportControl.js.map +1 -0
  202. package/dist/tReportControl/numberReportControlInstances.d.ts +5 -0
  203. package/dist/tReportControl/numberReportControlInstances.js +19 -0
  204. package/dist/tReportControl/numberReportControlInstances.js.map +1 -0
  205. package/dist/tReportControl/updateReportControl.d.ts +5 -0
  206. package/dist/tReportControl/updateReportControl.js +24 -0
  207. package/dist/tReportControl/updateReportControl.js.map +1 -0
  208. package/dist/tSMV/changeSMVContent.d.ts +3 -0
  209. package/dist/tSMV/changeSMVContent.js +5 -0
  210. package/dist/tSMV/changeSMVContent.js.map +1 -0
  211. package/dist/tSMV/createSMV.d.ts +16 -0
  212. package/dist/tSMV/createSMV.js +32 -0
  213. package/dist/tSMV/createSMV.js.map +1 -0
  214. package/dist/tSampledValueControl/canAddSampledValueControl.d.ts +4 -0
  215. package/dist/tSampledValueControl/canAddSampledValueControl.js +27 -0
  216. package/dist/tSampledValueControl/canAddSampledValueControl.js.map +1 -0
  217. package/dist/tSampledValueControl/createSampledValueControl.d.ts +66 -0
  218. package/dist/tSampledValueControl/createSampledValueControl.js +74 -0
  219. package/dist/tSampledValueControl/createSampledValueControl.js.map +1 -0
  220. package/dist/tSampledValueControl/updateSampledValueControl.d.ts +14 -0
  221. package/dist/tSampledValueControl/updateSampledValueControl.js +60 -0
  222. package/dist/tSampledValueControl/updateSampledValueControl.js.map +1 -0
  223. package/dist/tServices/tConfReportControl/maxReportControl.d.ts +9 -0
  224. package/dist/tServices/tConfReportControl/maxReportControl.js +14 -0
  225. package/dist/tServices/tConfReportControl/maxReportControl.js.map +1 -0
  226. package/dist/tSubstation/removeProcessElement.d.ts +9 -0
  227. package/dist/tSubstation/removeProcessElement.js +50 -0
  228. package/dist/tSubstation/removeProcessElement.js.map +1 -0
  229. package/dist/tSubstation/updateLnType.d.ts +8 -0
  230. package/dist/tSubstation/updateLnType.js +96 -0
  231. package/dist/tSubstation/updateLnType.js.map +1 -0
  232. package/dist/tSubstation/updateSubstation.d.ts +5 -0
  233. package/dist/tSubstation/updateSubstation.js +75 -0
  234. package/dist/tSubstation/updateSubstation.js.map +1 -0
  235. package/dist/tVoltageLevel/updateVoltageLevel.d.ts +5 -0
  236. package/dist/tVoltageLevel/updateVoltageLevel.js +83 -0
  237. package/dist/tVoltageLevel/updateVoltageLevel.js.map +1 -0
  238. package/package.json +43 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insertSubscriptionSupervisions.js","sourceRoot":"","sources":["../../../tLN/supervision/insertSubscriptionSupervisions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Insert } from "@openscd/oscd-api";
2
+ import { Supervision, SupervisionOptions } from "./foundation.js";
3
+ /**
4
+ * Instantiate supervision logical node (LGOS/LSVS) for [[`sourceControlBlock`]]
5
+ * within a [[`subscriberIedOrLn`]].
6
+ * @param supervision
7
+ * @param options
8
+ * @return Insert edit or null, if supervision is not possible
9
+ */
10
+ export declare function instantiateSubscriptionSupervision(supervision: Supervision, options?: SupervisionOptions): Insert | null;
@@ -0,0 +1,36 @@
1
+ import { globalLnInstGenerator, } from "./foundation.js";
2
+ import { canInstantiateSubscriptionSupervision } from "./canInstantiateSubscriptionSupervision.js";
3
+ import { createSupervisionEdit } from "./createSupervisionEdit.js";
4
+ /**
5
+ * Instantiate supervision logical node (LGOS/LSVS) for [[`sourceControlBlock`]]
6
+ * within a [[`subscriberIedOrLn`]].
7
+ * @param supervision
8
+ * @param options
9
+ * @return Insert edit or null, if supervision is not possible
10
+ */
11
+ export function instantiateSubscriptionSupervision(supervision, options = {
12
+ newSupervisionLn: false,
13
+ fixedLnInst: -1,
14
+ checkEditableSrcRef: true,
15
+ checkDuplicateSupervisions: true,
16
+ checkMaxSupervisionLimits: true,
17
+ }) {
18
+ if (!canInstantiateSubscriptionSupervision(supervision, options))
19
+ return null;
20
+ if (options.fixedLnInst >= 0)
21
+ return createSupervisionEdit(supervision, {
22
+ newSupervisionLn: options.newSupervisionLn,
23
+ fixedInst: `${options.fixedLnInst}`,
24
+ });
25
+ if (supervision.subscriberIedOrLn.tagName === "LN")
26
+ return createSupervisionEdit(supervision, { fixedInst: "-1" });
27
+ /** Global as multiple subscription could be defined for different subscriber IEDs */
28
+ const instGenerator = globalLnInstGenerator();
29
+ if (options.newSupervisionLn && options.fixedLnInst === -1)
30
+ return createSupervisionEdit(supervision, {
31
+ newSupervisionLn: true,
32
+ instGenerator,
33
+ });
34
+ return createSupervisionEdit(supervision, { instGenerator });
35
+ }
36
+ //# sourceMappingURL=instantiateSubscriptionSupervision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instantiateSubscriptionSupervision.js","sourceRoot":"","sources":["../../../tLN/supervision/instantiateSubscriptionSupervision.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,qCAAqC,EAAE,MAAM,4CAA4C,CAAC;AACnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,UAAU,kCAAkC,CAChD,WAAwB,EACxB,UAA8B;IAC5B,gBAAgB,EAAE,KAAK;IACvB,WAAW,EAAE,CAAC,CAAC;IACf,mBAAmB,EAAE,IAAI;IACzB,0BAA0B,EAAE,IAAI;IAChC,yBAAyB,EAAE,IAAI;CAChC;IAED,IAAI,CAAC,qCAAqC,CAAC,WAAW,EAAE,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9E,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC;QAC1B,OAAO,qBAAqB,CAAC,WAAW,EAAE;YACxC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,SAAS,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IAEL,IAAI,WAAW,CAAC,iBAAiB,CAAC,OAAO,KAAK,IAAI;QAChD,OAAO,qBAAqB,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEjE,qFAAqF;IACrF,MAAM,aAAa,GAAG,qBAAqB,EAAE,CAAC;IAE9C,IAAI,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,WAAW,KAAK,CAAC,CAAC;QACxD,OAAO,qBAAqB,CAAC,WAAW,EAAE;YACxC,gBAAgB,EAAE,IAAI;YACtB,aAAa;SACd,CAAC,CAAC;IAEL,OAAO,qBAAqB,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;AAC/D,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Remove } from "@openscd/oscd-api";
2
+ export type removeSupervisionOptions = {
3
+ removeSupervisionLn: boolean;
4
+ checkSubscription: boolean;
5
+ };
6
+ export declare function canRemoveSupervision(supervisionLn: Element, options: removeSupervisionOptions): boolean;
7
+ export declare function removeSupervision(supervisionLn: Element, options?: removeSupervisionOptions): Remove | null;
@@ -0,0 +1,39 @@
1
+ import { isSrcRefEditable } from "./foundation.js";
2
+ /** @returns Whether other subscribed ExtRef of the same control block exist */
3
+ function isControlBlockSubscribed(supervisionLn) {
4
+ const controlObjRef = supervisionLn.querySelector(`:scope > DOI[name="GoCBRef"] > DAI[name="setSrcRef"] > Val,
5
+ :scope > DOI[name="SvCBRef"] > DAI[name="setSrcRef"] > Val`)?.textContent;
6
+ const extRefs = Array.from(supervisionLn.closest("IED").querySelectorAll(`:scope > AccessPoint > Server > LDevice > LN0 > Inputs > ExtRef,
7
+ :scope > AccessPoint > Server > LDevice > LN0 > Inputs > ExtRef`));
8
+ return extRefs.some((extRef) => {
9
+ const [srcCBName, srcLDInst, iedName] = [
10
+ "srcCBName",
11
+ "srcLDInst",
12
+ "iedName",
13
+ ].map((attr) => extRef.getAttribute(attr));
14
+ return controlObjRef === `${iedName}${srcLDInst}/LLN0.${srcCBName}`;
15
+ });
16
+ }
17
+ export function canRemoveSupervision(supervisionLn, options) {
18
+ if (!isSrcRefEditable(supervisionLn))
19
+ return false;
20
+ if (options.checkSubscription && isControlBlockSubscribed(supervisionLn))
21
+ return false;
22
+ return true;
23
+ }
24
+ export function removeSupervision(supervisionLn, options = {
25
+ removeSupervisionLn: false,
26
+ checkSubscription: true,
27
+ }) {
28
+ if (!canRemoveSupervision(supervisionLn, options))
29
+ return null;
30
+ if (options.removeSupervisionLn)
31
+ return { node: supervisionLn };
32
+ const val = supervisionLn.querySelector(`:scope > DOI[name="GoCBRef"] > DAI[name="setSrcRef"] > Val,
33
+ :scope > DOI[name="SvCBRef"] > DAI[name="setSrcRef"] > Val`);
34
+ if (!val)
35
+ return null;
36
+ const node = Array.from(val.childNodes).find((childNode) => childNode.nodeType === Node.TEXT_NODE);
37
+ return { node };
38
+ }
39
+ //# sourceMappingURL=removeSupervision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeSupervision.js","sourceRoot":"","sources":["../../../tLN/supervision/removeSupervision.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAOnD,+EAA+E;AAC/E,SAAS,wBAAwB,CAAC,aAAsB;IACtD,MAAM,aAAa,GAAG,aAAa,CAAC,aAAa,CAC/C;+DAC2D,CAC5D,EAAE,WAAW,CAAC;IAEf,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CACxB,aAAa,CAAC,OAAO,CAAC,KAAK,CAAE,CAAC,gBAAgB,CAC5C;sEACgE,CACjE,CACF,CAAC;IAEF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QAC7B,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG;YACtC,WAAW;YACX,WAAW;YACX,SAAS;SACV,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAE3C,OAAO,aAAa,KAAK,GAAG,OAAO,GAAG,SAAS,SAAS,SAAS,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,aAAsB,EACtB,OAAiC;IAEjC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;QAAE,OAAO,KAAK,CAAC;IAEnD,IAAI,OAAO,CAAC,iBAAiB,IAAI,wBAAwB,CAAC,aAAa,CAAC;QACtE,OAAO,KAAK,CAAC;IAEf,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,aAAsB,EACtB,UAAoC;IAClC,mBAAmB,EAAE,KAAK;IAC1B,iBAAiB,EAAE,IAAI;CACxB;IAED,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/D,IAAI,OAAO,CAAC,mBAAmB;QAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAEhE,MAAM,GAAG,GAAG,aAAa,CAAC,aAAa,CACrC;+DAC2D,CAC5D,CAAC;IACF,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAC1C,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,CACpD,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /** Checks against `ConfReportControl` attributes `max` and `maxBuf`, whether
2
+ * new `ReportControl` instances can be added to parent.
3
+ * @param parent - Normally direct parent `LN`, `LN0` or indirect parents
4
+ * `LDevice`, `AccessPoint` or `IED`
5
+ * @param options.newInstances - How many of the new `ReportControl` instances shall be added
6
+ * @param options.buffered - Whether the `ReportControl` instances are buffered
7
+ * @returns Whether new `ReportControl` instances can be added to parent */
8
+ export declare function canAddReportControl(parent: Element, options?: {
9
+ buffered: boolean;
10
+ newInstances?: number;
11
+ }): boolean;
@@ -0,0 +1,24 @@
1
+ import { maxReportControl } from "../tServices/tConfReportControl/maxReportControl.js";
2
+ import { numberReportControlInstances } from "./numberReportControlInstances.js";
3
+ /** Checks against `ConfReportControl` attributes `max` and `maxBuf`, whether
4
+ * new `ReportControl` instances can be added to parent.
5
+ * @param parent - Normally direct parent `LN`, `LN0` or indirect parents
6
+ * `LDevice`, `AccessPoint` or `IED`
7
+ * @param options.newInstances - How many of the new `ReportControl` instances shall be added
8
+ * @param options.buffered - Whether the `ReportControl` instances are buffered
9
+ * @returns Whether new `ReportControl` instances can be added to parent */
10
+ export function canAddReportControl(parent, options = {
11
+ buffered: true,
12
+ newInstances: 1,
13
+ }) {
14
+ const { max, maxBuf } = maxReportControl(parent);
15
+ const { bufInstances, unBufInstances } = numberReportControlInstances(parent);
16
+ if (bufInstances + unBufInstances + (options.newInstances ?? 1) > max)
17
+ return false;
18
+ if (options.buffered)
19
+ return ((maxBuf === -1 ? max : maxBuf) >=
20
+ bufInstances + (options.newInstances ?? 1));
21
+ const maxUnBuf = maxBuf === -1 ? max : max - maxBuf;
22
+ return maxUnBuf >= unBufInstances + (options.newInstances ?? 1);
23
+ }
24
+ //# sourceMappingURL=canAddReportControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canAddReportControl.js","sourceRoot":"","sources":["../../tReportControl/canAddReportControl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qDAAqD,CAAC;AACvF,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAEjF;;;;;;2EAM2E;AAC3E,MAAM,UAAU,mBAAmB,CACjC,MAAe,EACf,UAAwD;IACtD,QAAQ,EAAE,IAAI;IACd,YAAY,EAAE,CAAC;CAChB;IAED,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;IAE9E,IAAI,YAAY,GAAG,cAAc,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,GAAG;QACnE,OAAO,KAAK,CAAC;IAEf,IAAI,OAAO,CAAC,QAAQ;QAClB,OAAO,CACL,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9B,YAAY,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC,CAC3C,CAAC;IAEJ,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC;IAEpD,OAAO,QAAQ,IAAI,cAAc,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;AAClE,CAAC"}
@@ -0,0 +1,68 @@
1
+ import { Insert } from "@openscd/oscd-api";
2
+ export type CreateReportControlOptions = {
3
+ rpt?: {
4
+ /** `ReportControl` name. Must be unique.
5
+ * When missing a unique name starting with `newReportControl_xx` is set */
6
+ name?: string | null;
7
+ desc?: string | null;
8
+ /** Whether the report is buffered or unbuffered */
9
+ buffered?: "true" | "false" | null;
10
+ /** Default "" */
11
+ rptID?: string | null;
12
+ /** Whether the report shall have multiple instances in the IED.
13
+ * When 'false' the attribute 'instances' is reset to '1'*/
14
+ indexed?: "true" | "false" | null;
15
+ /** Minimum time between two reports in (ms) */
16
+ bufTime?: string | null;
17
+ /** Time between two periodical reports in (ms). Is set to '0' when `trgops.period` is `false`*/
18
+ intgPd?: string | null;
19
+ /** Reference to an existing `DataSet` */
20
+ datSet?: string | null;
21
+ };
22
+ trgOps?: {
23
+ /** enable data change trigger */
24
+ dchg?: "true" | "false" | null;
25
+ /** enable quality change trigger */
26
+ qchg?: "true" | "flase" | null;
27
+ /** enable data update trigger */
28
+ dupd?: "true" | "false" | null;
29
+ /** enable periodic report */
30
+ period?: "true" | "false" | null;
31
+ /** allow report trigger on general interrogation */
32
+ gi?: "true" | "false" | null;
33
+ };
34
+ optFields?: {
35
+ /** pack sequence number into the report */
36
+ seqNum?: "true" | "false" | null;
37
+ /** pack time stamp into the report */
38
+ timeStamp?: "true" | "false" | null;
39
+ /** pack reason code into the report */
40
+ reasonCode?: "true" | "false" | null;
41
+ /** pack data references into the report */
42
+ dataRef?: "true" | "false" | null;
43
+ /** pack entry ID into the report */
44
+ entryID?: "true" | "false" | null;
45
+ /** pack configuration revision into the report */
46
+ configRef?: "true" | "false" | null;
47
+ /** pack buffer overflow indicator into the report */
48
+ bufOvfl?: "true" | "false" | null;
49
+ };
50
+ /**User-defined configuration revision (confRev) overwrites
51
+ *logic to to set confRev acc. to IEC 61850.*/
52
+ confRev?: string;
53
+ /** How many instances the new `ReportControl` element shall have
54
+ * in the IED. Defaults to 1 */
55
+ instances?: string;
56
+ /** If true, skips check for unique report control name,
57
+ * whether `datSet` is pointing to valid `DataSet`
58
+ * and whether additional new report instances are allowed in IED/AccessPoint. */
59
+ skipCheck?: boolean;
60
+ };
61
+ /** Function processing `ReportControl` creation. Returns `null`, if new `ReportControl` cannot
62
+ * be added to [[`parent`]].
63
+ * @param parent - Direct parent `LN`, `LN0` or indirect parents
64
+ * `LDevice`, `AccessPoint` or `IED`. In the later case first `LN0` is picked.
65
+ * @param options - Configuration options.
66
+ * @returns edit inserting `ReportControl` to [[`parent`]] element or `null`
67
+ * */
68
+ export declare function createReportControl(parent: Element, options?: CreateReportControlOptions): Insert | null;
@@ -0,0 +1,78 @@
1
+ import { createElement } from "../foundation/utils.js";
2
+ import { canAddReportControl } from "./canAddReportControl.js";
3
+ import { uniqueElementName } from "../foundation/uniqueElementName.js";
4
+ import { getReference } from "../tBaseElement/getReference.js";
5
+ function invalid(anyLn, name, datSet) {
6
+ const uniqueName = name
7
+ ? !anyLn.querySelector(`:scope > ReportControl[name="${name}"]`)
8
+ : true;
9
+ const validDataSet = datSet
10
+ ? !!anyLn.querySelector(`:scope > DataSet[name="${datSet}"]`)
11
+ : true;
12
+ return !(uniqueName && validDataSet && canAddReportControl(anyLn));
13
+ }
14
+ /** Function processing `ReportControl` creation. Returns `null`, if new `ReportControl` cannot
15
+ * be added to [[`parent`]].
16
+ * @param parent - Direct parent `LN`, `LN0` or indirect parents
17
+ * `LDevice`, `AccessPoint` or `IED`. In the later case first `LN0` is picked.
18
+ * @param options - Configuration options.
19
+ * @returns edit inserting `ReportControl` to [[`parent`]] element or `null`
20
+ * */
21
+ export function createReportControl(parent, options = { rpt: {}, trgOps: {}, optFields: {} }) {
22
+ const anyLn = parent.tagName === "LN0" || parent.tagName === "LN"
23
+ ? parent
24
+ : parent.querySelector("LN0, LN");
25
+ if (!anyLn)
26
+ return null;
27
+ if (!options.skipCheck &&
28
+ invalid(anyLn, options.rpt?.name, options.rpt?.datSet))
29
+ return null;
30
+ const rptAttrs = { ...options.rpt };
31
+ const trgOpsAttrs = { ...options.trgOps };
32
+ const optFieldsAttrs = {
33
+ ...options.optFields,
34
+ };
35
+ if (!options.rpt?.name)
36
+ rptAttrs.name = uniqueElementName(anyLn, "ReportControl");
37
+ if (!options.rpt?.buffered)
38
+ rptAttrs.buffered = "true";
39
+ if (!options.rpt?.rptID)
40
+ rptAttrs.rptID = "";
41
+ if (!options.rpt?.bufTime)
42
+ rptAttrs.bufTime = "100";
43
+ if (options.trgOps?.period === "true" && !options.rpt?.intgPd)
44
+ rptAttrs.intgPd = "1000";
45
+ const confRev = options.confRev
46
+ ? options.confRev
47
+ : rptAttrs.datSet
48
+ ? "1"
49
+ : "0";
50
+ if (options.rpt?.intgPd &&
51
+ options.rpt?.intgPd !== "0" &&
52
+ (!options.trgOps?.period || options.trgOps.period === "false"))
53
+ trgOpsAttrs.period = "true";
54
+ const reportControl = createElement(anyLn.ownerDocument, "ReportControl", {
55
+ ...rptAttrs,
56
+ confRev,
57
+ });
58
+ if (Object.keys(trgOpsAttrs).length) {
59
+ const trgOps = createElement(anyLn.ownerDocument, "TrgOps", trgOpsAttrs);
60
+ reportControl.insertBefore(trgOps, null);
61
+ }
62
+ if (Object.keys(optFieldsAttrs).length) {
63
+ const optFields = createElement(anyLn.ownerDocument, "OptFields", optFieldsAttrs);
64
+ reportControl.insertBefore(optFields, null);
65
+ }
66
+ if (options.instances) {
67
+ const rptEnabled = createElement(anyLn.ownerDocument, "RptEnabled", {
68
+ max: options.instances,
69
+ });
70
+ reportControl.insertBefore(rptEnabled, null);
71
+ }
72
+ return {
73
+ parent: anyLn,
74
+ node: reportControl,
75
+ reference: getReference(anyLn, "ReportControl"),
76
+ };
77
+ }
78
+ //# sourceMappingURL=createReportControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createReportControl.js","sourceRoot":"","sources":["../../tReportControl/createReportControl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,SAAS,OAAO,CACd,KAAc,EACd,IAA+B,EAC/B,MAAiC;IAEjC,MAAM,UAAU,GAAG,IAAI;QACrB,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,gCAAgC,IAAI,IAAI,CAAC;QAChE,CAAC,CAAC,IAAI,CAAC;IAET,MAAM,YAAY,GAAG,MAAM;QACzB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,0BAA0B,MAAM,IAAI,CAAC;QAC7D,CAAC,CAAC,IAAI,CAAC;IAET,OAAO,CAAC,CAAC,UAAU,IAAI,YAAY,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE,CAAC;AA8DD;;;;;;KAMK;AACL,MAAM,UAAU,mBAAmB,CACjC,MAAe,EACf,UAAsC,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IAE5E,MAAM,KAAK,GACT,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI;QACjD,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,IACE,CAAC,OAAO,CAAC,SAAS;QAClB,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC;QAEtD,OAAO,IAAI,CAAC;IAEd,MAAM,QAAQ,GAAkC,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACnE,MAAM,WAAW,GAAkC,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IACzE,MAAM,cAAc,GAAkC;QACpD,GAAG,OAAO,CAAC,SAAS;KACrB,CAAC;IAEF,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI;QACpB,QAAQ,CAAC,IAAI,GAAG,iBAAiB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAC5D,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ;QAAE,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC;IACvD,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK;QAAE,QAAQ,CAAC,KAAK,GAAG,EAAE,CAAC;IAC7C,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO;QAAE,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IACpD,IAAI,OAAO,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM;QAC3D,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;QAC7B,CAAC,CAAC,OAAO,CAAC,OAAO;QACjB,CAAC,CAAC,QAAQ,CAAC,MAAM;YACf,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,GAAG,CAAC;IAEV,IACE,OAAO,CAAC,GAAG,EAAE,MAAM;QACnB,OAAO,CAAC,GAAG,EAAE,MAAM,KAAK,GAAG;QAC3B,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC;QAE9D,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC;IAE9B,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,EAAE,eAAe,EAAE;QACxE,GAAG,QAAQ;QACX,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE;QACnC,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAEzE,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;KAC1C;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE;QACtC,MAAM,SAAS,GAAG,aAAa,CAC7B,KAAK,CAAC,aAAa,EACnB,WAAW,EACX,cAAc,CACf,CAAC;QAEF,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;KAC7C;IAED,IAAI,OAAO,CAAC,SAAS,EAAE;QACrB,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,EAAE;YAClE,GAAG,EAAE,OAAO,CAAC,SAAS;SACvB,CAAC,CAAC;QACH,aAAa,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;KAC9C;IAED,OAAO;QACL,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC;KAChD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ /** @return Number of `ReportControl` elements within [[`root`]] */
2
+ export declare function numberReportControlInstances(root: XMLDocument | Element): {
3
+ bufInstances: number;
4
+ unBufInstances: number;
5
+ };
@@ -0,0 +1,19 @@
1
+ function maxRptEnabled(reportControl) {
2
+ return parseInt(reportControl.querySelector(":scope > RptEnabled")?.getAttribute("max") ??
3
+ "1", 10);
4
+ }
5
+ function sumReportControlInstances(root, buffered = true) {
6
+ const selector = buffered
7
+ ? `ReportControl[buffered="true"]`
8
+ : `ReportControl:not([buffered]), ReportControl[buffered="false"]`;
9
+ return Array.from(root.querySelectorAll(selector))
10
+ .map((reportControl) => maxRptEnabled(reportControl))
11
+ .reduce((a, b) => a + b, 0);
12
+ }
13
+ /** @return Number of `ReportControl` elements within [[`root`]] */
14
+ export function numberReportControlInstances(root) {
15
+ const bufInstances = sumReportControlInstances(root, true);
16
+ const unBufInstances = sumReportControlInstances(root, false);
17
+ return { bufInstances, unBufInstances };
18
+ }
19
+ //# sourceMappingURL=numberReportControlInstances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numberReportControlInstances.js","sourceRoot":"","sources":["../../tReportControl/numberReportControlInstances.ts"],"names":[],"mappings":"AAAA,SAAS,aAAa,CAAC,aAAsB;IAC3C,OAAO,QAAQ,CACb,aAAa,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC;QACrE,GAAG,EACL,EAAE,CACH,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAChC,IAA2B,EAC3B,QAAQ,GAAG,IAAI;IAEf,MAAM,QAAQ,GAAG,QAAQ;QACvB,CAAC,CAAC,gCAAgC;QAClC,CAAC,CAAC,gEAAgE,CAAC;IACrE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;SAC/C,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;SACpD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,4BAA4B,CAAC,IAA2B;IAItE,MAAM,YAAY,GAAG,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,cAAc,GAAG,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAE9D,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { SetAttributes } from "@openscd/oscd-api";
2
+ /** Updates `ReportControl` attributes and cross-referenced elements
3
+ * @param setAttributes - setAttributes edit on `ReportControl` attributes
4
+ * @returns Completed update edit array */
5
+ export declare function updateReportControl(setAttributes: SetAttributes): SetAttributes[];
@@ -0,0 +1,24 @@
1
+ import { findControlBlockSubscription } from "../tControl/findControlSubscription.js";
2
+ import { updatedConfRev } from "../tControl/updateConfRev.js";
3
+ /** Updates `ReportControl` attributes and cross-referenced elements
4
+ * @param setAttributes - setAttributes edit on `ReportControl` attributes
5
+ * @returns Completed update edit array */
6
+ export function updateReportControl(setAttributes) {
7
+ if (setAttributes.element.tagName !== "ReportControl")
8
+ return [];
9
+ const reportControl = setAttributes.element;
10
+ const attributes = setAttributes.attributes;
11
+ const confRev = updatedConfRev(reportControl); // +10000 for update
12
+ const attrs = { ...attributes, confRev };
13
+ const ctrlBlockUpdates = [
14
+ { element: reportControl, attributes: attrs },
15
+ ];
16
+ if (!attributes?.name)
17
+ return ctrlBlockUpdates;
18
+ const extRefUpdates = findControlBlockSubscription(reportControl).map((extRef) => ({
19
+ element: extRef,
20
+ attributes: { srcCBName: attributes.name },
21
+ }));
22
+ return ctrlBlockUpdates.concat(extRefUpdates);
23
+ }
24
+ //# sourceMappingURL=updateReportControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateReportControl.js","sourceRoot":"","sources":["../../tReportControl/updateReportControl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D;;0CAE0C;AAC1C,MAAM,UAAU,mBAAmB,CAAC,aAA4B;IAC9D,IAAI,aAAa,CAAC,OAAO,CAAC,OAAO,KAAK,eAAe;QAAE,OAAO,EAAE,CAAC;IAEjE,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC;IAC5C,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;IAE5C,MAAM,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB;IACnE,MAAM,KAAK,GAAG,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE,CAAC;IAEzC,MAAM,gBAAgB,GAAoB;QACxC,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE;KAC9C,CAAC;IACF,IAAI,CAAC,UAAU,EAAE,IAAI;QAAE,OAAO,gBAAgB,CAAC;IAE/C,MAAM,aAAa,GAAoB,4BAA4B,CACjE,aAAa,CACd,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjB,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE;KAC3C,CAAC,CAAC,CAAC;IAEJ,OAAO,gBAAgB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Insert, Remove } from "@openscd/oscd-api";
2
+ import { ChangeGseOrSmvAddressOptions } from "../tAddress/changeGseOrSmvAddress.js";
3
+ export declare function changeSMVContent(element: Element, options: ChangeGseOrSmvAddressOptions): (Insert | Remove)[];
@@ -0,0 +1,5 @@
1
+ import { changeGseOrSmvAddress, } from "../tAddress/changeGseOrSmvAddress.js";
2
+ export function changeSMVContent(element, options) {
3
+ return changeGseOrSmvAddress(element, options);
4
+ }
5
+ //# sourceMappingURL=changeSMVContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changeSMVContent.js","sourceRoot":"","sources":["../../tSMV/changeSMVContent.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,qBAAqB,GACtB,MAAM,sCAAsC,CAAC;AAE9C,MAAM,UAAU,gBAAgB,CAC9B,OAAgB,EAChB,OAAqC;IAErC,OAAO,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { Insert } from "@openscd/oscd-api";
2
+ export type CreateSMVOptions = {
3
+ /** MAC-Address within `P` element in the `SMV` element */
4
+ mac?: string;
5
+ /** APPID within `P` element in the `SMV` element */
6
+ appId?: string;
7
+ /** VLAN-ID within `P` element in the `SMV` element */
8
+ vlanId?: string;
9
+ /** VLAN-PRIORITY within `P` element in the `SMV` element */
10
+ vlanPriority?: string;
11
+ };
12
+ /** @returns Edit inserting new `SMV` to [[`parent`]] ConnectedAP element */
13
+ export declare function createSMV(parent: Element, attributes: {
14
+ ldInst: string;
15
+ cbName: string;
16
+ }, options?: CreateSMVOptions): Insert | null;
@@ -0,0 +1,32 @@
1
+ import { createElement } from "../foundation/utils.js";
2
+ import { macAddressGenerator } from "../generator/macAddressGenerator.js";
3
+ import { appIdGenerator } from "../generator/appIdGenerator.js";
4
+ import { getReference } from "../tBaseElement/getReference.js";
5
+ /** @returns Edit inserting new `SMV` to [[`parent`]] ConnectedAP element */
6
+ export function createSMV(parent, attributes, options = {}) {
7
+ if (parent.tagName !== "ConnectedAP")
8
+ return null;
9
+ const doc = parent.ownerDocument;
10
+ const gSE = createElement(doc, "SMV", attributes);
11
+ const address = createElement(doc, "Address", {});
12
+ gSE.appendChild(address);
13
+ const pTypes = {};
14
+ pTypes["MAC-Address"] = options.mac ?? macAddressGenerator(doc, "SMV")();
15
+ pTypes.APPID = options.appId ?? appIdGenerator(doc, "SMV")();
16
+ pTypes["VLAN-ID"] = options.vlanId ?? "000";
17
+ pTypes["VLAN-PRIORITY"] = options.vlanPriority ?? "4";
18
+ Object.entries(pTypes)
19
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
20
+ .filter(([_, value]) => value !== undefined)
21
+ .forEach(([type, value]) => {
22
+ const child = createElement(doc, "P", { type });
23
+ child.textContent = value;
24
+ address.appendChild(child);
25
+ });
26
+ return {
27
+ parent,
28
+ node: gSE,
29
+ reference: getReference(parent, "SMV"),
30
+ };
31
+ }
32
+ //# sourceMappingURL=createSMV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSMV.js","sourceRoot":"","sources":["../../tSMV/createSMV.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAa/D,4EAA4E;AAC5E,MAAM,UAAU,SAAS,CACvB,MAAe,EACf,UAA8C,EAC9C,UAA4B,EAAE;IAE9B,IAAI,MAAM,CAAC,OAAO,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IAElD,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,CAAC;IAEjC,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAClD,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEzB,MAAM,MAAM,GAAuC,EAAE,CAAC;IACtD,MAAM,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAG,CAAC;IAC1E,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,EAAG,CAAC;IAC9D,MAAM,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;IAC5C,MAAM,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,YAAY,IAAI,GAAG,CAAC;IACtD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QACpB,6DAA6D;SAC5D,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC;SAC3C,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QACzB,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,KAAK,CAAC,WAAW,GAAG,KAAM,CAAC;QAE3B,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEL,OAAO;QACL,MAAM;QACN,IAAI,EAAE,GAAG;QACT,SAAS,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC;KACvC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** Checks Services>SMVsc AccessPoint or on IED if the first is not present
2
+ * @param parent - parent `LN0`
3
+ * @returns Whether new `SampledValueControl` is exceeding SMVsc.max attribute */
4
+ export declare function canAddSampledValueControl(ln0: Element): boolean;
@@ -0,0 +1,27 @@
1
+ function maxSampledValueControl(parent) {
2
+ {
3
+ const selector = `:scope > Services > SMVsc`;
4
+ const apSMV = parent.closest("AccessPoint")?.querySelector(selector);
5
+ if (apSMV)
6
+ return {
7
+ max: parseInt(apSMV.getAttribute("max") ?? "0", 10),
8
+ scope: "AccessPoint",
9
+ };
10
+ const iedSMV = parent.closest("IED")?.querySelector(selector);
11
+ return {
12
+ max: parseInt(iedSMV?.getAttribute("max") ?? "0", 10),
13
+ scope: "IED",
14
+ };
15
+ }
16
+ }
17
+ /** Checks Services>SMVsc AccessPoint or on IED if the first is not present
18
+ * @param parent - parent `LN0`
19
+ * @returns Whether new `SampledValueControl` is exceeding SMVsc.max attribute */
20
+ export function canAddSampledValueControl(ln0) {
21
+ const { max, scope } = maxSampledValueControl(ln0);
22
+ const existingSampledValueControls = Array.from(ln0
23
+ .closest(scope)
24
+ ?.querySelectorAll(":scope Server > LDevice > LN0 > SampledValueControl") ?? []).length;
25
+ return max > existingSampledValueControls;
26
+ }
27
+ //# sourceMappingURL=canAddSampledValueControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canAddSampledValueControl.js","sourceRoot":"","sources":["../../tSampledValueControl/canAddSampledValueControl.ts"],"names":[],"mappings":"AAAA,SAAS,sBAAsB,CAAC,MAAe;IAI7C;QACE,MAAM,QAAQ,GAAG,2BAA2B,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrE,IAAI,KAAK;YACP,OAAO;gBACL,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;gBACnD,KAAK,EAAE,aAAa;aACrB,CAAC;QAEJ,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC9D,OAAO;YACL,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;YACrD,KAAK,EAAE,KAAK;SACb,CAAC;KACH;AACH,CAAC;AAED;;iFAEiF;AACjF,MAAM,UAAU,yBAAyB,CAAC,GAAY;IACpD,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAEnD,MAAM,4BAA4B,GAAG,KAAK,CAAC,IAAI,CAC7C,GAAG;SACA,OAAO,CAAC,KAAK,CAAC;QACf,EAAE,gBAAgB,CAChB,qDAAqD,CACtD,IAAI,EAAE,CACV,CAAC,MAAM,CAAC;IAET,OAAO,GAAG,GAAG,4BAA4B,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { Insert } from "@openscd/oscd-api";
2
+ export type CreateSampledValueControlOptions = {
3
+ smvControl?: {
4
+ /** `SampledValueControl` name. Must be unique.
5
+ * When missing a unique name starting with `newSampledValueControl_xx` is set */
6
+ name?: string;
7
+ desc?: string;
8
+ /** Id for the new SampledValueControl. Default is IED.name/LDevice.inst/LLN0/SampledValueControl.name */
9
+ smvID?: string;
10
+ /** Whether the SampledValueControl is multicast. Set to true if missing */
11
+ multicast?: "true" | "false";
12
+ /** The sample rate of the sampled value stream. Set to '80' is missing */
13
+ smpRate?: string;
14
+ /** How many samples are packed into one ethernet packet. Set to '1' if missing */
15
+ nofASDU?: string;
16
+ /** The sample mode of the sample value stream */
17
+ smpMod?: "SmpPerPeriod" | "SmpPerSec" | "SecPerSmp";
18
+ /** The security setting of the sample value stream */
19
+ securityEnable?: "None" | "Signature" | "SignatureAndEncryption";
20
+ /** Reference to an existing `DataSet` */
21
+ datSet?: string | null;
22
+ /**User-defined configuration revision (confRev). Overwrites
23
+ *logic to to set confRev acc. to IEC 61850.*/
24
+ confRev?: string | null;
25
+ };
26
+ smvOpts?: {
27
+ /** Whether refresh time is part if the SV stream. Defaults to false. */
28
+ refreshTime?: "true" | "false";
29
+ /** Whether synchronized setting is part if the SV stream. Defaults to true. */
30
+ sampleSynchronized?: "true" | "false";
31
+ /** Whether sampled rate is part if the SV stream. Defaults to false. */
32
+ sampleRate?: "true" | "false";
33
+ /** Whether dataSet reference is part if the SV stream. Defaults to false. */
34
+ dataSet?: "true" | "false";
35
+ /** Whether security setting is part if the SV stream. Defaults to false. */
36
+ security?: "true" | "false";
37
+ /** Whether refresh time is part if the SV stream. Defaults to false. */
38
+ timestamp?: "true" | "false";
39
+ /** Whether sync source ID is part if the SV stream. Defaults to false. */
40
+ synchSourceId?: "true" | "false";
41
+ };
42
+ smv?: {
43
+ /** The AccessPoint that shall publish the sampled value stream.
44
+ * Default the AccessPoint holding the Server element */
45
+ apName?: string;
46
+ /** MAC-Address within `P` element in the `SMV` element */
47
+ mac?: string;
48
+ /** APPID within `P` element in the `SMV` element */
49
+ appId?: string;
50
+ /** VLAN-ID within `P` element in the `SMV` element */
51
+ vlanId?: string;
52
+ /** VLAN-PRIORITY within `P` element in the `SMV` element */
53
+ vlanPriority?: string;
54
+ };
55
+ /** If true, skips check for unique SampledValueControl name,
56
+ * whether `datSet` is pointing to valid `DataSet`
57
+ * and whether additional SampledValueControl is allowed in IED/AccessPoint. */
58
+ skipCheck?: boolean;
59
+ };
60
+ /** Utility function to create schema valid `SampledValueControl` and `SMV` elements
61
+ * @parent Parent element such as `LN0`, `LDevice`, `AccessPoint` and `IED`
62
+ * @options Configuration for SampledValueControl/SMV element
63
+ * @returns Edit inserting new `SampledValueControl` to [[`parent`]] element and when possible
64
+ * `SMV` to connected `ConnectedAP`
65
+ * */
66
+ export declare function createSampledValueControl(parent: Element, options?: CreateSampledValueControlOptions): Insert[];