diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index 03326ad9..d787fb9b 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -13,6 +13,7 @@ add_subdirectory(server_example_logging)
add_subdirectory(server_example_files)
add_subdirectory(server_example_substitution)
add_subdirectory(server_example_service_tracking)
+add_subdirectory(server_example_deadband)
add_subdirectory(iec61850_client_example1)
add_subdirectory(iec61850_client_example2)
diff --git a/examples/Makefile b/examples/Makefile
index a6d6d5d9..87cb1d8e 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -20,6 +20,7 @@ EXAMPLE_DIRS += server_example_threadless
EXAMPLE_DIRS += server_example_setting_groups
EXAMPLE_DIRS += server_example_files
EXAMPLE_DIRS += server_example_substitution
+EXAMPLE_DIRS += server_example_deadband
EXAMPLE_DIRS += goose_subscriber
EXAMPLE_DIRS += goose_publisher
EXAMPLE_DIRS += sv_subscriber
diff --git a/examples/server_example_deadband/CMakeLists.txt b/examples/server_example_deadband/CMakeLists.txt
new file mode 100644
index 00000000..bab251a5
--- /dev/null
+++ b/examples/server_example_deadband/CMakeLists.txt
@@ -0,0 +1,21 @@
+include_directories(
+ .
+)
+
+set(server_example_SRCS
+ server_example_deadband.c
+ static_model.c
+)
+
+IF(MSVC)
+set_source_files_properties(${server_example_SRCS}
+ PROPERTIES LANGUAGE CXX)
+ENDIF(MSVC)
+
+add_executable(server_example_deadband
+ ${server_example_SRCS}
+)
+
+target_link_libraries(server_example_deadband
+ iec61850
+)
diff --git a/examples/server_example_deadband/Makefile b/examples/server_example_deadband/Makefile
new file mode 100644
index 00000000..e1d5674c
--- /dev/null
+++ b/examples/server_example_deadband/Makefile
@@ -0,0 +1,31 @@
+LIBIEC_HOME=../..
+
+PROJECT_BINARY_NAME = server_example_deadband
+
+PROJECT_SOURCES = server_example_deadband.c
+PROJECT_SOURCES += static_model.c
+
+PROJECT_ICD_FILE = cid_example_deadband.cid
+
+include $(LIBIEC_HOME)/make/target_system.mk
+include $(LIBIEC_HOME)/make/stack_includes.mk
+
+all: $(PROJECT_BINARY_NAME)
+
+include $(LIBIEC_HOME)/make/common_targets.mk
+
+LDLIBS += -lm
+
+CP = cp
+
+model: $(PROJECT_ICD_FILE)
+ java -jar $(LIBIEC_HOME)/tools/model_generator/genmodel.jar $(PROJECT_ICD_FILE)
+
+$(PROJECT_BINARY_NAME): $(PROJECT_SOURCES) $(LIB_NAME)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $(PROJECT_BINARY_NAME) $(PROJECT_SOURCES) $(INCLUDES) $(LIB_NAME) $(LDLIBS)
+
+clean:
+ rm -f $(PROJECT_BINARY_NAME)
+
+
+
diff --git a/examples/server_example_deadband/cid_example_deadband.cid b/examples/server_example_deadband/cid_example_deadband.cid
new file mode 100644
index 00000000..e023dc0d
--- /dev/null
+++ b/examples/server_example_deadband/cid_example_deadband.cid
@@ -0,0 +1,442 @@
+
+
+
+
+
+
+
+ 1,1,1,999,1
+ 12
+ 00000001
+ 0001
+ 0001
+ 0.0.0.0
+ 255.255.255.0
+ 0.0.0.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ on
+
+
+
+
+
+
+
+ on
+
+
+
+
+ 10000
+
+
+ 10
+
+
+ 1000
+
+
+ 10
+
+
+
+
+ 1000
+
+
+ 10
+
+
+ 1000
+
+
+ 10
+
+
+
+
+ 10000
+
+
+ 1000
+
+
+
+
+ -5
+
+
+
+
+ 5
+
+
+
+
+
+
+ 1000
+
+
+ 1000
+
+
+
+
+ -100
+
+
+
+
+ 100
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ e1
+ e2
+ e3
+ e4
+ e5
+
+
+ ExternalAreaClock
+ LocalAreaClock
+ GlobalAreaClock
+
+
+ not-supported
+ bay-control
+ station-control
+ remote-control
+ automatic-bay
+ automatic-station
+ automatic-remote
+ maintenance
+ process
+
+
+ status-only
+ direct-with-normal-security
+ sbo-with-normal-security
+ direct-with-enhanced-security
+ sbo-with-enhanced-security
+
+
+ operate-once
+ operate-many
+
+
+ none
+ m
+ kg
+ s
+ A
+ K
+ mol
+ cd
+ deg
+ rad
+ sr
+ Gy
+ q
+ °C
+ Sv
+ F
+ C
+ S
+ H
+ V
+ ohm
+ J
+ N
+ Hz
+ lx
+ Lm
+ Wb
+ T
+ W
+ Pa
+ m²
+ m³
+ m/s
+ m/s²
+ m³/s
+ m/m³
+ M
+ kg/m³
+ m²/s
+ W/m K
+ J/K
+ ppm
+ 1/s
+ rad/s
+ VA
+ Watts
+ VAr
+ theta
+ cos(theta)
+ Vs
+ V²
+ As
+ A²
+ A²t
+ VAh
+ Wh
+ VArh
+ V/Hz
+
+
+ Yocto
+ Zepto
+ Atto
+ Femto
+ Pico
+ Nano
+ Micro
+ Milli
+ Centi
+ Deci
+ zeroNoValue
+ Deca
+ Hecto
+ Kilo
+ Mega
+ Giga
+ Tera
+ Petra
+ Exa
+ Zetta
+ Yotta
+
+
+ normal
+ high
+ low
+ high-high
+ low-low
+
+
+ pulse
+ persistent
+
+
+ Ok
+ Warning
+ Alarm
+
+
+ on
+ blocked
+ test
+ test/blocked
+ off
+
+
+ on
+ blocked
+ test
+ test/blocked
+ off
+
+
+
\ No newline at end of file
diff --git a/examples/server_example_deadband/server_example_deadband.c b/examples/server_example_deadband/server_example_deadband.c
new file mode 100644
index 00000000..a7d18bde
--- /dev/null
+++ b/examples/server_example_deadband/server_example_deadband.c
@@ -0,0 +1,221 @@
+/*
+ * server_example_deadband.c
+ *
+ * - How to handle dead bands for measured values (MV)
+ * - Use variable and fixed dead band with db and dbRef (edition 2.1)
+ * - Use fixed dead band with db and rangeC (edition 2)
+ */
+
+#include "iec61850_server.h"
+#include "hal_thread.h"
+#include
+#include
+#include
+#include
+
+#include "static_model.h"
+
+/* import IEC 61850 device model created from SCL-File */
+extern IedModel iedModel;
+
+static int running = 0;
+static IedServer iedServer = NULL;
+
+void
+sigint_handler(int signalId)
+{
+ running = 0;
+}
+
+static void
+connectionHandler (IedServer self, ClientConnection connection, bool connected, void* parameter)
+{
+ if (connected)
+ printf("Connection opened\n");
+ else
+ printf("Connection closed\n");
+}
+
+int
+main(int argc, char** argv)
+{
+ printf("Using libIEC61850 version %s\n", LibIEC61850_getVersionString());
+
+ /* Create new server configuration object */
+ IedServerConfig config = IedServerConfig_create();
+
+ /* Set buffer size for buffered report control blocks to 200000 bytes */
+ IedServerConfig_setReportBufferSize(config, 200000);
+
+ /* Set stack compliance to a specific edition of the standard (WARNING: data model has also to be checked for compliance) */
+ IedServerConfig_setEdition(config, IEC_61850_EDITION_2);
+
+ /* disable MMS file service */
+ IedServerConfig_enableFileService(config, false);
+
+ /* enable dynamic data set service */
+ IedServerConfig_enableDynamicDataSetService(config, true);
+
+ /* disable log service */
+ IedServerConfig_enableLogService(config, false);
+
+ /* set maximum number of clients */
+ IedServerConfig_setMaxMmsConnections(config, 5);
+
+ /* Create a new IEC 61850 server instance */
+ iedServer = IedServer_createWithConfig(&iedModel, NULL, config);
+
+ /* configuration object is no longer required */
+ IedServerConfig_destroy(config);
+
+ /* set the identity values for MMS identify service */
+ IedServer_setServerIdentity(iedServer, "libiec61850.com", "deadband example", "1.5.0");
+
+ IedServer_setConnectionIndicationHandler(iedServer, (IedConnectionIndicationHandler) connectionHandler, NULL);
+
+ /* Allow write access to CF parameters (here "db" and "rangeC") */
+ IedServer_setWriteAccessPolicy(iedServer, IEC61850_FC_CF, ACCESS_POLICY_ALLOW);
+
+ /* MMS server will be instructed to start listening for client connections. */
+ IedServer_start(iedServer, 102);
+
+ if (!IedServer_isRunning(iedServer)) {
+ printf("Starting server failed (maybe need root permissions or another server is already using the port)! Exit.\n");
+ IedServer_destroy(iedServer);
+ exit(-1);
+ }
+
+ running = 1;
+
+ signal(SIGINT, sigint_handler);
+
+ float t = 0.f;
+
+ float an1InstMag = 5 * sinf(t);
+ float an2InstMag = 5 * sinf(t + 1.f);
+ float an3InstMag = 5 * sinf(t + 2.f);
+ float an4InstMag = 5 * sinf(t + 3.f);
+
+ float an1Mag = an1InstMag;
+ float an2Mag = an2InstMag;
+ float an3Mag = an3InstMag;
+ float an4Mag = an4InstMag;
+
+ float anIn1DbRef = MmsValue_toFloat(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn1_dbRef));
+ float anIn1ZeroDbRef = MmsValue_toFloat(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn1_zeroDbRef));
+ float anIn2DbRef = MmsValue_toFloat(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn2_dbRef));
+ float anIn2ZeroDbRef = MmsValue_toFloat(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn2_zeroDbRef));
+
+ while (running) {
+ uint64_t timestamp = Hal_getTimeInMs();
+
+ t += 0.001f;
+
+ an1InstMag = 5 * sinf(t);
+ an2InstMag = 5 * sinf(t + 1.f);
+ an3InstMag = 5 * sinf(t + 2.f);
+ an4InstMag = 5 * sinf(t + 3.f);
+
+ Timestamp iecTimestamp;
+
+ Timestamp_clearFlags(&iecTimestamp);
+ Timestamp_setTimeInMilliseconds(&iecTimestamp, timestamp);
+ Timestamp_setLeapSecondKnown(&iecTimestamp, true);
+
+ float dbValF;
+ float minValF;
+ float maxValF;
+
+ IedServer_lockDataModel(iedServer);
+
+ /* handle AnIn1 (using db and dbRef as in edition 2.1) */
+
+ dbValF = (float)MmsValue_toUint32(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn1_db)) / 1000.f;
+
+ IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn1_instMag_f, an1InstMag);
+
+ if (anIn1DbRef == 0) { /* dbRef = 0 */
+ if (fabsf(an1InstMag - an1Mag) > (fabsf(an1Mag) * dbValF * 0.01f)) {
+ /* dead band condition -> updated "mag" attribute */
+ an1Mag = an1InstMag;
+ IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn1_mag_f, an1Mag);
+ }
+ }
+ else {
+ if (fabsf(an1InstMag - an1Mag) > (fabsf(anIn1DbRef) * dbValF * 0.01f)) {
+ /* dead band condition -> updated "mag" attribute */
+ an1Mag = an1InstMag;
+ IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn1_mag_f, an1Mag);
+ }
+ }
+
+ IedServer_updateTimestampAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn1_t, &iecTimestamp);
+
+ /* handle AnIn2 (using db and dbRef as in edition 2.1) */
+
+ dbValF = (float)MmsValue_toUint32(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn2_db)) / 1000.f;
+
+ IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn2_instMag_f, an2InstMag);
+
+ if (anIn1DbRef == 0) { /* dbRef = 0 */
+ if (fabsf(an2InstMag - an2Mag) > (fabsf(an2Mag) * dbValF * 0.01f)) {
+ /* dead band condition -> updated "mag" attribute */
+ an2Mag = an2InstMag;
+ IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn2_mag_f, an2Mag);
+ }
+ }
+ else {
+ if (fabsf(an2InstMag - an2Mag) > (fabsf(anIn2DbRef) * dbValF * 0.01f)) {
+ /* dead band condition -> updated "mag" attribute */
+ an2Mag = an2InstMag;
+ IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn2_mag_f, an2Mag);
+ }
+ }
+
+ IedServer_updateTimestampAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn2_t, &iecTimestamp);
+
+ /* handle AnIn3 (using db and rangeC as in edition 2) */
+
+ dbValF = (float)MmsValue_toUint32(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn3_db)) / 1000.f;
+ minValF = MmsValue_toFloat(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn3_rangeC_min_f));
+ maxValF = MmsValue_toFloat(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn3_rangeC_max_f));
+
+ IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn3_instMag_f, an3InstMag);
+
+ if (fabsf(an3InstMag - an3Mag) > (fabsf(maxValF - minValF) * dbValF * 0.01f)) {
+ /* dead band condition -> updated "mag" attribute */
+ an3Mag = an3InstMag;
+ IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn3_mag_f, an3Mag);
+ }
+
+ IedServer_updateTimestampAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn3_t, &iecTimestamp);
+
+ /* handle AnIn4 (using db and rangeC as in edition 2) */
+
+ IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn4_instMag_f, an4InstMag);
+
+ dbValF = (float)MmsValue_toUint32(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn4_db)) / 1000.f;
+ minValF = MmsValue_toFloat(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn4_rangeC_min_f));
+ maxValF = MmsValue_toFloat(IedServer_getAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn4_rangeC_max_f));
+
+ if (fabsf(an4InstMag - an4Mag) > (fabsf(maxValF - minValF) * dbValF * 0.01f)) {
+ /* dead band condition -> updated "mag" attribute */
+ an4Mag = an4InstMag;
+ IedServer_updateFloatAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn4_mag_f, an4Mag);
+ }
+
+ IedServer_updateTimestampAttributeValue(iedServer, IEDMODEL_LD1_AnInGGIO1_AnIn4_t, &iecTimestamp);
+
+ IedServer_unlockDataModel(iedServer);
+
+ Thread_sleep(10);
+ }
+
+ /* stop MMS server - close TCP server socket and all client sockets */
+ IedServer_stop(iedServer);
+
+ /* Cleanup - free all resources */
+ IedServer_destroy(iedServer);
+
+ return 0;
+} /* main() */
diff --git a/examples/server_example_deadband/static_model.c b/examples/server_example_deadband/static_model.c
new file mode 100644
index 00000000..77faa997
--- /dev/null
+++ b/examples/server_example_deadband/static_model.c
@@ -0,0 +1,1288 @@
+/*
+ * static_model.c
+ *
+ * automatically generated from cid_example_deadband.cid
+ */
+#include "static_model.h"
+
+static void initializeValues();
+
+extern DataSet iedModelds_LD1_LLN0_AnalogEvents;
+
+
+extern DataSetEntry iedModelds_LD1_LLN0_AnalogEvents_fcda0;
+extern DataSetEntry iedModelds_LD1_LLN0_AnalogEvents_fcda1;
+extern DataSetEntry iedModelds_LD1_LLN0_AnalogEvents_fcda2;
+extern DataSetEntry iedModelds_LD1_LLN0_AnalogEvents_fcda3;
+
+DataSetEntry iedModelds_LD1_LLN0_AnalogEvents_fcda0 = {
+ "LD1",
+ false,
+ "AnInGGIO1$MX$AnIn1",
+ -1,
+ NULL,
+ NULL,
+ &iedModelds_LD1_LLN0_AnalogEvents_fcda1
+};
+
+DataSetEntry iedModelds_LD1_LLN0_AnalogEvents_fcda1 = {
+ "LD1",
+ false,
+ "AnInGGIO1$MX$AnIn2",
+ -1,
+ NULL,
+ NULL,
+ &iedModelds_LD1_LLN0_AnalogEvents_fcda2
+};
+
+DataSetEntry iedModelds_LD1_LLN0_AnalogEvents_fcda2 = {
+ "LD1",
+ false,
+ "AnInGGIO1$MX$AnIn3",
+ -1,
+ NULL,
+ NULL,
+ &iedModelds_LD1_LLN0_AnalogEvents_fcda3
+};
+
+DataSetEntry iedModelds_LD1_LLN0_AnalogEvents_fcda3 = {
+ "LD1",
+ false,
+ "AnInGGIO1$MX$AnIn4",
+ -1,
+ NULL,
+ NULL,
+ NULL
+};
+
+DataSet iedModelds_LD1_LLN0_AnalogEvents = {
+ "LD1",
+ "LLN0$AnalogEvents",
+ 4,
+ &iedModelds_LD1_LLN0_AnalogEvents_fcda0,
+ NULL
+};
+
+LogicalDevice iedModel_LD1 = {
+ LogicalDeviceModelType,
+ "LD1",
+ (ModelNode*) &iedModel,
+ NULL,
+ (ModelNode*) &iedModel_LD1_LLN0
+};
+
+LogicalNode iedModel_LD1_LLN0 = {
+ LogicalNodeModelType,
+ "LLN0",
+ (ModelNode*) &iedModel_LD1,
+ (ModelNode*) &iedModel_LD1_LPHD1,
+ (ModelNode*) &iedModel_LD1_LLN0_Mod,
+};
+
+DataObject iedModel_LD1_LLN0_Mod = {
+ DataObjectModelType,
+ "Mod",
+ (ModelNode*) &iedModel_LD1_LLN0,
+ (ModelNode*) &iedModel_LD1_LLN0_Beh,
+ (ModelNode*) &iedModel_LD1_LLN0_Mod_stVal,
+ 0
+};
+
+DataAttribute iedModel_LD1_LLN0_Mod_stVal = {
+ DataAttributeModelType,
+ "stVal",
+ (ModelNode*) &iedModel_LD1_LLN0_Mod,
+ (ModelNode*) &iedModel_LD1_LLN0_Mod_q,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_ENUMERATED,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LLN0_Mod_q = {
+ DataAttributeModelType,
+ "q",
+ (ModelNode*) &iedModel_LD1_LLN0_Mod,
+ (ModelNode*) &iedModel_LD1_LLN0_Mod_t,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_QUALITY,
+ 0 + TRG_OPT_QUALITY_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LLN0_Mod_t = {
+ DataAttributeModelType,
+ "t",
+ (ModelNode*) &iedModel_LD1_LLN0_Mod,
+ (ModelNode*) &iedModel_LD1_LLN0_Mod_ctlModel,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_TIMESTAMP,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LLN0_Mod_ctlModel = {
+ DataAttributeModelType,
+ "ctlModel",
+ (ModelNode*) &iedModel_LD1_LLN0_Mod,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_ENUMERATED,
+ 0,
+ NULL,
+ 0};
+
+DataObject iedModel_LD1_LLN0_Beh = {
+ DataObjectModelType,
+ "Beh",
+ (ModelNode*) &iedModel_LD1_LLN0,
+ (ModelNode*) &iedModel_LD1_LLN0_Health,
+ (ModelNode*) &iedModel_LD1_LLN0_Beh_stVal,
+ 0
+};
+
+DataAttribute iedModel_LD1_LLN0_Beh_stVal = {
+ DataAttributeModelType,
+ "stVal",
+ (ModelNode*) &iedModel_LD1_LLN0_Beh,
+ (ModelNode*) &iedModel_LD1_LLN0_Beh_q,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_ENUMERATED,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LLN0_Beh_q = {
+ DataAttributeModelType,
+ "q",
+ (ModelNode*) &iedModel_LD1_LLN0_Beh,
+ (ModelNode*) &iedModel_LD1_LLN0_Beh_t,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_QUALITY,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LLN0_Beh_t = {
+ DataAttributeModelType,
+ "t",
+ (ModelNode*) &iedModel_LD1_LLN0_Beh,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_TIMESTAMP,
+ 0,
+ NULL,
+ 0};
+
+DataObject iedModel_LD1_LLN0_Health = {
+ DataObjectModelType,
+ "Health",
+ (ModelNode*) &iedModel_LD1_LLN0,
+ (ModelNode*) &iedModel_LD1_LLN0_NamPlt,
+ (ModelNode*) &iedModel_LD1_LLN0_Health_stVal,
+ 0
+};
+
+DataAttribute iedModel_LD1_LLN0_Health_stVal = {
+ DataAttributeModelType,
+ "stVal",
+ (ModelNode*) &iedModel_LD1_LLN0_Health,
+ (ModelNode*) &iedModel_LD1_LLN0_Health_q,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_ENUMERATED,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LLN0_Health_q = {
+ DataAttributeModelType,
+ "q",
+ (ModelNode*) &iedModel_LD1_LLN0_Health,
+ (ModelNode*) &iedModel_LD1_LLN0_Health_t,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_QUALITY,
+ 0 + TRG_OPT_QUALITY_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LLN0_Health_t = {
+ DataAttributeModelType,
+ "t",
+ (ModelNode*) &iedModel_LD1_LLN0_Health,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_TIMESTAMP,
+ 0,
+ NULL,
+ 0};
+
+DataObject iedModel_LD1_LLN0_NamPlt = {
+ DataObjectModelType,
+ "NamPlt",
+ (ModelNode*) &iedModel_LD1_LLN0,
+ NULL,
+ (ModelNode*) &iedModel_LD1_LLN0_NamPlt_vendor,
+ 0
+};
+
+DataAttribute iedModel_LD1_LLN0_NamPlt_vendor = {
+ DataAttributeModelType,
+ "vendor",
+ (ModelNode*) &iedModel_LD1_LLN0_NamPlt,
+ (ModelNode*) &iedModel_LD1_LLN0_NamPlt_swRev,
+ NULL,
+ 0,
+ IEC61850_FC_DC,
+ IEC61850_VISIBLE_STRING_255,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LLN0_NamPlt_swRev = {
+ DataAttributeModelType,
+ "swRev",
+ (ModelNode*) &iedModel_LD1_LLN0_NamPlt,
+ (ModelNode*) &iedModel_LD1_LLN0_NamPlt_d,
+ NULL,
+ 0,
+ IEC61850_FC_DC,
+ IEC61850_VISIBLE_STRING_255,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LLN0_NamPlt_d = {
+ DataAttributeModelType,
+ "d",
+ (ModelNode*) &iedModel_LD1_LLN0_NamPlt,
+ (ModelNode*) &iedModel_LD1_LLN0_NamPlt_configRev,
+ NULL,
+ 0,
+ IEC61850_FC_DC,
+ IEC61850_VISIBLE_STRING_255,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LLN0_NamPlt_configRev = {
+ DataAttributeModelType,
+ "configRev",
+ (ModelNode*) &iedModel_LD1_LLN0_NamPlt,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_DC,
+ IEC61850_VISIBLE_STRING_255,
+ 0,
+ NULL,
+ 0};
+
+LogicalNode iedModel_LD1_LPHD1 = {
+ LogicalNodeModelType,
+ "LPHD1",
+ (ModelNode*) &iedModel_LD1,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1,
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyNam,
+};
+
+DataObject iedModel_LD1_LPHD1_PhyNam = {
+ DataObjectModelType,
+ "PhyNam",
+ (ModelNode*) &iedModel_LD1_LPHD1,
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyHealth,
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyNam_vendor,
+ 0
+};
+
+DataAttribute iedModel_LD1_LPHD1_PhyNam_vendor = {
+ DataAttributeModelType,
+ "vendor",
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyNam,
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyNam_hwRev,
+ NULL,
+ 0,
+ IEC61850_FC_DC,
+ IEC61850_VISIBLE_STRING_255,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LPHD1_PhyNam_hwRev = {
+ DataAttributeModelType,
+ "hwRev",
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyNam,
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyNam_swRev,
+ NULL,
+ 0,
+ IEC61850_FC_DC,
+ IEC61850_VISIBLE_STRING_255,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LPHD1_PhyNam_swRev = {
+ DataAttributeModelType,
+ "swRev",
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyNam,
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyNam_serNum,
+ NULL,
+ 0,
+ IEC61850_FC_DC,
+ IEC61850_VISIBLE_STRING_255,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LPHD1_PhyNam_serNum = {
+ DataAttributeModelType,
+ "serNum",
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyNam,
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyNam_model,
+ NULL,
+ 0,
+ IEC61850_FC_DC,
+ IEC61850_VISIBLE_STRING_255,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LPHD1_PhyNam_model = {
+ DataAttributeModelType,
+ "model",
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyNam,
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyNam_location,
+ NULL,
+ 0,
+ IEC61850_FC_DC,
+ IEC61850_VISIBLE_STRING_255,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LPHD1_PhyNam_location = {
+ DataAttributeModelType,
+ "location",
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyNam,
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyNam_name,
+ NULL,
+ 0,
+ IEC61850_FC_DC,
+ IEC61850_VISIBLE_STRING_255,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LPHD1_PhyNam_name = {
+ DataAttributeModelType,
+ "name",
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyNam,
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyNam_owner,
+ NULL,
+ 0,
+ IEC61850_FC_DC,
+ IEC61850_VISIBLE_STRING_64,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LPHD1_PhyNam_owner = {
+ DataAttributeModelType,
+ "owner",
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyNam,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_DC,
+ IEC61850_VISIBLE_STRING_255,
+ 0,
+ NULL,
+ 0};
+
+DataObject iedModel_LD1_LPHD1_PhyHealth = {
+ DataObjectModelType,
+ "PhyHealth",
+ (ModelNode*) &iedModel_LD1_LPHD1,
+ (ModelNode*) &iedModel_LD1_LPHD1_Proxy,
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyHealth_stVal,
+ 0
+};
+
+DataAttribute iedModel_LD1_LPHD1_PhyHealth_stVal = {
+ DataAttributeModelType,
+ "stVal",
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyHealth,
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyHealth_q,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_ENUMERATED,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LPHD1_PhyHealth_q = {
+ DataAttributeModelType,
+ "q",
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyHealth,
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyHealth_t,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_QUALITY,
+ 0 + TRG_OPT_QUALITY_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LPHD1_PhyHealth_t = {
+ DataAttributeModelType,
+ "t",
+ (ModelNode*) &iedModel_LD1_LPHD1_PhyHealth,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_TIMESTAMP,
+ 0,
+ NULL,
+ 0};
+
+DataObject iedModel_LD1_LPHD1_Proxy = {
+ DataObjectModelType,
+ "Proxy",
+ (ModelNode*) &iedModel_LD1_LPHD1,
+ NULL,
+ (ModelNode*) &iedModel_LD1_LPHD1_Proxy_stVal,
+ 0
+};
+
+DataAttribute iedModel_LD1_LPHD1_Proxy_stVal = {
+ DataAttributeModelType,
+ "stVal",
+ (ModelNode*) &iedModel_LD1_LPHD1_Proxy,
+ (ModelNode*) &iedModel_LD1_LPHD1_Proxy_q,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_BOOLEAN,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LPHD1_Proxy_q = {
+ DataAttributeModelType,
+ "q",
+ (ModelNode*) &iedModel_LD1_LPHD1_Proxy,
+ (ModelNode*) &iedModel_LD1_LPHD1_Proxy_t,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_QUALITY,
+ 0 + TRG_OPT_QUALITY_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LPHD1_Proxy_t = {
+ DataAttributeModelType,
+ "t",
+ (ModelNode*) &iedModel_LD1_LPHD1_Proxy,
+ (ModelNode*) &iedModel_LD1_LPHD1_Proxy_d,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_TIMESTAMP,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_LPHD1_Proxy_d = {
+ DataAttributeModelType,
+ "d",
+ (ModelNode*) &iedModel_LD1_LPHD1_Proxy,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_DC,
+ IEC61850_VISIBLE_STRING_255,
+ 0,
+ NULL,
+ 0};
+
+LogicalNode iedModel_LD1_AnInGGIO1 = {
+ LogicalNodeModelType,
+ "AnInGGIO1",
+ (ModelNode*) &iedModel_LD1,
+ NULL,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_Beh,
+};
+
+DataObject iedModel_LD1_AnInGGIO1_Beh = {
+ DataObjectModelType,
+ "Beh",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_Beh_stVal,
+ 0
+};
+
+DataAttribute iedModel_LD1_AnInGGIO1_Beh_stVal = {
+ DataAttributeModelType,
+ "stVal",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_Beh,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_Beh_q,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_ENUMERATED,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_Beh_q = {
+ DataAttributeModelType,
+ "q",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_Beh,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_Beh_t,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_QUALITY,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_Beh_t = {
+ DataAttributeModelType,
+ "t",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_Beh,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_TIMESTAMP,
+ 0,
+ NULL,
+ 0};
+
+DataObject iedModel_LD1_AnInGGIO1_AnIn1 = {
+ DataObjectModelType,
+ "AnIn1",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_instMag,
+ 0
+};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_instMag = {
+ DataAttributeModelType,
+ "instMag",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_mag,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_instMag_f,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_CONSTRUCTED,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_instMag_f = {
+ DataAttributeModelType,
+ "f",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_instMag,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_FLOAT32,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_mag = {
+ DataAttributeModelType,
+ "mag",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_q,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_mag_f,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_CONSTRUCTED,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_mag_f = {
+ DataAttributeModelType,
+ "f",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_mag,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_FLOAT32,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_q = {
+ DataAttributeModelType,
+ "q",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_t,
+ NULL,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_QUALITY,
+ 0 + TRG_OPT_QUALITY_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_t = {
+ DataAttributeModelType,
+ "t",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_db,
+ NULL,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_TIMESTAMP,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_db = {
+ DataAttributeModelType,
+ "db",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_zeroDb,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_INT32U,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_zeroDb = {
+ DataAttributeModelType,
+ "zeroDb",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_dbRef,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_INT32U,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_dbRef = {
+ DataAttributeModelType,
+ "dbRef",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1_zeroDbRef,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_FLOAT32,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_zeroDbRef = {
+ DataAttributeModelType,
+ "zeroDbRef",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn1,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_FLOAT32,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataObject iedModel_LD1_AnInGGIO1_AnIn2 = {
+ DataObjectModelType,
+ "AnIn2",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_instMag,
+ 0
+};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_instMag = {
+ DataAttributeModelType,
+ "instMag",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_mag,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_instMag_f,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_CONSTRUCTED,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_instMag_f = {
+ DataAttributeModelType,
+ "f",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_instMag,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_FLOAT32,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_mag = {
+ DataAttributeModelType,
+ "mag",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_q,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_mag_f,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_CONSTRUCTED,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_mag_f = {
+ DataAttributeModelType,
+ "f",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_mag,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_FLOAT32,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_q = {
+ DataAttributeModelType,
+ "q",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_t,
+ NULL,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_QUALITY,
+ 0 + TRG_OPT_QUALITY_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_t = {
+ DataAttributeModelType,
+ "t",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_db,
+ NULL,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_TIMESTAMP,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_db = {
+ DataAttributeModelType,
+ "db",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_zeroDb,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_INT32U,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_zeroDb = {
+ DataAttributeModelType,
+ "zeroDb",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_dbRef,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_INT32U,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_dbRef = {
+ DataAttributeModelType,
+ "dbRef",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2_zeroDbRef,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_FLOAT32,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_zeroDbRef = {
+ DataAttributeModelType,
+ "zeroDbRef",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn2,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_FLOAT32,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataObject iedModel_LD1_AnInGGIO1_AnIn3 = {
+ DataObjectModelType,
+ "AnIn3",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_instMag,
+ 0
+};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_instMag = {
+ DataAttributeModelType,
+ "instMag",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_mag,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_instMag_f,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_CONSTRUCTED,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_instMag_f = {
+ DataAttributeModelType,
+ "f",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_instMag,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_FLOAT32,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_mag = {
+ DataAttributeModelType,
+ "mag",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_q,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_mag_f,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_CONSTRUCTED,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_mag_f = {
+ DataAttributeModelType,
+ "f",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_mag,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_FLOAT32,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_q = {
+ DataAttributeModelType,
+ "q",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_t,
+ NULL,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_QUALITY,
+ 0 + TRG_OPT_QUALITY_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_t = {
+ DataAttributeModelType,
+ "t",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_db,
+ NULL,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_TIMESTAMP,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_db = {
+ DataAttributeModelType,
+ "db",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_zeroDb,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_INT32U,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_zeroDb = {
+ DataAttributeModelType,
+ "zeroDb",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_rangeC,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_INT32U,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC = {
+ DataAttributeModelType,
+ "rangeC",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3,
+ NULL,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_CONSTRUCTED,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min = {
+ DataAttributeModelType,
+ "min",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_rangeC,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min_f,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_CONSTRUCTED,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min_f = {
+ DataAttributeModelType,
+ "f",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_FLOAT32,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max = {
+ DataAttributeModelType,
+ "max",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_rangeC,
+ NULL,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max_f,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_CONSTRUCTED,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max_f = {
+ DataAttributeModelType,
+ "f",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_FLOAT32,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataObject iedModel_LD1_AnInGGIO1_AnIn4 = {
+ DataObjectModelType,
+ "AnIn4",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1,
+ NULL,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_instMag,
+ 0
+};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_instMag = {
+ DataAttributeModelType,
+ "instMag",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_mag,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_instMag_f,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_CONSTRUCTED,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_instMag_f = {
+ DataAttributeModelType,
+ "f",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_instMag,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_FLOAT32,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_mag = {
+ DataAttributeModelType,
+ "mag",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_q,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_mag_f,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_CONSTRUCTED,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_mag_f = {
+ DataAttributeModelType,
+ "f",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_mag,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_FLOAT32,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_q = {
+ DataAttributeModelType,
+ "q",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_t,
+ NULL,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_QUALITY,
+ 0 + TRG_OPT_QUALITY_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_t = {
+ DataAttributeModelType,
+ "t",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_db,
+ NULL,
+ 0,
+ IEC61850_FC_MX,
+ IEC61850_TIMESTAMP,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_db = {
+ DataAttributeModelType,
+ "db",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_zeroDb,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_INT32U,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_zeroDb = {
+ DataAttributeModelType,
+ "zeroDb",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_rangeC,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_INT32U,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC = {
+ DataAttributeModelType,
+ "rangeC",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4,
+ NULL,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_CONSTRUCTED,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min = {
+ DataAttributeModelType,
+ "min",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_rangeC,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min_f,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_CONSTRUCTED,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min_f = {
+ DataAttributeModelType,
+ "f",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_FLOAT32,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max = {
+ DataAttributeModelType,
+ "max",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_rangeC,
+ NULL,
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max_f,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_CONSTRUCTED,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max_f = {
+ DataAttributeModelType,
+ "f",
+ (ModelNode*) &iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_FLOAT32,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
+extern ReportControlBlock iedModel_LD1_LLN0_report0;
+extern ReportControlBlock iedModel_LD1_LLN0_report1;
+extern ReportControlBlock iedModel_LD1_LLN0_report2;
+extern ReportControlBlock iedModel_LD1_LLN0_report3;
+
+ReportControlBlock iedModel_LD1_LLN0_report0 = {&iedModel_LD1_LLN0, "BRCB_Events01", NULL, true, "AnalogEvents", 1, 19, 247, 0, 5000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_LD1_LLN0_report1};
+ReportControlBlock iedModel_LD1_LLN0_report1 = {&iedModel_LD1_LLN0, "BRCB_Events02", NULL, true, "AnalogEvents", 1, 19, 247, 0, 5000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_LD1_LLN0_report2};
+ReportControlBlock iedModel_LD1_LLN0_report2 = {&iedModel_LD1_LLN0, "URCB_Events01", NULL, false, "AnalogEvents", 1, 19, 183, 0, 5000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, &iedModel_LD1_LLN0_report3};
+ReportControlBlock iedModel_LD1_LLN0_report3 = {&iedModel_LD1_LLN0, "URCB_Events02", NULL, false, "AnalogEvents", 1, 19, 183, 0, 5000, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, NULL};
+
+
+
+
+
+
+
+IedModel iedModel = {
+ "IED1",
+ &iedModel_LD1,
+ &iedModelds_LD1_LLN0_AnalogEvents,
+ &iedModel_LD1_LLN0_report0,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ initializeValues
+};
+
+static void
+initializeValues()
+{
+
+iedModel_LD1_LLN0_Mod_stVal.mmsValue = MmsValue_newIntegerFromInt32(1);
+
+iedModel_LD1_AnInGGIO1_Beh_stVal.mmsValue = MmsValue_newIntegerFromInt32(1);
+
+iedModel_LD1_AnInGGIO1_AnIn1_db.mmsValue = MmsValue_newUnsignedFromUint32(10000);
+
+iedModel_LD1_AnInGGIO1_AnIn1_zeroDb.mmsValue = MmsValue_newUnsignedFromUint32(1000);
+
+iedModel_LD1_AnInGGIO1_AnIn1_dbRef.mmsValue = MmsValue_newFloat(10.0);
+
+iedModel_LD1_AnInGGIO1_AnIn1_zeroDbRef.mmsValue = MmsValue_newFloat(10.0);
+
+iedModel_LD1_AnInGGIO1_AnIn2_db.mmsValue = MmsValue_newUnsignedFromUint32(1000);
+
+iedModel_LD1_AnInGGIO1_AnIn2_zeroDb.mmsValue = MmsValue_newUnsignedFromUint32(1000);
+
+iedModel_LD1_AnInGGIO1_AnIn2_dbRef.mmsValue = MmsValue_newFloat(10.0);
+
+iedModel_LD1_AnInGGIO1_AnIn2_zeroDbRef.mmsValue = MmsValue_newFloat(10.0);
+
+iedModel_LD1_AnInGGIO1_AnIn3_db.mmsValue = MmsValue_newUnsignedFromUint32(10000);
+
+iedModel_LD1_AnInGGIO1_AnIn3_zeroDb.mmsValue = MmsValue_newUnsignedFromUint32(1000);
+
+iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min_f.mmsValue = MmsValue_newFloat(-5.0);
+
+iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max_f.mmsValue = MmsValue_newFloat(5.0);
+
+iedModel_LD1_AnInGGIO1_AnIn4_db.mmsValue = MmsValue_newUnsignedFromUint32(1000);
+
+iedModel_LD1_AnInGGIO1_AnIn4_zeroDb.mmsValue = MmsValue_newUnsignedFromUint32(1000);
+
+iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min_f.mmsValue = MmsValue_newFloat(-100.0);
+
+iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max_f.mmsValue = MmsValue_newFloat(100.0);
+}
diff --git a/examples/server_example_deadband/static_model.h b/examples/server_example_deadband/static_model.h
new file mode 100644
index 00000000..3be3f25a
--- /dev/null
+++ b/examples/server_example_deadband/static_model.h
@@ -0,0 +1,207 @@
+/*
+ * static_model.h
+ *
+ * automatically generated from cid_example_deadband.cid
+ */
+
+#ifndef STATIC_MODEL_H_
+#define STATIC_MODEL_H_
+
+#include
+#include "iec61850_model.h"
+
+extern IedModel iedModel;
+extern LogicalDevice iedModel_LD1;
+extern LogicalNode iedModel_LD1_LLN0;
+extern DataObject iedModel_LD1_LLN0_Mod;
+extern DataAttribute iedModel_LD1_LLN0_Mod_stVal;
+extern DataAttribute iedModel_LD1_LLN0_Mod_q;
+extern DataAttribute iedModel_LD1_LLN0_Mod_t;
+extern DataAttribute iedModel_LD1_LLN0_Mod_ctlModel;
+extern DataObject iedModel_LD1_LLN0_Beh;
+extern DataAttribute iedModel_LD1_LLN0_Beh_stVal;
+extern DataAttribute iedModel_LD1_LLN0_Beh_q;
+extern DataAttribute iedModel_LD1_LLN0_Beh_t;
+extern DataObject iedModel_LD1_LLN0_Health;
+extern DataAttribute iedModel_LD1_LLN0_Health_stVal;
+extern DataAttribute iedModel_LD1_LLN0_Health_q;
+extern DataAttribute iedModel_LD1_LLN0_Health_t;
+extern DataObject iedModel_LD1_LLN0_NamPlt;
+extern DataAttribute iedModel_LD1_LLN0_NamPlt_vendor;
+extern DataAttribute iedModel_LD1_LLN0_NamPlt_swRev;
+extern DataAttribute iedModel_LD1_LLN0_NamPlt_d;
+extern DataAttribute iedModel_LD1_LLN0_NamPlt_configRev;
+extern LogicalNode iedModel_LD1_LPHD1;
+extern DataObject iedModel_LD1_LPHD1_PhyNam;
+extern DataAttribute iedModel_LD1_LPHD1_PhyNam_vendor;
+extern DataAttribute iedModel_LD1_LPHD1_PhyNam_hwRev;
+extern DataAttribute iedModel_LD1_LPHD1_PhyNam_swRev;
+extern DataAttribute iedModel_LD1_LPHD1_PhyNam_serNum;
+extern DataAttribute iedModel_LD1_LPHD1_PhyNam_model;
+extern DataAttribute iedModel_LD1_LPHD1_PhyNam_location;
+extern DataAttribute iedModel_LD1_LPHD1_PhyNam_name;
+extern DataAttribute iedModel_LD1_LPHD1_PhyNam_owner;
+extern DataObject iedModel_LD1_LPHD1_PhyHealth;
+extern DataAttribute iedModel_LD1_LPHD1_PhyHealth_stVal;
+extern DataAttribute iedModel_LD1_LPHD1_PhyHealth_q;
+extern DataAttribute iedModel_LD1_LPHD1_PhyHealth_t;
+extern DataObject iedModel_LD1_LPHD1_Proxy;
+extern DataAttribute iedModel_LD1_LPHD1_Proxy_stVal;
+extern DataAttribute iedModel_LD1_LPHD1_Proxy_q;
+extern DataAttribute iedModel_LD1_LPHD1_Proxy_t;
+extern DataAttribute iedModel_LD1_LPHD1_Proxy_d;
+extern LogicalNode iedModel_LD1_AnInGGIO1;
+extern DataObject iedModel_LD1_AnInGGIO1_Beh;
+extern DataAttribute iedModel_LD1_AnInGGIO1_Beh_stVal;
+extern DataAttribute iedModel_LD1_AnInGGIO1_Beh_q;
+extern DataAttribute iedModel_LD1_AnInGGIO1_Beh_t;
+extern DataObject iedModel_LD1_AnInGGIO1_AnIn1;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_instMag;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_instMag_f;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_mag;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_mag_f;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_q;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_t;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_db;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_zeroDb;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_dbRef;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn1_zeroDbRef;
+extern DataObject iedModel_LD1_AnInGGIO1_AnIn2;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_instMag;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_instMag_f;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_mag;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_mag_f;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_q;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_t;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_db;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_zeroDb;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_dbRef;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn2_zeroDbRef;
+extern DataObject iedModel_LD1_AnInGGIO1_AnIn3;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_instMag;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_instMag_f;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_mag;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_mag_f;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_q;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_t;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_db;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_zeroDb;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min_f;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max_f;
+extern DataObject iedModel_LD1_AnInGGIO1_AnIn4;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_instMag;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_instMag_f;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_mag;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_mag_f;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_q;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_t;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_db;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_zeroDb;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min_f;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max;
+extern DataAttribute iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max_f;
+
+
+
+#define IEDMODEL_LD1 (&iedModel_LD1)
+#define IEDMODEL_LD1_LLN0 (&iedModel_LD1_LLN0)
+#define IEDMODEL_LD1_LLN0_Mod (&iedModel_LD1_LLN0_Mod)
+#define IEDMODEL_LD1_LLN0_Mod_stVal (&iedModel_LD1_LLN0_Mod_stVal)
+#define IEDMODEL_LD1_LLN0_Mod_q (&iedModel_LD1_LLN0_Mod_q)
+#define IEDMODEL_LD1_LLN0_Mod_t (&iedModel_LD1_LLN0_Mod_t)
+#define IEDMODEL_LD1_LLN0_Mod_ctlModel (&iedModel_LD1_LLN0_Mod_ctlModel)
+#define IEDMODEL_LD1_LLN0_Beh (&iedModel_LD1_LLN0_Beh)
+#define IEDMODEL_LD1_LLN0_Beh_stVal (&iedModel_LD1_LLN0_Beh_stVal)
+#define IEDMODEL_LD1_LLN0_Beh_q (&iedModel_LD1_LLN0_Beh_q)
+#define IEDMODEL_LD1_LLN0_Beh_t (&iedModel_LD1_LLN0_Beh_t)
+#define IEDMODEL_LD1_LLN0_Health (&iedModel_LD1_LLN0_Health)
+#define IEDMODEL_LD1_LLN0_Health_stVal (&iedModel_LD1_LLN0_Health_stVal)
+#define IEDMODEL_LD1_LLN0_Health_q (&iedModel_LD1_LLN0_Health_q)
+#define IEDMODEL_LD1_LLN0_Health_t (&iedModel_LD1_LLN0_Health_t)
+#define IEDMODEL_LD1_LLN0_NamPlt (&iedModel_LD1_LLN0_NamPlt)
+#define IEDMODEL_LD1_LLN0_NamPlt_vendor (&iedModel_LD1_LLN0_NamPlt_vendor)
+#define IEDMODEL_LD1_LLN0_NamPlt_swRev (&iedModel_LD1_LLN0_NamPlt_swRev)
+#define IEDMODEL_LD1_LLN0_NamPlt_d (&iedModel_LD1_LLN0_NamPlt_d)
+#define IEDMODEL_LD1_LLN0_NamPlt_configRev (&iedModel_LD1_LLN0_NamPlt_configRev)
+#define IEDMODEL_LD1_LPHD1 (&iedModel_LD1_LPHD1)
+#define IEDMODEL_LD1_LPHD1_PhyNam (&iedModel_LD1_LPHD1_PhyNam)
+#define IEDMODEL_LD1_LPHD1_PhyNam_vendor (&iedModel_LD1_LPHD1_PhyNam_vendor)
+#define IEDMODEL_LD1_LPHD1_PhyNam_hwRev (&iedModel_LD1_LPHD1_PhyNam_hwRev)
+#define IEDMODEL_LD1_LPHD1_PhyNam_swRev (&iedModel_LD1_LPHD1_PhyNam_swRev)
+#define IEDMODEL_LD1_LPHD1_PhyNam_serNum (&iedModel_LD1_LPHD1_PhyNam_serNum)
+#define IEDMODEL_LD1_LPHD1_PhyNam_model (&iedModel_LD1_LPHD1_PhyNam_model)
+#define IEDMODEL_LD1_LPHD1_PhyNam_location (&iedModel_LD1_LPHD1_PhyNam_location)
+#define IEDMODEL_LD1_LPHD1_PhyNam_name (&iedModel_LD1_LPHD1_PhyNam_name)
+#define IEDMODEL_LD1_LPHD1_PhyNam_owner (&iedModel_LD1_LPHD1_PhyNam_owner)
+#define IEDMODEL_LD1_LPHD1_PhyHealth (&iedModel_LD1_LPHD1_PhyHealth)
+#define IEDMODEL_LD1_LPHD1_PhyHealth_stVal (&iedModel_LD1_LPHD1_PhyHealth_stVal)
+#define IEDMODEL_LD1_LPHD1_PhyHealth_q (&iedModel_LD1_LPHD1_PhyHealth_q)
+#define IEDMODEL_LD1_LPHD1_PhyHealth_t (&iedModel_LD1_LPHD1_PhyHealth_t)
+#define IEDMODEL_LD1_LPHD1_Proxy (&iedModel_LD1_LPHD1_Proxy)
+#define IEDMODEL_LD1_LPHD1_Proxy_stVal (&iedModel_LD1_LPHD1_Proxy_stVal)
+#define IEDMODEL_LD1_LPHD1_Proxy_q (&iedModel_LD1_LPHD1_Proxy_q)
+#define IEDMODEL_LD1_LPHD1_Proxy_t (&iedModel_LD1_LPHD1_Proxy_t)
+#define IEDMODEL_LD1_LPHD1_Proxy_d (&iedModel_LD1_LPHD1_Proxy_d)
+#define IEDMODEL_LD1_AnInGGIO1 (&iedModel_LD1_AnInGGIO1)
+#define IEDMODEL_LD1_AnInGGIO1_Beh (&iedModel_LD1_AnInGGIO1_Beh)
+#define IEDMODEL_LD1_AnInGGIO1_Beh_stVal (&iedModel_LD1_AnInGGIO1_Beh_stVal)
+#define IEDMODEL_LD1_AnInGGIO1_Beh_q (&iedModel_LD1_AnInGGIO1_Beh_q)
+#define IEDMODEL_LD1_AnInGGIO1_Beh_t (&iedModel_LD1_AnInGGIO1_Beh_t)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn1 (&iedModel_LD1_AnInGGIO1_AnIn1)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn1_instMag (&iedModel_LD1_AnInGGIO1_AnIn1_instMag)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn1_instMag_f (&iedModel_LD1_AnInGGIO1_AnIn1_instMag_f)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn1_mag (&iedModel_LD1_AnInGGIO1_AnIn1_mag)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn1_mag_f (&iedModel_LD1_AnInGGIO1_AnIn1_mag_f)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn1_q (&iedModel_LD1_AnInGGIO1_AnIn1_q)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn1_t (&iedModel_LD1_AnInGGIO1_AnIn1_t)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn1_db (&iedModel_LD1_AnInGGIO1_AnIn1_db)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn1_zeroDb (&iedModel_LD1_AnInGGIO1_AnIn1_zeroDb)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn1_dbRef (&iedModel_LD1_AnInGGIO1_AnIn1_dbRef)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn1_zeroDbRef (&iedModel_LD1_AnInGGIO1_AnIn1_zeroDbRef)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn2 (&iedModel_LD1_AnInGGIO1_AnIn2)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn2_instMag (&iedModel_LD1_AnInGGIO1_AnIn2_instMag)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn2_instMag_f (&iedModel_LD1_AnInGGIO1_AnIn2_instMag_f)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn2_mag (&iedModel_LD1_AnInGGIO1_AnIn2_mag)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn2_mag_f (&iedModel_LD1_AnInGGIO1_AnIn2_mag_f)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn2_q (&iedModel_LD1_AnInGGIO1_AnIn2_q)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn2_t (&iedModel_LD1_AnInGGIO1_AnIn2_t)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn2_db (&iedModel_LD1_AnInGGIO1_AnIn2_db)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn2_zeroDb (&iedModel_LD1_AnInGGIO1_AnIn2_zeroDb)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn2_dbRef (&iedModel_LD1_AnInGGIO1_AnIn2_dbRef)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn2_zeroDbRef (&iedModel_LD1_AnInGGIO1_AnIn2_zeroDbRef)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn3 (&iedModel_LD1_AnInGGIO1_AnIn3)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn3_instMag (&iedModel_LD1_AnInGGIO1_AnIn3_instMag)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn3_instMag_f (&iedModel_LD1_AnInGGIO1_AnIn3_instMag_f)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn3_mag (&iedModel_LD1_AnInGGIO1_AnIn3_mag)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn3_mag_f (&iedModel_LD1_AnInGGIO1_AnIn3_mag_f)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn3_q (&iedModel_LD1_AnInGGIO1_AnIn3_q)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn3_t (&iedModel_LD1_AnInGGIO1_AnIn3_t)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn3_db (&iedModel_LD1_AnInGGIO1_AnIn3_db)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn3_zeroDb (&iedModel_LD1_AnInGGIO1_AnIn3_zeroDb)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn3_rangeC (&iedModel_LD1_AnInGGIO1_AnIn3_rangeC)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn3_rangeC_min (&iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn3_rangeC_min_f (&iedModel_LD1_AnInGGIO1_AnIn3_rangeC_min_f)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn3_rangeC_max (&iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn3_rangeC_max_f (&iedModel_LD1_AnInGGIO1_AnIn3_rangeC_max_f)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn4 (&iedModel_LD1_AnInGGIO1_AnIn4)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn4_instMag (&iedModel_LD1_AnInGGIO1_AnIn4_instMag)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn4_instMag_f (&iedModel_LD1_AnInGGIO1_AnIn4_instMag_f)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn4_mag (&iedModel_LD1_AnInGGIO1_AnIn4_mag)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn4_mag_f (&iedModel_LD1_AnInGGIO1_AnIn4_mag_f)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn4_q (&iedModel_LD1_AnInGGIO1_AnIn4_q)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn4_t (&iedModel_LD1_AnInGGIO1_AnIn4_t)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn4_db (&iedModel_LD1_AnInGGIO1_AnIn4_db)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn4_zeroDb (&iedModel_LD1_AnInGGIO1_AnIn4_zeroDb)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn4_rangeC (&iedModel_LD1_AnInGGIO1_AnIn4_rangeC)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn4_rangeC_min (&iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn4_rangeC_min_f (&iedModel_LD1_AnInGGIO1_AnIn4_rangeC_min_f)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn4_rangeC_max (&iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max)
+#define IEDMODEL_LD1_AnInGGIO1_AnIn4_rangeC_max_f (&iedModel_LD1_AnInGGIO1_AnIn4_rangeC_max_f)
+
+#endif /* STATIC_MODEL_H_ */
+