diff --git a/dotnet/files/FileServicesExample.cs b/dotnet/files/FileServicesExample.cs
index 6aed827a..f77743fc 100644
--- a/dotnet/files/FileServicesExample.cs
+++ b/dotnet/files/FileServicesExample.cs
@@ -7,6 +7,10 @@ using System.IO;
namespace files
{
+ ///
+ /// This example connects to an IEC 61850 device, list the available files, and then
+ /// tries to read the file "IEDSERVER.BIN" from the server.
+ ///
class MainClass
{
public static void printFiles (IedConnection con, string prefix, string parent)
@@ -14,11 +18,11 @@ namespace files
List files = con.GetFileDirectory (parent);
foreach (FileDirectoryEntry file in files) {
- Console.WriteLine(prefix + file.GetFileName() + "\t" + file.GetFileSize() + "\t" +
- MmsValue.MsTimeToDateTimeOffset(file.GetLastModified()));
+ Console.WriteLine (prefix + file.GetFileName () + "\t" + file.GetFileSize () + "\t" +
+ MmsValue.MsTimeToDateTimeOffset (file.GetLastModified ()));
- if (file.GetFileName().EndsWith("/")) {
- printFiles (con, prefix + " ", parent + file.GetFileName());
+ if (file.GetFileName ().EndsWith ("/")) {
+ printFiles (con, prefix + " ", parent + file.GetFileName ());
}
}
@@ -26,64 +30,60 @@ namespace files
static bool getFileHandler (object parameter, byte[] data)
{
- Console.WriteLine("received " + data.Length + " bytes");
+ Console.WriteLine ("received " + data.Length + " bytes");
- BinaryWriter binWriter = (BinaryWriter) parameter;
+ BinaryWriter binWriter = (BinaryWriter)parameter;
- binWriter.Write(data);
+ binWriter.Write (data);
return true;
}
-
public static void Main (string[] args)
{
IedConnection con = new IedConnection ();
- string hostname;
+ string hostname;
- if (args.Length > 0)
- hostname = args[0];
- else
- hostname = "10.0.2.2";
+ if (args.Length > 0)
+ hostname = args [0];
+ else
+ hostname = "10.0.2.2";
- Console.WriteLine("Connect to " + hostname);
+ Console.WriteLine ("Connect to " + hostname);
- try
- {
- con.Connect(hostname, 102);
+ try {
+ con.Connect (hostname, 102);
Console.WriteLine ("Files in server root directory:");
- List serverDirectory = con.GetServerDirectory(true);
+ List serverDirectory = con.GetServerDirectory (true);
foreach (string entry in serverDirectory) {
- Console.WriteLine(entry);
+ Console.WriteLine (entry);
}
- Console.WriteLine();
+ Console.WriteLine ();
Console.WriteLine ("File directory tree at server:");
- printFiles(con, "", "");
- Console.WriteLine();
+ printFiles (con, "", "");
+ Console.WriteLine ();
string filename = "IEDSERVER.BIN";
- Console.WriteLine("Download file " + filename);
+ Console.WriteLine ("Download file " + filename);
/* Download file from server and write it to a new local file */
- FileStream fs = new FileStream(filename, FileMode.Create);
- BinaryWriter w = new BinaryWriter(fs);
+ FileStream fs = new FileStream (filename, FileMode.Create);
+ BinaryWriter w = new BinaryWriter (fs);
- con.GetFile(filename, new IedConnection.GetFileHandler(getFileHandler), w);
+ con.GetFile (filename, new IedConnection.GetFileHandler (getFileHandler), w);
- fs.Close();
+ fs.Close ();
- con.Abort();
- }
- catch (IedConnectionException e)
- {
- Console.WriteLine(e.Message);
- }
+ con.Abort ();
+ } catch (IedConnectionException e) {
+ Console.WriteLine (e.Message);
+ }
// release all resources - do NOT use the object after this call!!
con.Dispose ();
diff --git a/examples/server_example_basic_io/Makefile b/examples/server_example_basic_io/Makefile
index ed1ce6a1..f27d9f65 100644
--- a/examples/server_example_basic_io/Makefile
+++ b/examples/server_example_basic_io/Makefile
@@ -4,7 +4,7 @@ PROJECT_BINARY_NAME = server_example_basic_io
PROJECT_SOURCES = server_example_basic_io.c
PROJECT_SOURCES += static_model.c
-PROJECT_ICD_FILE = simpleIO_direct_control.icd
+PROJECT_ICD_FILE = simpleIO_direct_control.cid
include $(LIBIEC_HOME)/make/target_system.mk
include $(LIBIEC_HOME)/make/stack_includes.mk
diff --git a/examples/server_example_basic_io/simpleIO_sbo_control.icd b/examples/server_example_basic_io/simpleIO_direct_control.cid
similarity index 55%
rename from examples/server_example_basic_io/simpleIO_sbo_control.icd
rename to examples/server_example_basic_io/simpleIO_direct_control.cid
index 5f65ff6a..cb763780 100644
--- a/examples/server_example_basic_io/simpleIO_sbo_control.icd
+++ b/examples/server_example_basic_io/simpleIO_direct_control.cid
@@ -8,12 +8,15 @@
10
- 10.0.0.2
+ 0.0.0.0
255.255.255.0
- 10.0.0.1
- 0001
+ 192.168.2.1
+ 1,3,9999,33
+ 33
00000001
0001
+ 0001
+ 102
@@ -39,73 +42,126 @@
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ on
+
status-only
+
+
+ on
+
+
+
+
+ ok
+
+
+
+
+
+ MZ Automation
+
+
+ 1.3.0
+
+
+ libiec61850 server example
+
+
-
+
+
+
+ ok
+
+
+
+
+ on
+
status-only
+
+
+ on
+
+
+
+
+ ok
+
+
- sbo-with-normal-security
+ direct-with-normal-security
-
- 30000
-
-
- operate-once
-
- sbo-with-normal-security
+ direct-with-normal-security
-
- 30000
-
-
- operate-once
-
- sbo-with-normal-security
+ direct-with-normal-security
-
- 30000
-
-
- operate-once
-
- sbo-with-normal-security
+ direct-with-normal-security
-
- 30000
-
-
- operate-once
-
@@ -113,45 +169,58 @@
+
-
-
-
+
+
+
+
-
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
@@ -159,88 +228,47 @@
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -259,6 +287,20 @@
+
+ on
+ blocked
+ test
+ test/blocked
+ off
+
+
+
+ ok
+ warning
+ alarm
+
+
status-only
direct-with-normal-security
@@ -267,11 +309,6 @@
sbo-with-enhanced-security
-
- operate-once
- operate-many
-
-
not-supported
bay-control
@@ -283,5 +320,6 @@
maintenance
process
+
diff --git a/examples/server_example_basic_io/simpleIO_direct_control.icd b/examples/server_example_basic_io/simpleIO_direct_control.icd
index ce3d8cce..258e9ae6 100644
--- a/examples/server_example_basic_io/simpleIO_direct_control.icd
+++ b/examples/server_example_basic_io/simpleIO_direct_control.icd
@@ -2,23 +2,8 @@
-
-
- Station bus
- 10
-
-
- 10.0.0.2
- 255.255.255.0
- 10.0.0.1
- 0001
- 00000001
- 0001
-
-
-
-
-
+
+
@@ -67,13 +52,13 @@
-
+
-
+
@@ -82,44 +67,64 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+ on
+
status-only
+
+
+ on
+
+
+
+
+ ok
+
+
MZ Automation
- 0.7.3
+ 1.3.0
libiec61850 server example
-
+
+
+
+ ok
+
+
+
+
+ on
+
status-only
+
+
+ on
+
+
+
+
+ ok
+
+
direct-with-normal-security
@@ -146,46 +151,58 @@
+
-
-
-
+
+
+
+
-
+
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
@@ -193,24 +210,29 @@
+
+
+
+
+
@@ -220,39 +242,24 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
@@ -261,6 +268,21 @@
+
+
+ on
+ blocked
+ test
+ test/blocked
+ off
+
+
+
+ ok
+ warning
+ alarm
+
+
status-only
direct-with-normal-security
@@ -268,6 +290,7 @@
direct-with-enhanced-security
sbo-with-enhanced-security
+
not-supported
bay-control
@@ -279,5 +302,6 @@
maintenance
process
+
diff --git a/examples/server_example_basic_io/static_model.c b/examples/server_example_basic_io/static_model.c
index a1c2383d..63ef37bb 100644
--- a/examples/server_example_basic_io/static_model.c
+++ b/examples/server_example_basic_io/static_model.c
@@ -1,7 +1,7 @@
/*
* static_model.c
*
- * automatically generated from simpleIO_direct_control.icd
+ * automatically generated from simpleIO_direct_control.cid
*/
#include "static_model.h"
@@ -248,7 +248,7 @@ DataAttribute iedModel_GenericIO_LLN0_Mod_stVal = {
NULL,
0,
IEC61850_FC_ST,
- IEC61850_INT32,
+ IEC61850_ENUMERATED,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
@@ -309,7 +309,7 @@ DataAttribute iedModel_GenericIO_LLN0_Beh_stVal = {
NULL,
0,
IEC61850_FC_ST,
- IEC61850_INT32,
+ IEC61850_ENUMERATED,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
@@ -357,7 +357,7 @@ DataAttribute iedModel_GenericIO_LLN0_Health_stVal = {
NULL,
0,
IEC61850_FC_ST,
- IEC61850_INT32,
+ IEC61850_ENUMERATED,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
@@ -509,7 +509,7 @@ DataAttribute iedModel_GenericIO_LPHD1_PhyHealth_stVal = {
NULL,
0,
IEC61850_FC_ST,
- IEC61850_INT32,
+ IEC61850_ENUMERATED,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
@@ -601,10 +601,23 @@ DataObject iedModel_GenericIO_GGIO1_Mod = {
"Mod",
(ModelNode*) &iedModel_GenericIO_GGIO1,
(ModelNode*) &iedModel_GenericIO_GGIO1_Beh,
- (ModelNode*) &iedModel_GenericIO_GGIO1_Mod_q,
+ (ModelNode*) &iedModel_GenericIO_GGIO1_Mod_stVal,
0
};
+DataAttribute iedModel_GenericIO_GGIO1_Mod_stVal = {
+ DataAttributeModelType,
+ "stVal",
+ (ModelNode*) &iedModel_GenericIO_GGIO1_Mod,
+ (ModelNode*) &iedModel_GenericIO_GGIO1_Mod_q,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_ENUMERATED,
+ 0 + TRG_OPT_DATA_CHANGED,
+ NULL,
+ 0};
+
DataAttribute iedModel_GenericIO_GGIO1_Mod_q = {
DataAttributeModelType,
"q",
@@ -661,7 +674,7 @@ DataAttribute iedModel_GenericIO_GGIO1_Beh_stVal = {
NULL,
0,
IEC61850_FC_ST,
- IEC61850_INT32,
+ IEC61850_ENUMERATED,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
@@ -709,7 +722,7 @@ DataAttribute iedModel_GenericIO_GGIO1_Health_stVal = {
NULL,
0,
IEC61850_FC_ST,
- IEC61850_INT32,
+ IEC61850_ENUMERATED,
0 + TRG_OPT_DATA_CHANGED,
NULL,
0};
@@ -1037,10 +1050,62 @@ DataObject iedModel_GenericIO_GGIO1_SPCSO1 = {
"SPCSO1",
(ModelNode*) &iedModel_GenericIO_GGIO1,
(ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO2,
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1_stVal,
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1_origin,
0
};
+DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_origin = {
+ DataAttributeModelType,
+ "origin",
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1,
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1_ctlNum,
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1_origin_orCat,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_CONSTRUCTED,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_origin_orCat = {
+ DataAttributeModelType,
+ "orCat",
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1_origin,
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1_origin_orIdent,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_ENUMERATED,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_origin_orIdent = {
+ DataAttributeModelType,
+ "orIdent",
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1_origin,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_OCTET_STRING_64,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_ctlNum = {
+ DataAttributeModelType,
+ "ctlNum",
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1,
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1_stVal,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_INT8U,
+ 0,
+ NULL,
+ 0};
+
DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_stVal = {
DataAttributeModelType,
"stVal",
@@ -1058,7 +1123,7 @@ DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_q = {
DataAttributeModelType,
"q",
(ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1,
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1_Oper,
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1_t,
NULL,
0,
IEC61850_FC_ST,
@@ -1067,11 +1132,37 @@ DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_q = {
NULL,
0};
+DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_t = {
+ DataAttributeModelType,
+ "t",
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1,
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1_ctlModel,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_TIMESTAMP,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_ctlModel = {
+ DataAttributeModelType,
+ "ctlModel",
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1,
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1_Oper,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_ENUMERATED,
+ 0,
+ NULL,
+ 0};
+
DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_Oper = {
DataAttributeModelType,
"Oper",
(ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1,
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1_ctlModel,
+ NULL,
(ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1_Oper_ctlVal,
0,
IEC61850_FC_CO,
@@ -1184,32 +1275,6 @@ DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_Oper_Check = {
NULL,
0};
-DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_ctlModel = {
- DataAttributeModelType,
- "ctlModel",
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1,
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1_t,
- NULL,
- 0,
- IEC61850_FC_CF,
- IEC61850_ENUMERATED,
- 0,
- NULL,
- 0};
-
-DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_t = {
- DataAttributeModelType,
- "t",
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO1,
- NULL,
- NULL,
- 0,
- IEC61850_FC_ST,
- IEC61850_TIMESTAMP,
- 0,
- NULL,
- 0};
-
DataObject iedModel_GenericIO_GGIO1_SPCSO2 = {
DataObjectModelType,
"SPCSO2",
@@ -1571,62 +1636,10 @@ DataObject iedModel_GenericIO_GGIO1_SPCSO4 = {
"SPCSO4",
(ModelNode*) &iedModel_GenericIO_GGIO1,
(ModelNode*) &iedModel_GenericIO_GGIO1_Ind1,
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4_origin,
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4_stVal,
0
};
-DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_origin = {
- DataAttributeModelType,
- "origin",
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4,
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4_ctlNum,
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4_origin_orCat,
- 0,
- IEC61850_FC_ST,
- IEC61850_CONSTRUCTED,
- 0,
- NULL,
- 0};
-
-DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_origin_orCat = {
- DataAttributeModelType,
- "orCat",
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4_origin,
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4_origin_orIdent,
- NULL,
- 0,
- IEC61850_FC_ST,
- IEC61850_ENUMERATED,
- 0,
- NULL,
- 0};
-
-DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_origin_orIdent = {
- DataAttributeModelType,
- "orIdent",
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4_origin,
- NULL,
- NULL,
- 0,
- IEC61850_FC_ST,
- IEC61850_OCTET_STRING_64,
- 0,
- NULL,
- 0};
-
-DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_ctlNum = {
- DataAttributeModelType,
- "ctlNum",
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4,
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4_stVal,
- NULL,
- 0,
- IEC61850_FC_ST,
- IEC61850_INT8U,
- 0,
- NULL,
- 0};
-
DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_stVal = {
DataAttributeModelType,
"stVal",
@@ -1644,7 +1657,7 @@ DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_q = {
DataAttributeModelType,
"q",
(ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4,
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4_t,
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4_Oper,
NULL,
0,
IEC61850_FC_ST,
@@ -1653,37 +1666,11 @@ DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_q = {
NULL,
0};
-DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_t = {
- DataAttributeModelType,
- "t",
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4,
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4_ctlModel,
- NULL,
- 0,
- IEC61850_FC_ST,
- IEC61850_TIMESTAMP,
- 0,
- NULL,
- 0};
-
-DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_ctlModel = {
- DataAttributeModelType,
- "ctlModel",
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4,
- (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4_Oper,
- NULL,
- 0,
- IEC61850_FC_CF,
- IEC61850_ENUMERATED,
- 0,
- NULL,
- 0};
-
DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_Oper = {
DataAttributeModelType,
"Oper",
(ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4,
- NULL,
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4_ctlModel,
(ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4_Oper_ctlVal,
0,
IEC61850_FC_CO,
@@ -1796,6 +1783,32 @@ DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_Oper_Check = {
NULL,
0};
+DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_ctlModel = {
+ DataAttributeModelType,
+ "ctlModel",
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4,
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4_t,
+ NULL,
+ 0,
+ IEC61850_FC_CF,
+ IEC61850_ENUMERATED,
+ 0,
+ NULL,
+ 0};
+
+DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_t = {
+ DataAttributeModelType,
+ "t",
+ (ModelNode*) &iedModel_GenericIO_GGIO1_SPCSO4,
+ NULL,
+ NULL,
+ 0,
+ IEC61850_FC_ST,
+ IEC61850_TIMESTAMP,
+ 0,
+ NULL,
+ 0};
+
DataObject iedModel_GenericIO_GGIO1_Ind1 = {
DataObjectModelType,
"Ind1",
@@ -1996,10 +2009,10 @@ extern ReportControlBlock iedModel_GenericIO_LLN0_report4;
extern ReportControlBlock iedModel_GenericIO_LLN0_report5;
extern ReportControlBlock iedModel_GenericIO_LLN0_report6;
-ReportControlBlock iedModel_GenericIO_LLN0_report0 = {&iedModel_GenericIO_LLN0, "EventsRCB01", "Events1", false, "Events", 4294967295, 24, 239, 50, 1000, &iedModel_GenericIO_LLN0_report1};
-ReportControlBlock iedModel_GenericIO_LLN0_report1 = {&iedModel_GenericIO_LLN0, "EventsIndexed01", "Events2", false, "Events", 1, 24, 239, 50, 1000, &iedModel_GenericIO_LLN0_report2};
-ReportControlBlock iedModel_GenericIO_LLN0_report2 = {&iedModel_GenericIO_LLN0, "EventsIndexed02", "Events2", false, "Events", 1, 24, 239, 50, 1000, &iedModel_GenericIO_LLN0_report3};
-ReportControlBlock iedModel_GenericIO_LLN0_report3 = {&iedModel_GenericIO_LLN0, "EventsIndexed03", "Events2", false, "Events", 1, 24, 239, 50, 1000, &iedModel_GenericIO_LLN0_report4};
+ReportControlBlock iedModel_GenericIO_LLN0_report0 = {&iedModel_GenericIO_LLN0, "EventsRCB01", "Events1", false, "Events", 4294967295, 24, 175, 50, 1000, &iedModel_GenericIO_LLN0_report1};
+ReportControlBlock iedModel_GenericIO_LLN0_report1 = {&iedModel_GenericIO_LLN0, "EventsIndexed01", "Events2", false, "Events", 1, 24, 175, 50, 1000, &iedModel_GenericIO_LLN0_report2};
+ReportControlBlock iedModel_GenericIO_LLN0_report2 = {&iedModel_GenericIO_LLN0, "EventsIndexed02", "Events2", false, "Events", 1, 24, 175, 50, 1000, &iedModel_GenericIO_LLN0_report3};
+ReportControlBlock iedModel_GenericIO_LLN0_report3 = {&iedModel_GenericIO_LLN0, "EventsIndexed03", "Events2", false, "Events", 1, 24, 175, 50, 1000, &iedModel_GenericIO_LLN0_report4};
ReportControlBlock iedModel_GenericIO_LLN0_report4 = {&iedModel_GenericIO_LLN0, "Measurements01", "Measurements", true, "Measurements", 1, 16, 239, 50, 1000, &iedModel_GenericIO_LLN0_report5};
ReportControlBlock iedModel_GenericIO_LLN0_report5 = {&iedModel_GenericIO_LLN0, "Measurements02", "Measurements", true, "Measurements", 1, 16, 239, 50, 1000, &iedModel_GenericIO_LLN0_report6};
ReportControlBlock iedModel_GenericIO_LLN0_report6 = {&iedModel_GenericIO_LLN0, "Measurements03", "Measurements", true, "Measurements", 1, 16, 239, 50, 1000, NULL};
@@ -2007,15 +2020,7 @@ ReportControlBlock iedModel_GenericIO_LLN0_report6 = {&iedModel_GenericIO_LLN0,
-extern LogControlBlock iedModel_GenericIO_LLN0_lcb0;
-extern LogControlBlock iedModel_GenericIO_LLN0_lcb1;
-LogControlBlock iedModel_GenericIO_LLN0_lcb0 = {&iedModel_GenericIO_LLN0, "EventLog", "Events", "GenericIO/LLN0$EventLog", 3, 0, true, true, &iedModel_GenericIO_LLN0_lcb1};
-LogControlBlock iedModel_GenericIO_LLN0_lcb1 = {&iedModel_GenericIO_LLN0, "GeneralLog", NULL, NULL, 3, 0, true, true, NULL};
-extern Log iedModel_GenericIO_LLN0_log0;
-extern Log iedModel_GenericIO_LLN0_log1;
-Log iedModel_GenericIO_LLN0_log0 = {&iedModel_GenericIO_LLN0, "GeneralLog", &iedModel_GenericIO_LLN0_log1};
-Log iedModel_GenericIO_LLN0_log1 = {&iedModel_GenericIO_LLN0, "EventLog", NULL};
IedModel iedModel = {
@@ -2026,8 +2031,8 @@ IedModel iedModel = {
NULL,
NULL,
NULL,
- &iedModel_GenericIO_LLN0_lcb0,
- &iedModel_GenericIO_LLN0_log0,
+ NULL,
+ NULL,
initializeValues
};
@@ -2035,16 +2040,30 @@ static void
initializeValues()
{
+iedModel_GenericIO_LLN0_Mod_stVal.mmsValue = MmsValue_newIntegerFromInt32(1);
+
iedModel_GenericIO_LLN0_Mod_ctlModel.mmsValue = MmsValue_newIntegerFromInt32(0);
+iedModel_GenericIO_LLN0_Beh_stVal.mmsValue = MmsValue_newIntegerFromInt32(1);
+
+iedModel_GenericIO_LLN0_Health_stVal.mmsValue = MmsValue_newIntegerFromInt32(1);
+
iedModel_GenericIO_LLN0_NamPlt_vendor.mmsValue = MmsValue_newVisibleString("MZ Automation");
-iedModel_GenericIO_LLN0_NamPlt_swRev.mmsValue = MmsValue_newVisibleString("0.7.3");
+iedModel_GenericIO_LLN0_NamPlt_swRev.mmsValue = MmsValue_newVisibleString("1.3.0");
iedModel_GenericIO_LLN0_NamPlt_d.mmsValue = MmsValue_newVisibleString("libiec61850 server example");
+iedModel_GenericIO_LPHD1_PhyHealth_stVal.mmsValue = MmsValue_newIntegerFromInt32(1);
+
+iedModel_GenericIO_GGIO1_Mod_stVal.mmsValue = MmsValue_newIntegerFromInt32(1);
+
iedModel_GenericIO_GGIO1_Mod_ctlModel.mmsValue = MmsValue_newIntegerFromInt32(0);
+iedModel_GenericIO_GGIO1_Beh_stVal.mmsValue = MmsValue_newIntegerFromInt32(1);
+
+iedModel_GenericIO_GGIO1_Health_stVal.mmsValue = MmsValue_newIntegerFromInt32(1);
+
iedModel_GenericIO_GGIO1_SPCSO1_ctlModel.mmsValue = MmsValue_newIntegerFromInt32(1);
iedModel_GenericIO_GGIO1_SPCSO2_ctlModel.mmsValue = MmsValue_newIntegerFromInt32(1);
diff --git a/examples/server_example_basic_io/static_model.h b/examples/server_example_basic_io/static_model.h
index 938d789a..b6030e51 100644
--- a/examples/server_example_basic_io/static_model.h
+++ b/examples/server_example_basic_io/static_model.h
@@ -1,7 +1,7 @@
/*
* static_model.h
*
- * automatically generated from simpleIO_direct_control.icd
+ * automatically generated from simpleIO_direct_control.cid
*/
#ifndef STATIC_MODEL_H_
@@ -45,6 +45,7 @@ extern DataAttribute iedModel_GenericIO_LPHD1_Proxy_q;
extern DataAttribute iedModel_GenericIO_LPHD1_Proxy_t;
extern LogicalNode iedModel_GenericIO_GGIO1;
extern DataObject iedModel_GenericIO_GGIO1_Mod;
+extern DataAttribute iedModel_GenericIO_GGIO1_Mod_stVal;
extern DataAttribute iedModel_GenericIO_GGIO1_Mod_q;
extern DataAttribute iedModel_GenericIO_GGIO1_Mod_t;
extern DataAttribute iedModel_GenericIO_GGIO1_Mod_ctlModel;
@@ -81,8 +82,14 @@ extern DataAttribute iedModel_GenericIO_GGIO1_AnIn4_mag_f;
extern DataAttribute iedModel_GenericIO_GGIO1_AnIn4_q;
extern DataAttribute iedModel_GenericIO_GGIO1_AnIn4_t;
extern DataObject iedModel_GenericIO_GGIO1_SPCSO1;
+extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_origin;
+extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_origin_orCat;
+extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_origin_orIdent;
+extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_ctlNum;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_stVal;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_q;
+extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_t;
+extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_ctlModel;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_Oper;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_Oper_ctlVal;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_Oper_origin;
@@ -92,8 +99,6 @@ extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_Oper_ctlNum;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_Oper_T;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_Oper_Test;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_Oper_Check;
-extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_ctlModel;
-extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_t;
extern DataObject iedModel_GenericIO_GGIO1_SPCSO2;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO2_stVal;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO2_q;
@@ -123,14 +128,8 @@ extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO3_Oper_Check;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO3_ctlModel;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO3_t;
extern DataObject iedModel_GenericIO_GGIO1_SPCSO4;
-extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_origin;
-extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_origin_orCat;
-extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_origin_orIdent;
-extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_ctlNum;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_stVal;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_q;
-extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_t;
-extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_ctlModel;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_Oper;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_Oper_ctlVal;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_Oper_origin;
@@ -140,6 +139,8 @@ extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_Oper_ctlNum;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_Oper_T;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_Oper_Test;
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_Oper_Check;
+extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_ctlModel;
+extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_t;
extern DataObject iedModel_GenericIO_GGIO1_Ind1;
extern DataAttribute iedModel_GenericIO_GGIO1_Ind1_stVal;
extern DataAttribute iedModel_GenericIO_GGIO1_Ind1_q;
@@ -193,6 +194,7 @@ extern DataAttribute iedModel_GenericIO_GGIO1_Ind4_t;
#define IEDMODEL_GenericIO_LPHD1_Proxy_t (&iedModel_GenericIO_LPHD1_Proxy_t)
#define IEDMODEL_GenericIO_GGIO1 (&iedModel_GenericIO_GGIO1)
#define IEDMODEL_GenericIO_GGIO1_Mod (&iedModel_GenericIO_GGIO1_Mod)
+#define IEDMODEL_GenericIO_GGIO1_Mod_stVal (&iedModel_GenericIO_GGIO1_Mod_stVal)
#define IEDMODEL_GenericIO_GGIO1_Mod_q (&iedModel_GenericIO_GGIO1_Mod_q)
#define IEDMODEL_GenericIO_GGIO1_Mod_t (&iedModel_GenericIO_GGIO1_Mod_t)
#define IEDMODEL_GenericIO_GGIO1_Mod_ctlModel (&iedModel_GenericIO_GGIO1_Mod_ctlModel)
@@ -229,8 +231,14 @@ extern DataAttribute iedModel_GenericIO_GGIO1_Ind4_t;
#define IEDMODEL_GenericIO_GGIO1_AnIn4_q (&iedModel_GenericIO_GGIO1_AnIn4_q)
#define IEDMODEL_GenericIO_GGIO1_AnIn4_t (&iedModel_GenericIO_GGIO1_AnIn4_t)
#define IEDMODEL_GenericIO_GGIO1_SPCSO1 (&iedModel_GenericIO_GGIO1_SPCSO1)
+#define IEDMODEL_GenericIO_GGIO1_SPCSO1_origin (&iedModel_GenericIO_GGIO1_SPCSO1_origin)
+#define IEDMODEL_GenericIO_GGIO1_SPCSO1_origin_orCat (&iedModel_GenericIO_GGIO1_SPCSO1_origin_orCat)
+#define IEDMODEL_GenericIO_GGIO1_SPCSO1_origin_orIdent (&iedModel_GenericIO_GGIO1_SPCSO1_origin_orIdent)
+#define IEDMODEL_GenericIO_GGIO1_SPCSO1_ctlNum (&iedModel_GenericIO_GGIO1_SPCSO1_ctlNum)
#define IEDMODEL_GenericIO_GGIO1_SPCSO1_stVal (&iedModel_GenericIO_GGIO1_SPCSO1_stVal)
#define IEDMODEL_GenericIO_GGIO1_SPCSO1_q (&iedModel_GenericIO_GGIO1_SPCSO1_q)
+#define IEDMODEL_GenericIO_GGIO1_SPCSO1_t (&iedModel_GenericIO_GGIO1_SPCSO1_t)
+#define IEDMODEL_GenericIO_GGIO1_SPCSO1_ctlModel (&iedModel_GenericIO_GGIO1_SPCSO1_ctlModel)
#define IEDMODEL_GenericIO_GGIO1_SPCSO1_Oper (&iedModel_GenericIO_GGIO1_SPCSO1_Oper)
#define IEDMODEL_GenericIO_GGIO1_SPCSO1_Oper_ctlVal (&iedModel_GenericIO_GGIO1_SPCSO1_Oper_ctlVal)
#define IEDMODEL_GenericIO_GGIO1_SPCSO1_Oper_origin (&iedModel_GenericIO_GGIO1_SPCSO1_Oper_origin)
@@ -240,8 +248,6 @@ extern DataAttribute iedModel_GenericIO_GGIO1_Ind4_t;
#define IEDMODEL_GenericIO_GGIO1_SPCSO1_Oper_T (&iedModel_GenericIO_GGIO1_SPCSO1_Oper_T)
#define IEDMODEL_GenericIO_GGIO1_SPCSO1_Oper_Test (&iedModel_GenericIO_GGIO1_SPCSO1_Oper_Test)
#define IEDMODEL_GenericIO_GGIO1_SPCSO1_Oper_Check (&iedModel_GenericIO_GGIO1_SPCSO1_Oper_Check)
-#define IEDMODEL_GenericIO_GGIO1_SPCSO1_ctlModel (&iedModel_GenericIO_GGIO1_SPCSO1_ctlModel)
-#define IEDMODEL_GenericIO_GGIO1_SPCSO1_t (&iedModel_GenericIO_GGIO1_SPCSO1_t)
#define IEDMODEL_GenericIO_GGIO1_SPCSO2 (&iedModel_GenericIO_GGIO1_SPCSO2)
#define IEDMODEL_GenericIO_GGIO1_SPCSO2_stVal (&iedModel_GenericIO_GGIO1_SPCSO2_stVal)
#define IEDMODEL_GenericIO_GGIO1_SPCSO2_q (&iedModel_GenericIO_GGIO1_SPCSO2_q)
@@ -271,14 +277,8 @@ extern DataAttribute iedModel_GenericIO_GGIO1_Ind4_t;
#define IEDMODEL_GenericIO_GGIO1_SPCSO3_ctlModel (&iedModel_GenericIO_GGIO1_SPCSO3_ctlModel)
#define IEDMODEL_GenericIO_GGIO1_SPCSO3_t (&iedModel_GenericIO_GGIO1_SPCSO3_t)
#define IEDMODEL_GenericIO_GGIO1_SPCSO4 (&iedModel_GenericIO_GGIO1_SPCSO4)
-#define IEDMODEL_GenericIO_GGIO1_SPCSO4_origin (&iedModel_GenericIO_GGIO1_SPCSO4_origin)
-#define IEDMODEL_GenericIO_GGIO1_SPCSO4_origin_orCat (&iedModel_GenericIO_GGIO1_SPCSO4_origin_orCat)
-#define IEDMODEL_GenericIO_GGIO1_SPCSO4_origin_orIdent (&iedModel_GenericIO_GGIO1_SPCSO4_origin_orIdent)
-#define IEDMODEL_GenericIO_GGIO1_SPCSO4_ctlNum (&iedModel_GenericIO_GGIO1_SPCSO4_ctlNum)
#define IEDMODEL_GenericIO_GGIO1_SPCSO4_stVal (&iedModel_GenericIO_GGIO1_SPCSO4_stVal)
#define IEDMODEL_GenericIO_GGIO1_SPCSO4_q (&iedModel_GenericIO_GGIO1_SPCSO4_q)
-#define IEDMODEL_GenericIO_GGIO1_SPCSO4_t (&iedModel_GenericIO_GGIO1_SPCSO4_t)
-#define IEDMODEL_GenericIO_GGIO1_SPCSO4_ctlModel (&iedModel_GenericIO_GGIO1_SPCSO4_ctlModel)
#define IEDMODEL_GenericIO_GGIO1_SPCSO4_Oper (&iedModel_GenericIO_GGIO1_SPCSO4_Oper)
#define IEDMODEL_GenericIO_GGIO1_SPCSO4_Oper_ctlVal (&iedModel_GenericIO_GGIO1_SPCSO4_Oper_ctlVal)
#define IEDMODEL_GenericIO_GGIO1_SPCSO4_Oper_origin (&iedModel_GenericIO_GGIO1_SPCSO4_Oper_origin)
@@ -288,6 +288,8 @@ extern DataAttribute iedModel_GenericIO_GGIO1_Ind4_t;
#define IEDMODEL_GenericIO_GGIO1_SPCSO4_Oper_T (&iedModel_GenericIO_GGIO1_SPCSO4_Oper_T)
#define IEDMODEL_GenericIO_GGIO1_SPCSO4_Oper_Test (&iedModel_GenericIO_GGIO1_SPCSO4_Oper_Test)
#define IEDMODEL_GenericIO_GGIO1_SPCSO4_Oper_Check (&iedModel_GenericIO_GGIO1_SPCSO4_Oper_Check)
+#define IEDMODEL_GenericIO_GGIO1_SPCSO4_ctlModel (&iedModel_GenericIO_GGIO1_SPCSO4_ctlModel)
+#define IEDMODEL_GenericIO_GGIO1_SPCSO4_t (&iedModel_GenericIO_GGIO1_SPCSO4_t)
#define IEDMODEL_GenericIO_GGIO1_Ind1 (&iedModel_GenericIO_GGIO1_Ind1)
#define IEDMODEL_GenericIO_GGIO1_Ind1_stVal (&iedModel_GenericIO_GGIO1_Ind1_stVal)
#define IEDMODEL_GenericIO_GGIO1_Ind1_q (&iedModel_GenericIO_GGIO1_Ind1_q)