- added support for multiple data models in static model generator
This commit is contained in:
parent
90c9484e8d
commit
5547adf853
3 changed files with 139 additions and 237 deletions
|
@ -3,194 +3,51 @@
|
|||
*
|
||||
* automatically generated from simpleIO_direct_control.icd
|
||||
*/
|
||||
#include <stdlib.h>
|
||||
#include "iec61850_model.h"
|
||||
#include "static_model.h"
|
||||
|
||||
extern IedModel iedModel;
|
||||
static void initializeValues();
|
||||
extern LogicalDevice iedModel_GenericIO;
|
||||
extern LogicalNode iedModel_GenericIO_LLN0;
|
||||
extern DataObject iedModel_GenericIO_LLN0_Mod;
|
||||
extern DataAttribute iedModel_GenericIO_LLN0_Mod_stVal;
|
||||
extern DataAttribute iedModel_GenericIO_LLN0_Mod_q;
|
||||
extern DataAttribute iedModel_GenericIO_LLN0_Mod_t;
|
||||
extern DataAttribute iedModel_GenericIO_LLN0_Mod_ctlModel;
|
||||
extern DataObject iedModel_GenericIO_LLN0_Beh;
|
||||
extern DataAttribute iedModel_GenericIO_LLN0_Beh_stVal;
|
||||
extern DataAttribute iedModel_GenericIO_LLN0_Beh_q;
|
||||
extern DataAttribute iedModel_GenericIO_LLN0_Beh_t;
|
||||
extern DataObject iedModel_GenericIO_LLN0_Health;
|
||||
extern DataAttribute iedModel_GenericIO_LLN0_Health_stVal;
|
||||
extern DataAttribute iedModel_GenericIO_LLN0_Health_q;
|
||||
extern DataAttribute iedModel_GenericIO_LLN0_Health_t;
|
||||
extern DataObject iedModel_GenericIO_LLN0_NamPlt;
|
||||
extern DataAttribute iedModel_GenericIO_LLN0_NamPlt_vendor;
|
||||
extern DataAttribute iedModel_GenericIO_LLN0_NamPlt_swRev;
|
||||
extern DataAttribute iedModel_GenericIO_LLN0_NamPlt_d;
|
||||
extern DataAttribute iedModel_GenericIO_LLN0_NamPlt_configRev;
|
||||
extern DataAttribute iedModel_GenericIO_LLN0_NamPlt_ldNs;
|
||||
extern LogicalNode iedModel_GenericIO_LPHD1;
|
||||
extern DataObject iedModel_GenericIO_LPHD1_PhyNam;
|
||||
extern DataAttribute iedModel_GenericIO_LPHD1_PhyNam_vendor;
|
||||
extern DataObject iedModel_GenericIO_LPHD1_PhyHealth;
|
||||
extern DataAttribute iedModel_GenericIO_LPHD1_PhyHealth_stVal;
|
||||
extern DataAttribute iedModel_GenericIO_LPHD1_PhyHealth_q;
|
||||
extern DataAttribute iedModel_GenericIO_LPHD1_PhyHealth_t;
|
||||
extern DataObject iedModel_GenericIO_LPHD1_Proxy;
|
||||
extern DataAttribute iedModel_GenericIO_LPHD1_Proxy_stVal;
|
||||
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_q;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_Mod_t;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_Mod_ctlModel;
|
||||
extern DataObject iedModel_GenericIO_GGIO1_Beh;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_Beh_stVal;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_Beh_q;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_Beh_t;
|
||||
extern DataObject iedModel_GenericIO_GGIO1_Health;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_Health_stVal;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_Health_q;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_Health_t;
|
||||
extern DataObject iedModel_GenericIO_GGIO1_NamPlt;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_NamPlt_vendor;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_NamPlt_swRev;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_NamPlt_d;
|
||||
extern DataObject iedModel_GenericIO_GGIO1_AnIn1;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_AnIn1_mag;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_AnIn1_mag_f;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_AnIn1_q;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_AnIn1_t;
|
||||
extern DataObject iedModel_GenericIO_GGIO1_AnIn2;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_AnIn2_mag;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_AnIn2_mag_f;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_AnIn2_q;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_AnIn2_t;
|
||||
extern DataObject iedModel_GenericIO_GGIO1_AnIn3;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_AnIn3_mag;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_AnIn3_mag_f;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_AnIn3_q;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_AnIn3_t;
|
||||
extern DataObject iedModel_GenericIO_GGIO1_AnIn4;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_AnIn4_mag;
|
||||
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_stVal;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_q;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_Oper;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_Oper_ctlVal;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_Oper_origin;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_Oper_origin_orCat;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO1_Oper_origin_orIdent;
|
||||
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;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO2_Oper;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO2_Oper_ctlVal;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO2_Oper_origin;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO2_Oper_origin_orCat;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO2_Oper_origin_orIdent;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO2_Oper_ctlNum;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO2_Oper_T;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO2_Oper_Test;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO2_Oper_Check;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO2_ctlModel;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO2_t;
|
||||
extern DataObject iedModel_GenericIO_GGIO1_SPCSO3;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO3_stVal;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO3_q;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO3_Oper;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO3_Oper_ctlVal;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO3_Oper_origin;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO3_Oper_origin_orCat;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO3_Oper_origin_orIdent;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO3_Oper_ctlNum;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO3_Oper_T;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO3_Oper_Test;
|
||||
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_stVal;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_q;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_Oper;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_Oper_ctlVal;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_Oper_origin;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_Oper_origin_orCat;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_SPCSO4_Oper_origin_orIdent;
|
||||
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;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_Ind1_t;
|
||||
extern DataObject iedModel_GenericIO_GGIO1_Ind2;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_Ind2_stVal;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_Ind2_q;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_Ind2_t;
|
||||
extern DataObject iedModel_GenericIO_GGIO1_Ind3;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_Ind3_stVal;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_Ind3_q;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_Ind3_t;
|
||||
extern DataObject iedModel_GenericIO_GGIO1_Ind4;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_Ind4_stVal;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_Ind4_q;
|
||||
extern DataAttribute iedModel_GenericIO_GGIO1_Ind4_t;
|
||||
|
||||
extern DataSet ds_GenericIO_LLN0_Events;
|
||||
extern DataSet ds_GenericIO_LLN0_Events2;
|
||||
extern DataSet ds_GenericIO_LLN0_Measurements;
|
||||
extern DataSet iedModelds_GenericIO_LLN0_Events;
|
||||
extern DataSet iedModelds_GenericIO_LLN0_Events2;
|
||||
extern DataSet iedModelds_GenericIO_LLN0_Measurements;
|
||||
|
||||
|
||||
extern DataSetEntry ds_GenericIO_LLN0_Events_fcda0;
|
||||
extern DataSetEntry ds_GenericIO_LLN0_Events_fcda1;
|
||||
extern DataSetEntry ds_GenericIO_LLN0_Events_fcda2;
|
||||
extern DataSetEntry ds_GenericIO_LLN0_Events_fcda3;
|
||||
extern DataSetEntry iedModelds_GenericIO_LLN0_Events_fcda0;
|
||||
extern DataSetEntry iedModelds_GenericIO_LLN0_Events_fcda1;
|
||||
extern DataSetEntry iedModelds_GenericIO_LLN0_Events_fcda2;
|
||||
extern DataSetEntry iedModelds_GenericIO_LLN0_Events_fcda3;
|
||||
|
||||
DataSetEntry ds_GenericIO_LLN0_Events_fcda0 = {
|
||||
DataSetEntry iedModelds_GenericIO_LLN0_Events_fcda0 = {
|
||||
"GenericIO",
|
||||
false,
|
||||
"GGIO1$ST$SPCSO1$stVal",
|
||||
-1,
|
||||
NULL,
|
||||
NULL,
|
||||
&ds_GenericIO_LLN0_Events_fcda1
|
||||
&iedModelds_GenericIO_LLN0_Events_fcda1
|
||||
};
|
||||
|
||||
DataSetEntry ds_GenericIO_LLN0_Events_fcda1 = {
|
||||
DataSetEntry iedModelds_GenericIO_LLN0_Events_fcda1 = {
|
||||
"GenericIO",
|
||||
false,
|
||||
"GGIO1$ST$SPCSO2$stVal",
|
||||
-1,
|
||||
NULL,
|
||||
NULL,
|
||||
&ds_GenericIO_LLN0_Events_fcda2
|
||||
&iedModelds_GenericIO_LLN0_Events_fcda2
|
||||
};
|
||||
|
||||
DataSetEntry ds_GenericIO_LLN0_Events_fcda2 = {
|
||||
DataSetEntry iedModelds_GenericIO_LLN0_Events_fcda2 = {
|
||||
"GenericIO",
|
||||
false,
|
||||
"GGIO1$ST$SPCSO3$stVal",
|
||||
-1,
|
||||
NULL,
|
||||
NULL,
|
||||
&ds_GenericIO_LLN0_Events_fcda3
|
||||
&iedModelds_GenericIO_LLN0_Events_fcda3
|
||||
};
|
||||
|
||||
DataSetEntry ds_GenericIO_LLN0_Events_fcda3 = {
|
||||
DataSetEntry iedModelds_GenericIO_LLN0_Events_fcda3 = {
|
||||
"GenericIO",
|
||||
false,
|
||||
"GGIO1$ST$SPCSO4$stVal",
|
||||
|
@ -200,50 +57,50 @@ DataSetEntry ds_GenericIO_LLN0_Events_fcda3 = {
|
|||
NULL
|
||||
};
|
||||
|
||||
DataSet ds_GenericIO_LLN0_Events = {
|
||||
DataSet iedModelds_GenericIO_LLN0_Events = {
|
||||
"GenericIO",
|
||||
"LLN0$Events",
|
||||
4,
|
||||
&ds_GenericIO_LLN0_Events_fcda0,
|
||||
&ds_GenericIO_LLN0_Events2
|
||||
&iedModelds_GenericIO_LLN0_Events_fcda0,
|
||||
&iedModelds_GenericIO_LLN0_Events2
|
||||
};
|
||||
|
||||
extern DataSetEntry ds_GenericIO_LLN0_Events2_fcda0;
|
||||
extern DataSetEntry ds_GenericIO_LLN0_Events2_fcda1;
|
||||
extern DataSetEntry ds_GenericIO_LLN0_Events2_fcda2;
|
||||
extern DataSetEntry ds_GenericIO_LLN0_Events2_fcda3;
|
||||
extern DataSetEntry iedModelds_GenericIO_LLN0_Events2_fcda0;
|
||||
extern DataSetEntry iedModelds_GenericIO_LLN0_Events2_fcda1;
|
||||
extern DataSetEntry iedModelds_GenericIO_LLN0_Events2_fcda2;
|
||||
extern DataSetEntry iedModelds_GenericIO_LLN0_Events2_fcda3;
|
||||
|
||||
DataSetEntry ds_GenericIO_LLN0_Events2_fcda0 = {
|
||||
DataSetEntry iedModelds_GenericIO_LLN0_Events2_fcda0 = {
|
||||
"GenericIO",
|
||||
false,
|
||||
"GGIO1$ST$SPCSO1",
|
||||
-1,
|
||||
NULL,
|
||||
NULL,
|
||||
&ds_GenericIO_LLN0_Events2_fcda1
|
||||
&iedModelds_GenericIO_LLN0_Events2_fcda1
|
||||
};
|
||||
|
||||
DataSetEntry ds_GenericIO_LLN0_Events2_fcda1 = {
|
||||
DataSetEntry iedModelds_GenericIO_LLN0_Events2_fcda1 = {
|
||||
"GenericIO",
|
||||
false,
|
||||
"GGIO1$ST$SPCSO2",
|
||||
-1,
|
||||
NULL,
|
||||
NULL,
|
||||
&ds_GenericIO_LLN0_Events2_fcda2
|
||||
&iedModelds_GenericIO_LLN0_Events2_fcda2
|
||||
};
|
||||
|
||||
DataSetEntry ds_GenericIO_LLN0_Events2_fcda2 = {
|
||||
DataSetEntry iedModelds_GenericIO_LLN0_Events2_fcda2 = {
|
||||
"GenericIO",
|
||||
false,
|
||||
"GGIO1$ST$SPCSO3",
|
||||
-1,
|
||||
NULL,
|
||||
NULL,
|
||||
&ds_GenericIO_LLN0_Events2_fcda3
|
||||
&iedModelds_GenericIO_LLN0_Events2_fcda3
|
||||
};
|
||||
|
||||
DataSetEntry ds_GenericIO_LLN0_Events2_fcda3 = {
|
||||
DataSetEntry iedModelds_GenericIO_LLN0_Events2_fcda3 = {
|
||||
"GenericIO",
|
||||
false,
|
||||
"GGIO1$ST$SPCSO4",
|
||||
|
@ -253,94 +110,94 @@ DataSetEntry ds_GenericIO_LLN0_Events2_fcda3 = {
|
|||
NULL
|
||||
};
|
||||
|
||||
DataSet ds_GenericIO_LLN0_Events2 = {
|
||||
DataSet iedModelds_GenericIO_LLN0_Events2 = {
|
||||
"GenericIO",
|
||||
"LLN0$Events2",
|
||||
4,
|
||||
&ds_GenericIO_LLN0_Events2_fcda0,
|
||||
&ds_GenericIO_LLN0_Measurements
|
||||
&iedModelds_GenericIO_LLN0_Events2_fcda0,
|
||||
&iedModelds_GenericIO_LLN0_Measurements
|
||||
};
|
||||
|
||||
extern DataSetEntry ds_GenericIO_LLN0_Measurements_fcda0;
|
||||
extern DataSetEntry ds_GenericIO_LLN0_Measurements_fcda1;
|
||||
extern DataSetEntry ds_GenericIO_LLN0_Measurements_fcda2;
|
||||
extern DataSetEntry ds_GenericIO_LLN0_Measurements_fcda3;
|
||||
extern DataSetEntry ds_GenericIO_LLN0_Measurements_fcda4;
|
||||
extern DataSetEntry ds_GenericIO_LLN0_Measurements_fcda5;
|
||||
extern DataSetEntry ds_GenericIO_LLN0_Measurements_fcda6;
|
||||
extern DataSetEntry ds_GenericIO_LLN0_Measurements_fcda7;
|
||||
extern DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda0;
|
||||
extern DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda1;
|
||||
extern DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda2;
|
||||
extern DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda3;
|
||||
extern DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda4;
|
||||
extern DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda5;
|
||||
extern DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda6;
|
||||
extern DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda7;
|
||||
|
||||
DataSetEntry ds_GenericIO_LLN0_Measurements_fcda0 = {
|
||||
DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda0 = {
|
||||
"GenericIO",
|
||||
false,
|
||||
"GGIO1$MX$AnIn1$mag$f",
|
||||
-1,
|
||||
NULL,
|
||||
NULL,
|
||||
&ds_GenericIO_LLN0_Measurements_fcda1
|
||||
&iedModelds_GenericIO_LLN0_Measurements_fcda1
|
||||
};
|
||||
|
||||
DataSetEntry ds_GenericIO_LLN0_Measurements_fcda1 = {
|
||||
DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda1 = {
|
||||
"GenericIO",
|
||||
false,
|
||||
"GGIO1$MX$AnIn1$q",
|
||||
-1,
|
||||
NULL,
|
||||
NULL,
|
||||
&ds_GenericIO_LLN0_Measurements_fcda2
|
||||
&iedModelds_GenericIO_LLN0_Measurements_fcda2
|
||||
};
|
||||
|
||||
DataSetEntry ds_GenericIO_LLN0_Measurements_fcda2 = {
|
||||
DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda2 = {
|
||||
"GenericIO",
|
||||
false,
|
||||
"GGIO1$MX$AnIn2$mag$f",
|
||||
-1,
|
||||
NULL,
|
||||
NULL,
|
||||
&ds_GenericIO_LLN0_Measurements_fcda3
|
||||
&iedModelds_GenericIO_LLN0_Measurements_fcda3
|
||||
};
|
||||
|
||||
DataSetEntry ds_GenericIO_LLN0_Measurements_fcda3 = {
|
||||
DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda3 = {
|
||||
"GenericIO",
|
||||
false,
|
||||
"GGIO1$MX$AnIn2$q",
|
||||
-1,
|
||||
NULL,
|
||||
NULL,
|
||||
&ds_GenericIO_LLN0_Measurements_fcda4
|
||||
&iedModelds_GenericIO_LLN0_Measurements_fcda4
|
||||
};
|
||||
|
||||
DataSetEntry ds_GenericIO_LLN0_Measurements_fcda4 = {
|
||||
DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda4 = {
|
||||
"GenericIO",
|
||||
false,
|
||||
"GGIO1$MX$AnIn3$mag$f",
|
||||
-1,
|
||||
NULL,
|
||||
NULL,
|
||||
&ds_GenericIO_LLN0_Measurements_fcda5
|
||||
&iedModelds_GenericIO_LLN0_Measurements_fcda5
|
||||
};
|
||||
|
||||
DataSetEntry ds_GenericIO_LLN0_Measurements_fcda5 = {
|
||||
DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda5 = {
|
||||
"GenericIO",
|
||||
false,
|
||||
"GGIO1$MX$AnIn3$q",
|
||||
-1,
|
||||
NULL,
|
||||
NULL,
|
||||
&ds_GenericIO_LLN0_Measurements_fcda6
|
||||
&iedModelds_GenericIO_LLN0_Measurements_fcda6
|
||||
};
|
||||
|
||||
DataSetEntry ds_GenericIO_LLN0_Measurements_fcda6 = {
|
||||
DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda6 = {
|
||||
"GenericIO",
|
||||
false,
|
||||
"GGIO1$MX$AnIn4$mag$f",
|
||||
-1,
|
||||
NULL,
|
||||
NULL,
|
||||
&ds_GenericIO_LLN0_Measurements_fcda7
|
||||
&iedModelds_GenericIO_LLN0_Measurements_fcda7
|
||||
};
|
||||
|
||||
DataSetEntry ds_GenericIO_LLN0_Measurements_fcda7 = {
|
||||
DataSetEntry iedModelds_GenericIO_LLN0_Measurements_fcda7 = {
|
||||
"GenericIO",
|
||||
false,
|
||||
"GGIO1$MX$AnIn4$q",
|
||||
|
@ -350,11 +207,11 @@ DataSetEntry ds_GenericIO_LLN0_Measurements_fcda7 = {
|
|||
NULL
|
||||
};
|
||||
|
||||
DataSet ds_GenericIO_LLN0_Measurements = {
|
||||
DataSet iedModelds_GenericIO_LLN0_Measurements = {
|
||||
"GenericIO",
|
||||
"LLN0$Measurements",
|
||||
8,
|
||||
&ds_GenericIO_LLN0_Measurements_fcda0,
|
||||
&iedModelds_GenericIO_LLN0_Measurements_fcda0,
|
||||
NULL
|
||||
};
|
||||
|
||||
|
@ -2101,7 +1958,7 @@ ReportControlBlock iedModel_GenericIO_LLN0_report6 = {&iedModel_GenericIO_LLN0,
|
|||
IedModel iedModel = {
|
||||
"simpleIO",
|
||||
&iedModel_GenericIO,
|
||||
&ds_GenericIO_LLN0_Events,
|
||||
&iedModelds_GenericIO_LLN0_Events,
|
||||
&iedModel_GenericIO_LLN0_report0,
|
||||
NULL,
|
||||
NULL,
|
||||
|
|
Binary file not shown.
|
@ -84,8 +84,14 @@ public class StaticModelGenerator {
|
|||
private IED ied;
|
||||
private AccessPoint accessPoint;
|
||||
|
||||
private String outputFileName;
|
||||
private String hDefineName;
|
||||
private String modelPrefix;
|
||||
private boolean initializeOnce;
|
||||
|
||||
public StaticModelGenerator(InputStream stream, String icdFile, PrintStream cOut, PrintStream hOut,
|
||||
String iedName, String accessPointName) throws SclParserException
|
||||
String outputFileName, String iedName, String accessPointName, String modelPrefix,
|
||||
boolean initializeOnce) throws SclParserException
|
||||
{
|
||||
this.cOut = cOut;
|
||||
this.hOut = hOut;
|
||||
|
@ -100,6 +106,16 @@ public class StaticModelGenerator {
|
|||
|
||||
SclParser sclParser = new SclParser(stream);
|
||||
|
||||
this.outputFileName = outputFileName;
|
||||
this.hDefineName = outputFileName.toUpperCase().replace( '.', '_' ).replace( '-', '_' ) + "_H_";
|
||||
this.modelPrefix = modelPrefix;
|
||||
this.initializeOnce = initializeOnce;
|
||||
|
||||
if( hDefineName.lastIndexOf( '/' ) >= 0 )
|
||||
{
|
||||
hDefineName = hDefineName.substring( hDefineName.lastIndexOf( '/' ) + 1 );
|
||||
}
|
||||
|
||||
ied = null;
|
||||
|
||||
if (iedName == null)
|
||||
|
@ -147,17 +163,18 @@ public class StaticModelGenerator {
|
|||
|
||||
public static void main(String[] args) throws FileNotFoundException {
|
||||
if (args.length < 1) {
|
||||
System.out.println("Usage: genmodel <ICD file> [-ied <ied-name>] [-ap <access-point-name>]");
|
||||
System.out.println("Usage: genmodel <ICD file> [-ied <ied-name>] [-ap <access-point-name>] [-out <output-name>] [-modelprefix <model-prefix>]");
|
||||
System.exit(1);
|
||||
}
|
||||
|
||||
String icdFile = args[0];
|
||||
|
||||
String defaultCFileName = "static_model.c";
|
||||
String defaultHFileName = "static_model.h";
|
||||
String outputFileName = "static_model";
|
||||
|
||||
String accessPointName = null;
|
||||
String iedName = null;
|
||||
String modelPrefix = "iedModel";
|
||||
boolean initializeOnce = false;
|
||||
|
||||
if (args.length > 1) {
|
||||
for (int i = 1; i < args.length; i++) {
|
||||
|
@ -175,6 +192,28 @@ public class StaticModelGenerator {
|
|||
|
||||
i++;
|
||||
|
||||
}
|
||||
else if (args[i].equals("-out")) {
|
||||
outputFileName = args[i+1];
|
||||
|
||||
System.out.println("Select Output File " + outputFileName);
|
||||
|
||||
i++;
|
||||
|
||||
}
|
||||
else if (args[i].equals("-modelprefix")) {
|
||||
modelPrefix = args[i+1];
|
||||
|
||||
System.out.println("Select Model Prefix " + modelPrefix);
|
||||
|
||||
i++;
|
||||
|
||||
}
|
||||
else if (args[i].equals("-initializeonce")) {
|
||||
initializeOnce = true;
|
||||
|
||||
System.out.println("Select Initialize Once");
|
||||
|
||||
}
|
||||
else {
|
||||
System.out.println("Unknown option: \"" + args[i] + "\"");
|
||||
|
@ -183,13 +222,14 @@ public class StaticModelGenerator {
|
|||
|
||||
}
|
||||
|
||||
PrintStream cOutStream = new PrintStream(new FileOutputStream(new File(defaultCFileName)));
|
||||
PrintStream hOutStream = new PrintStream(new FileOutputStream(new File(defaultHFileName)));
|
||||
PrintStream cOutStream = new PrintStream(new FileOutputStream(new File(outputFileName + ".c")));
|
||||
PrintStream hOutStream = new PrintStream(new FileOutputStream(new File(outputFileName + ".h")));
|
||||
|
||||
System.out.println("Select ICD File " + icdFile);
|
||||
InputStream stream = new FileInputStream(icdFile);
|
||||
|
||||
try {
|
||||
new StaticModelGenerator(stream, icdFile, cOutStream, hOutStream, iedName, accessPointName);
|
||||
new StaticModelGenerator(stream, icdFile, cOutStream, hOutStream, outputFileName, iedName, accessPointName, modelPrefix, initializeOnce);
|
||||
} catch (SclParserException e) {
|
||||
System.err.println("ERROR: " + e.getMessage());
|
||||
}
|
||||
|
@ -199,8 +239,8 @@ public class StaticModelGenerator {
|
|||
hOut.println("\n\n");
|
||||
|
||||
for (String variableName : variablesList) {
|
||||
String name = variableName.substring(8);
|
||||
hOut.println("#define IEDMODEL" + name + " (&" + variableName + ")");
|
||||
String name = modelPrefix.toUpperCase() + variableName.substring( modelPrefix.length() );
|
||||
hOut.println("#define " + name + " (&" + variableName + ")");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -233,7 +273,7 @@ public class StaticModelGenerator {
|
|||
|
||||
LogicalDevice logicalDevice = logicalDevices.get(i);
|
||||
|
||||
String ldName = "iedModel_" + logicalDevice.getInst();
|
||||
String ldName = modelPrefix + "_" + logicalDevice.getInst();
|
||||
|
||||
variablesList.add(ldName);
|
||||
|
||||
|
@ -245,10 +285,10 @@ public class StaticModelGenerator {
|
|||
|
||||
cOut.println(" \"" + logicalDeviceName + "\",");
|
||||
|
||||
cOut.println(" (ModelNode*) &iedModel,");
|
||||
cOut.println(" (ModelNode*) &" + modelPrefix + ",");
|
||||
|
||||
if (i < (logicalDevices.size() - 1))
|
||||
cOut.println(" (ModelNode*) &iedModel_" + logicalDevices.get(i + 1).getInst() + ",");
|
||||
cOut.println(" (ModelNode*) &" + modelPrefix + "_" + logicalDevices.get(i + 1).getInst() + ",");
|
||||
else
|
||||
cOut.println(" NULL,");
|
||||
|
||||
|
@ -279,9 +319,9 @@ public class StaticModelGenerator {
|
|||
cOut.println(settingGroupControlBlocks);
|
||||
|
||||
String firstLogicalDeviceName = logicalDevices.get(0).getInst();
|
||||
cOut.println("\nIedModel iedModel = {");
|
||||
cOut.println("\nIedModel " + modelPrefix + " = {");
|
||||
cOut.println(" \"" + ied.getName() + "\",");
|
||||
cOut.println(" &iedModel_" + firstLogicalDeviceName + ",");
|
||||
cOut.println(" &" + modelPrefix + "_" + firstLogicalDeviceName + ",");
|
||||
|
||||
if (dataSetNames.size() > 0)
|
||||
cOut.println(" &" + dataSetNames.get(0) + ",");
|
||||
|
@ -318,7 +358,7 @@ public class StaticModelGenerator {
|
|||
int gseCount = 0;
|
||||
|
||||
for (GSEControl gse : goCBs) {
|
||||
String gcbVariableName = "iedModel_" + ldName + "_" + ln.getName() + "_gse" + gseCount;
|
||||
String gcbVariableName = modelPrefix + "_" + ldName + "_" + ln.getName() + "_gse" + gseCount;
|
||||
gseVariableNames.add(gcbVariableName);
|
||||
gseCount++;
|
||||
}
|
||||
|
@ -346,7 +386,7 @@ public class StaticModelGenerator {
|
|||
maxInstances = rcb.getRptEna().getMaxInstances();
|
||||
|
||||
for (int i = 0; i < maxInstances; i++) {
|
||||
String rcbVariableName = "iedModel_" + ldName + "_" + ln.getName() + "_report" + rcbCount;
|
||||
String rcbVariableName = modelPrefix + "_" + ldName + "_" + ln.getName() + "_report" + rcbCount;
|
||||
rcbVariableNames.add(rcbVariableName);
|
||||
rcbCount++;
|
||||
}
|
||||
|
@ -367,7 +407,7 @@ public class StaticModelGenerator {
|
|||
|
||||
for (SettingControl sgcb : sgcbs) {
|
||||
|
||||
String sgcbVariableName = "iedModel_" + ldName + "_" + ln.getName() + "_sgcb";
|
||||
String sgcbVariableName = modelPrefix + "_" + ldName + "_" + ln.getName() + "_sgcb";
|
||||
|
||||
sgcbVariableNames.add(sgcbVariableName);
|
||||
|
||||
|
@ -467,7 +507,7 @@ public class StaticModelGenerator {
|
|||
|
||||
if (dataAttribute.getFc() == FunctionalConstraint.SE) {
|
||||
|
||||
if (daName.startsWith("iedModel_SE_") == false)
|
||||
if (daName.startsWith(modelPrefix + "_SE_") == false)
|
||||
daName = daName.substring(0, 9) + "SE_" + daName.substring(9);
|
||||
|
||||
}
|
||||
|
@ -484,7 +524,7 @@ public class StaticModelGenerator {
|
|||
String siblingDoName = doName;
|
||||
|
||||
if (sibling.getFc() == FunctionalConstraint.SE) {
|
||||
if (siblingDoName.startsWith("iedModel_SE_") == false)
|
||||
if (siblingDoName.startsWith(modelPrefix + "_SE_") == false)
|
||||
siblingDoName = siblingDoName.substring(0, 9) + "SE_" + siblingDoName.substring(9);
|
||||
}
|
||||
|
||||
|
@ -564,6 +604,12 @@ public class StaticModelGenerator {
|
|||
StringBuffer buffer = this.initializerBuffer;
|
||||
|
||||
buffer.append("\n");
|
||||
if( initializeOnce )
|
||||
{
|
||||
buffer.append("if (!");
|
||||
buffer.append(daName);
|
||||
buffer.append(".mmsValue)\n");
|
||||
}
|
||||
buffer.append(daName);
|
||||
buffer.append(".mmsValue = ");
|
||||
|
||||
|
@ -612,20 +658,17 @@ public class StaticModelGenerator {
|
|||
|
||||
private void printForwardDeclarations(Server server) {
|
||||
|
||||
cOut.println("extern IedModel iedModel;");
|
||||
cOut.println("static void initializeValues();");
|
||||
hOut.println("extern IedModel iedModel;");
|
||||
hOut.println("extern IedModel " + modelPrefix + ";");
|
||||
|
||||
for (LogicalDevice logicalDevice : server.getLogicalDevices()) {
|
||||
String ldName = "iedModel_" + logicalDevice.getInst();
|
||||
String ldName = modelPrefix + "_" + logicalDevice.getInst();
|
||||
|
||||
cOut.println("extern LogicalDevice " + ldName + ";");
|
||||
hOut.println("extern LogicalDevice " + ldName + ";");
|
||||
|
||||
for (LogicalNode logicalNode : logicalDevice.getLogicalNodes()) {
|
||||
String lnName = ldName + "_" + logicalNode.getName();
|
||||
|
||||
cOut.println("extern LogicalNode " + lnName + ";");
|
||||
hOut.println("extern LogicalNode " + lnName + ";");
|
||||
|
||||
printDataObjectForwardDeclarations(lnName, logicalNode.getDataObjects());
|
||||
|
@ -638,7 +681,6 @@ public class StaticModelGenerator {
|
|||
for (DataObject dataObject : dataObjects) {
|
||||
String doName = prefix + "_" + dataObject.getName();
|
||||
|
||||
cOut.println("extern DataObject " + doName + ";");
|
||||
hOut.println("extern DataObject " + doName + ";");
|
||||
|
||||
if (dataObject.getSubDataObjects() != null) {
|
||||
|
@ -655,11 +697,10 @@ public class StaticModelGenerator {
|
|||
|
||||
if (dataAttribute.getFc() == FunctionalConstraint.SE) {
|
||||
|
||||
if (daName.startsWith("iedModel_SE_") == false)
|
||||
if (daName.startsWith(modelPrefix + "_SE_") == false)
|
||||
daName = daName.substring(0, 9) + "SE_" + daName.substring(9);
|
||||
}
|
||||
|
||||
cOut.println("extern DataAttribute " + daName + ";");
|
||||
hOut.println("extern DataAttribute " + daName + ";");
|
||||
|
||||
if (dataAttribute.getSubDataAttributes() != null)
|
||||
|
@ -669,24 +710,28 @@ public class StaticModelGenerator {
|
|||
|
||||
private void printCFileHeader(String filename) {
|
||||
|
||||
String include = outputFileName + ".h\"";
|
||||
if( include.lastIndexOf( '/' ) >= 0 ) {
|
||||
include = include.substring( include.lastIndexOf( '/' ) + 1 );
|
||||
}
|
||||
|
||||
cOut.println("/*");
|
||||
cOut.println(" * static_model.c");
|
||||
cOut.println(" * " + outputFileName + ".c");
|
||||
cOut.println(" *");
|
||||
cOut.println(" * automatically generated from " + filename);
|
||||
cOut.println(" */");
|
||||
cOut.println("#include <stdlib.h>");
|
||||
cOut.println("#include \"iec61850_model.h\"");
|
||||
cOut.println("#include \"" + include);
|
||||
cOut.println();
|
||||
}
|
||||
|
||||
private void printHeaderFileHeader(String filename) {
|
||||
hOut.println("/*");
|
||||
hOut.println(" * static_model.h");
|
||||
hOut.println(" * " + outputFileName + ".h");
|
||||
hOut.println(" *");
|
||||
hOut.println(" * automatically generated from " + filename);
|
||||
hOut.println(" */\n");
|
||||
hOut.println("#ifndef STATIC_MODEL_H_");
|
||||
hOut.println("#define STATIC_MODEL_H_\n");
|
||||
hOut.println("#ifndef " + hDefineName);
|
||||
hOut.println("#define " + hDefineName + "\n");
|
||||
hOut.println("#include <stdlib.h>");
|
||||
hOut.println("#include \"iec61850_model.h\"");
|
||||
hOut.println();
|
||||
|
@ -694,7 +739,7 @@ public class StaticModelGenerator {
|
|||
|
||||
private void printHeaderFileFooter() {
|
||||
hOut.println();
|
||||
hOut.println("#endif /* STATIC_MODEL_H_ */\n");
|
||||
hOut.println("#endif /* " + hDefineName + " */\n");
|
||||
}
|
||||
|
||||
private void printGSEControlBlocks(String ldName, String lnPrefix, LogicalNode logicalNode) {
|
||||
|
@ -940,7 +985,7 @@ public class StaticModelGenerator {
|
|||
|
||||
for (DataSet dataSet : dataSets) {
|
||||
|
||||
String dataSetVariableName = "ds_" + logicalDevice.getInst() + "_" + logicalNode.getName() + "_" + dataSet.getName();
|
||||
String dataSetVariableName = modelPrefix + "ds_" + logicalDevice.getInst() + "_" + logicalNode.getName() + "_" + dataSet.getName();
|
||||
|
||||
dataSetNames.add(dataSetVariableName);
|
||||
}
|
||||
|
@ -1033,7 +1078,7 @@ public class StaticModelGenerator {
|
|||
|
||||
cOut.println("DataSet " + dataSetVariableName + " = {");
|
||||
|
||||
String lnVariableName = "iedModel_" + logicalDevice.getInst() + "_" + logicalNode.getName();
|
||||
String lnVariableName = modelPrefix + "_" + logicalDevice.getInst() + "_" + logicalNode.getName();
|
||||
|
||||
cOut.println(" \"" + logicalDevice.getInst() + "\",");
|
||||
cOut.println(" \"" + logicalNode.getName() + "$" + dataSet.getName() + "\",");
|
||||
|
|
Loading…
Add table
Reference in a new issue