diff --git a/examples/server_example_basic_io/simpleIO_direct_control.cid b/examples/server_example_basic_io/simpleIO_direct_control.cid
index fcf046b9..a0228a20 100644
--- a/examples/server_example_basic_io/simpleIO_direct_control.cid
+++ b/examples/server_example_basic_io/simpleIO_direct_control.cid
@@ -42,7 +42,7 @@
-
+
diff --git a/examples/server_example_basic_io/static_model.c b/examples/server_example_basic_io/static_model.c
index 276d60da..0048197d 100644
--- a/examples/server_example_basic_io/static_model.c
+++ b/examples/server_example_basic_io/static_model.c
@@ -20,7 +20,7 @@ extern DataSetEntry iedModelds_GenericIO_LLN0_Events_fcda3;
DataSetEntry iedModelds_GenericIO_LLN0_Events_fcda0 = {
"GenericIO",
false,
- "GGIO1$ST$SPCSO1$stVal",
+ "GGIO1$ST$SPCSO1$stVal",
-1,
NULL,
NULL,
@@ -30,7 +30,7 @@ DataSetEntry iedModelds_GenericIO_LLN0_Events_fcda0 = {
DataSetEntry iedModelds_GenericIO_LLN0_Events_fcda1 = {
"GenericIO",
false,
- "GGIO1$ST$SPCSO2$stVal",
+ "GGIO1$ST$SPCSO2$stVal",
-1,
NULL,
NULL,
@@ -40,7 +40,7 @@ DataSetEntry iedModelds_GenericIO_LLN0_Events_fcda1 = {
DataSetEntry iedModelds_GenericIO_LLN0_Events_fcda2 = {
"GenericIO",
false,
- "GGIO1$ST$SPCSO3$stVal",
+ "GGIO1$ST$SPCSO3$stVal",
-1,
NULL,
NULL,
@@ -50,7 +50,7 @@ DataSetEntry iedModelds_GenericIO_LLN0_Events_fcda2 = {
DataSetEntry iedModelds_GenericIO_LLN0_Events_fcda3 = {
"GenericIO",
false,
- "GGIO1$ST$SPCSO4$stVal",
+ "GGIO1$ST$SPCSO4$stVal",
-1,
NULL,
NULL,
@@ -73,7 +73,7 @@ extern DataSetEntry iedModelds_GenericIO_LLN0_Events2_fcda3;
DataSetEntry iedModelds_GenericIO_LLN0_Events2_fcda0 = {
"GenericIO",
false,
- "GGIO1$ST$SPCSO1",
+ "GGIO1$ST$SPCSO1",
-1,
NULL,
NULL,
@@ -83,7 +83,7 @@ DataSetEntry iedModelds_GenericIO_LLN0_Events2_fcda0 = {
DataSetEntry iedModelds_GenericIO_LLN0_Events2_fcda1 = {
"GenericIO",
false,
- "GGIO1$ST$SPCSO2",
+ "GGIO1$ST$SPCSO2",
-1,
NULL,
NULL,
@@ -93,7 +93,7 @@ DataSetEntry iedModelds_GenericIO_LLN0_Events2_fcda1 = {
DataSetEntry iedModelds_GenericIO_LLN0_Events2_fcda2 = {
"GenericIO",
false,
- "GGIO1$ST$SPCSO3",
+ "GGIO1$ST$SPCSO3",
-1,
NULL,
NULL,
@@ -103,7 +103,7 @@ DataSetEntry iedModelds_GenericIO_LLN0_Events2_fcda2 = {
DataSetEntry iedModelds_GenericIO_LLN0_Events2_fcda3 = {
"GenericIO",
false,
- "GGIO1$ST$SPCSO4",
+ "GGIO1$ST$SPCSO4",
-1,
NULL,
NULL,
@@ -130,7 +130,7 @@ extern DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda7;
DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda0 = {
"GenericIO",
false,
- "GGIO1$MX$AnIn1$mag$f",
+ "GGIO1$MX$AnIn1$mag$f",
-1,
NULL,
NULL,
@@ -140,7 +140,7 @@ DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda0 = {
DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda1 = {
"GenericIO",
false,
- "GGIO1$MX$AnIn1$q",
+ "GGIO1$MX$AnIn1$q",
-1,
NULL,
NULL,
@@ -150,7 +150,7 @@ DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda1 = {
DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda2 = {
"GenericIO",
false,
- "GGIO1$MX$AnIn2$mag$f",
+ "GGIO1$MX$AnIn2$mag$f",
-1,
NULL,
NULL,
@@ -160,7 +160,7 @@ DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda2 = {
DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda3 = {
"GenericIO",
false,
- "GGIO1$MX$AnIn2$q",
+ "GGIO1$MX$AnIn2$q",
-1,
NULL,
NULL,
@@ -170,7 +170,7 @@ DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda3 = {
DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda4 = {
"GenericIO",
false,
- "GGIO1$MX$AnIn3$mag$f",
+ "GGIO1$MX$AnIn3$mag$f",
-1,
NULL,
NULL,
@@ -180,7 +180,7 @@ DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda4 = {
DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda5 = {
"GenericIO",
false,
- "GGIO1$MX$AnIn3$q",
+ "GGIO1$MX$AnIn3$q",
-1,
NULL,
NULL,
@@ -190,7 +190,7 @@ DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda5 = {
DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda6 = {
"GenericIO",
false,
- "GGIO1$MX$AnIn4$mag$f",
+ "GGIO1$MX$AnIn4$mag$f",
-1,
NULL,
NULL,
@@ -200,7 +200,7 @@ DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda6 = {
DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda7 = {
"GenericIO",
false,
- "GGIO1$MX$AnIn4$q",
+ "GGIO1$MX$AnIn4$q",
-1,
NULL,
NULL,
@@ -2012,16 +2012,16 @@ extern ReportControlBlock iedModel_GenericIO_LLN0_report7;
extern ReportControlBlock iedModel_GenericIO_LLN0_report8;
extern ReportControlBlock iedModel_GenericIO_LLN0_report9;
-ReportControlBlock iedModel_GenericIO_LLN0_report0 = {&iedModel_GenericIO_LLN0, "EventsRCB01", "Events1", false, "Events", 1, 24, 175, 50, 1000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_GenericIO_LLN0_report1};
-ReportControlBlock iedModel_GenericIO_LLN0_report1 = {&iedModel_GenericIO_LLN0, "EventsRCBPreConf01", "Events1", false, "Events", 1, 24, 175, 50, 1000, {0x4, 0xc0, 0xa8, 0x2, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_GenericIO_LLN0_report2};
-ReportControlBlock iedModel_GenericIO_LLN0_report2 = {&iedModel_GenericIO_LLN0, "EventsBRCB01", "Events2", true, "Events", 1, 24, 175, 50, 1000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_GenericIO_LLN0_report3};
-ReportControlBlock iedModel_GenericIO_LLN0_report3 = {&iedModel_GenericIO_LLN0, "EventsBRCBPreConf01", "Events2", true, "Events", 1, 24, 175, 50, 1000, {0x4, 0xc0, 0xa8, 0x2, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_GenericIO_LLN0_report4};
-ReportControlBlock iedModel_GenericIO_LLN0_report4 = {&iedModel_GenericIO_LLN0, "EventsIndexed01", "Events2", false, "Events", 1, 24, 175, 50, 1000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_GenericIO_LLN0_report5};
-ReportControlBlock iedModel_GenericIO_LLN0_report5 = {&iedModel_GenericIO_LLN0, "EventsIndexed02", "Events2", false, "Events", 1, 24, 175, 50, 1000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_GenericIO_LLN0_report6};
-ReportControlBlock iedModel_GenericIO_LLN0_report6 = {&iedModel_GenericIO_LLN0, "EventsIndexed03", "Events2", false, "Events", 1, 24, 175, 50, 1000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_GenericIO_LLN0_report7};
-ReportControlBlock iedModel_GenericIO_LLN0_report7 = {&iedModel_GenericIO_LLN0, "Measurements01", "Measurements", true, "Measurements", 1, 16, 239, 50, 1000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_GenericIO_LLN0_report8};
-ReportControlBlock iedModel_GenericIO_LLN0_report8 = {&iedModel_GenericIO_LLN0, "Measurements02", "Measurements", true, "Measurements", 1, 16, 239, 50, 1000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_GenericIO_LLN0_report9};
-ReportControlBlock iedModel_GenericIO_LLN0_report9 = {&iedModel_GenericIO_LLN0, "Measurements03", "Measurements", true, "Measurements", 1, 16, 239, 50, 1000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, NULL};
+ReportControlBlock iedModel_GenericIO_LLN0_report0 = {&iedModel_GenericIO_LLN0, "EventsRCB01", "Events1", false, "Events", 1, 88, 175, 50, 1000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_GenericIO_LLN0_report1};
+ReportControlBlock iedModel_GenericIO_LLN0_report1 = {&iedModel_GenericIO_LLN0, "EventsRCBPreConf01", "Events1", false, "Events", 1, 88, 175, 50, 1000, {0x4, 0xc0, 0xa8, 0x2, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_GenericIO_LLN0_report2};
+ReportControlBlock iedModel_GenericIO_LLN0_report2 = {&iedModel_GenericIO_LLN0, "EventsBRCB01", "Events2", true, "Events", 1, 88, 175, 50, 1000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_GenericIO_LLN0_report3};
+ReportControlBlock iedModel_GenericIO_LLN0_report3 = {&iedModel_GenericIO_LLN0, "EventsBRCBPreConf01", "Events2", true, "Events", 1, 88, 175, 50, 1000, {0x4, 0xc0, 0xa8, 0x2, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_GenericIO_LLN0_report4};
+ReportControlBlock iedModel_GenericIO_LLN0_report4 = {&iedModel_GenericIO_LLN0, "EventsIndexed01", "Events2", false, "Events", 1, 88, 175, 50, 1000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_GenericIO_LLN0_report5};
+ReportControlBlock iedModel_GenericIO_LLN0_report5 = {&iedModel_GenericIO_LLN0, "EventsIndexed02", "Events2", false, "Events", 1, 88, 175, 50, 1000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_GenericIO_LLN0_report6};
+ReportControlBlock iedModel_GenericIO_LLN0_report6 = {&iedModel_GenericIO_LLN0, "EventsIndexed03", "Events2", false, "Events", 1, 88, 175, 50, 1000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_GenericIO_LLN0_report7};
+ReportControlBlock iedModel_GenericIO_LLN0_report7 = {&iedModel_GenericIO_LLN0, "Measurements01", "Measurements", true, "Measurements", 1, 80, 239, 50, 1000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_GenericIO_LLN0_report8};
+ReportControlBlock iedModel_GenericIO_LLN0_report8 = {&iedModel_GenericIO_LLN0, "Measurements02", "Measurements", true, "Measurements", 1, 80, 239, 50, 1000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_GenericIO_LLN0_report9};
+ReportControlBlock iedModel_GenericIO_LLN0_report9 = {&iedModel_GenericIO_LLN0, "Measurements03", "Measurements", true, "Measurements", 1, 80, 239, 50, 1000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, NULL};
diff --git a/tools/model_generator/genconfig.jar b/tools/model_generator/genconfig.jar
index bbe56ce4..c60c37c8 100644
Binary files a/tools/model_generator/genconfig.jar and b/tools/model_generator/genconfig.jar differ
diff --git a/tools/model_generator/genmodel.jar b/tools/model_generator/genmodel.jar
index c85e3a6c..7a050019 100644
Binary files a/tools/model_generator/genmodel.jar and b/tools/model_generator/genmodel.jar differ
diff --git a/tools/model_generator/src/com/libiec61850/scl/model/IED.java b/tools/model_generator/src/com/libiec61850/scl/model/IED.java
index 45936a04..a3848e3e 100644
--- a/tools/model_generator/src/com/libiec61850/scl/model/IED.java
+++ b/tools/model_generator/src/com/libiec61850/scl/model/IED.java
@@ -34,11 +34,14 @@ public class IED {
private String name;
private List accessPoints;
private TypeDeclarations typeDeclarations;
+ private Node self;
public IED(Node iedNode, TypeDeclarations typeDeclarations)
throws SclParserException {
this.name = ParserUtils.parseAttribute(iedNode, "name");
+ self = iedNode;
+
List accessPointNodes = ParserUtils.getChildNodesWithTag(iedNode, "AccessPoint");
this.accessPoints = new LinkedList();
@@ -76,4 +79,13 @@ public class IED {
return accessPoints.get(0);
}
+ public Services getServices() {
+ Node servicesNode = ParserUtils.getChildNodeWithTag(self, "Services");
+
+ if (servicesNode != null) {
+ return new Services(servicesNode);
+ }
+ else
+ return null;
+ }
}
diff --git a/tools/model_generator/src/com/libiec61850/scl/model/ReportSettings.java b/tools/model_generator/src/com/libiec61850/scl/model/ReportSettings.java
new file mode 100644
index 00000000..0550cb83
--- /dev/null
+++ b/tools/model_generator/src/com/libiec61850/scl/model/ReportSettings.java
@@ -0,0 +1,51 @@
+package com.libiec61850.scl.model;
+
+/*
+ * Copyright 2013-2020 Michael Zillgith
+ *
+ * This file is part of libIEC61850.
+ *
+ * libIEC61850 is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * libIEC61850 is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with libIEC61850. If not, see .
+ *
+ * See COPYING file for the complete license text.
+ */
+
+import org.w3c.dom.Node;
+
+import com.libiec61850.scl.ParserUtils;
+import com.libiec61850.scl.SclParserException;
+
+public class ReportSettings {
+
+ private Node self;
+
+ public ReportSettings(Node reportSettingsNode)
+ {
+ self = reportSettingsNode;
+ }
+
+ public boolean hasOwner()
+ {
+ try {
+ Boolean ownerValue = ParserUtils.parseBooleanAttribute(self, "owner");
+
+ if (ownerValue != null)
+ return ownerValue.booleanValue();
+ else
+ return false;
+ } catch (SclParserException e) {
+ return false;
+ }
+ }
+}
diff --git a/tools/model_generator/src/com/libiec61850/scl/model/Services.java b/tools/model_generator/src/com/libiec61850/scl/model/Services.java
new file mode 100644
index 00000000..309a66b5
--- /dev/null
+++ b/tools/model_generator/src/com/libiec61850/scl/model/Services.java
@@ -0,0 +1,44 @@
+package com.libiec61850.scl.model;
+
+/*
+ * Copyright 2013-2020 Michael Zillgith
+ *
+ * This file is part of libIEC61850.
+ *
+ * libIEC61850 is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * libIEC61850 is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with libIEC61850. If not, see .
+ *
+ * See COPYING file for the complete license text.
+ */
+
+import org.w3c.dom.Node;
+
+import com.libiec61850.scl.ParserUtils;
+
+public class Services {
+
+ private Node self;
+
+ public Services(Node servicesNode) {
+ self = servicesNode;
+ }
+
+ public ReportSettings getReportSettings()
+ {
+ Node reportSettingsNode = ParserUtils.getChildNodeWithTag(self, "ReportSettings");
+
+ if (reportSettingsNode != null)
+ return new ReportSettings(reportSettingsNode);
+ return null;
+ }
+}
diff --git a/tools/model_generator/src/com/libiec61850/tools/DynamicModelGenerator.java b/tools/model_generator/src/com/libiec61850/tools/DynamicModelGenerator.java
index b1e04201..44d68303 100644
--- a/tools/model_generator/src/com/libiec61850/tools/DynamicModelGenerator.java
+++ b/tools/model_generator/src/com/libiec61850/tools/DynamicModelGenerator.java
@@ -50,12 +50,15 @@ import com.libiec61850.scl.model.LogControl;
import com.libiec61850.scl.model.LogicalDevice;
import com.libiec61850.scl.model.LogicalNode;
import com.libiec61850.scl.model.ReportControlBlock;
+import com.libiec61850.scl.model.ReportSettings;
+import com.libiec61850.scl.model.Services;
import com.libiec61850.scl.model.SettingControl;
public class DynamicModelGenerator {
private ConnectedAP connectedAP;
private IED ied = null;
+ private boolean hasOwner = false;
public DynamicModelGenerator(InputStream stream, String icdFile, PrintStream output, String iedName, String accessPointName)
throws SclParserException {
@@ -69,7 +72,17 @@ public class DynamicModelGenerator {
if (ied == null)
throw new SclParserException("No data model present in SCL file! Exit.");
-
+
+ Services services = ied.getServices();
+
+ if (services != null) {
+ ReportSettings rptSettings = services.getReportSettings();
+
+ if (rptSettings != null) {
+ hasOwner = rptSettings.hasOwner();
+ }
+ }
+
AccessPoint accessPoint = null;
if (accessPointName != null)
@@ -257,7 +270,13 @@ public class DynamicModelGenerator {
output.print("- ");
output.print(rcb.getConfRef() + " ");
- output.print(rcb.getTriggerOptions().getIntValue() + " ");
+
+ int triggerOptions = rcb.getTriggerOptions().getIntValue();
+
+ if (hasOwner)
+ triggerOptions += 64;
+
+ output.print(triggerOptions + " ");
output.print(rcb.getOptionFields().getIntValue() + " ");
diff --git a/tools/model_generator/src/com/libiec61850/tools/StaticModelGenerator.java b/tools/model_generator/src/com/libiec61850/tools/StaticModelGenerator.java
index 18460784..c17b86a4 100644
--- a/tools/model_generator/src/com/libiec61850/tools/StaticModelGenerator.java
+++ b/tools/model_generator/src/com/libiec61850/tools/StaticModelGenerator.java
@@ -60,9 +60,11 @@ import com.libiec61850.scl.model.LogControl;
import com.libiec61850.scl.model.LogicalDevice;
import com.libiec61850.scl.model.LogicalNode;
import com.libiec61850.scl.model.ReportControlBlock;
+import com.libiec61850.scl.model.ReportSettings;
import com.libiec61850.scl.model.RptEnabled;
import com.libiec61850.scl.model.SampledValueControl;
import com.libiec61850.scl.model.Server;
+import com.libiec61850.scl.model.Services;
import com.libiec61850.scl.model.SettingControl;
import com.libiec61850.scl.model.TriggerOptions;
@@ -113,6 +115,8 @@ public class StaticModelGenerator {
private boolean initializeOnce;
private SclParser sclParser;
+
+ private boolean hasOwner = false;
public StaticModelGenerator(InputStream stream, String icdFile, PrintStream cOut, PrintStream hOut,
String outputFileName, String iedName, String accessPointName, String modelPrefix,
@@ -162,6 +166,16 @@ public class StaticModelGenerator {
if (ied == null)
System.out.println("IED model not found in SCL file! Exit.");
+
+ Services services = ied.getServices();
+
+ if (services != null) {
+ ReportSettings rptSettings = services.getReportSettings();
+
+ if (rptSettings != null) {
+ hasOwner = rptSettings.hasOwner();
+ }
+ }
accessPoint = null;
@@ -1422,6 +1436,9 @@ public class StaticModelGenerator {
if (rcb.getTriggerOptions() != null)
triggerOps = rcb.getTriggerOptions().getIntValue();
+
+ if (hasOwner)
+ triggerOps += 64;
rcbString += triggerOps + ", ";