diff --git a/demos/beaglebone/beagle_demo.c b/demos/beaglebone/beagle_demo.c index 31cc3c6..82c1ac0 100644 --- a/demos/beaglebone/beagle_demo.c +++ b/demos/beaglebone/beagle_demo.c @@ -77,27 +77,27 @@ static void updateLED1stVal(bool newLedState, uint64_t timeStamp) { switchLED(LED1, newLedState); + IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_t, timeStamp); IedServer_updateBooleanAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_stVal, newLedState); IedServer_updateQuality(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_q, QUALITY_VALIDITY_GOOD | QUALITY_SOURCE_SUBSTITUTED); - IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1_t, timeStamp); } static void updateLED2stVal(bool newLedState, uint64_t timeStamp) { switchLED(LED2, newLedState); + IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_t, timeStamp); IedServer_updateBooleanAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_stVal, newLedState); IedServer_updateQuality(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_q, QUALITY_VALIDITY_QUESTIONABLE | QUALITY_DETAIL_OSCILLATORY); - IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO2_t, timeStamp); } static void updateLED3stVal(bool newLedState, uint64_t timeStamp) { switchLED(LED3, newLedState); + IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_t, timeStamp); IedServer_updateBooleanAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_stVal, newLedState); IedServer_updateQuality(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_q, QUALITY_VALIDITY_GOOD); - IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO3_t, timeStamp); } static ControlHandlerResult @@ -146,6 +146,62 @@ controlHandlerForBinaryOutput(void* parameter, MmsValue* value, bool test) return CONTROL_RESULT_OK; } +static int ledOnTimeMs = 1000; +static int ledOffTimeMs = 1000; +static int32_t opCnt = 0; + +static ControlHandlerResult +controlHandlerForInt32Controls(void* parameter, MmsValue* value, bool test) +{ + if (test) + return CONTROL_RESULT_OK; + + if (parameter == IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs) { + int32_t newValue = MmsValue_toInt32(value); + + opCnt = newValue; + + uint64_t currentTime = Hal_getTimeInMs(); + + IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_t, currentTime); + IedServer_updateInt32AttributeValue(iedServer, IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_stVal, opCnt); + } + + return CONTROL_RESULT_OK; +} + + + +static MmsDataAccessError +int32WriteAccessHandler (DataAttribute* dataAttribute, MmsValue* value, ClientConnection connection, void* parameter) +{ + int newValue = MmsValue_toInt32(value); + + /* Check if value is inside of valid range */ + if (newValue < 0) + return DATA_ACCESS_ERROR_OBJECT_VALUE_INVALID; + + if (dataAttribute == IEDMODEL_GenericIO_TIM_GAPC1_OpDlTmms_setVal) { + + printf("New value for TIM_GAPC1.OpDlTmms.setVal = %i\n", newValue); + + ledOffTimeMs = newValue; + + return DATA_ACCESS_ERROR_SUCCESS; + } + + if (dataAttribute == IEDMODEL_GenericIO_TIM_GAPC1_RsDlTmms_setVal) { + + printf("New value for TIM_GAPC1.RsDlTmms.setVal = %i\n", newValue); + + ledOnTimeMs = newValue; + + return DATA_ACCESS_ERROR_SUCCESS; + } + + return DATA_ACCESS_ERROR_OBJECT_ACCESS_DENIED; +} + int main(int argc, char** argv) { @@ -153,7 +209,7 @@ int main(int argc, char** argv) { iedServer = IedServer_create(&iedModel); - /* Set callback handlers */ + /* Set control callback handlers */ IedServer_setConnectionIndicationHandler(iedServer, (IedConnectionIndicationHandler) connectionIndicationHandler, NULL); IedServer_setPerformCheckHandler(iedServer, IEDMODEL_GenericIO_GGIO1_SPCSO1, @@ -181,11 +237,22 @@ int main(int argc, char** argv) { IEDMODEL_GenericIO_GGIO1_DPCSO1); - /* Initialize process values */ + IedServer_setControlHandler(iedServer, IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs, (ControlHandler) controlHandlerForInt32Controls, + IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs); + /* Initialize process values */ MmsValue* DPCSO1_stVal = IedServer_getAttributeValue(iedServer, IEDMODEL_GenericIO_GGIO1_DPCSO1_stVal); MmsValue_setBitStringFromInteger(DPCSO1_stVal, 1); /* set DPC to OFF */ + /* Intitalize setting values */ + IedServer_updateInt32AttributeValue(iedServer, IEDMODEL_GenericIO_TIM_GAPC1_OpDlTmms_setVal, ledOffTimeMs); + IedServer_updateInt32AttributeValue(iedServer, IEDMODEL_GenericIO_TIM_GAPC1_RsDlTmms_setVal, ledOnTimeMs); + + /* Set callback handler for settings */ + IedServer_handleWriteAccess(iedServer, IEDMODEL_GenericIO_TIM_GAPC1_OpDlTmms_setVal, int32WriteAccessHandler, NULL); + IedServer_handleWriteAccess(iedServer, IEDMODEL_GenericIO_TIM_GAPC1_RsDlTmms_setVal, int32WriteAccessHandler, NULL); + + /* MMS server will be instructed to start listening to client connections. */ IedServer_start(iedServer, 102); @@ -210,10 +277,21 @@ int main(int argc, char** argv) { if (automaticOperationMode) { if (nextLedToggleTime <= currentTime) { - nextLedToggleTime = currentTime + 1000; + + + if (ledStateValue) + nextLedToggleTime = currentTime + ledOffTimeMs; + else + nextLedToggleTime = currentTime + ledOnTimeMs; ledStateValue = !ledStateValue; + if (ledStateValue) { + opCnt++; + IedServer_updateUTCTimeAttributeValue(iedServer, IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_t, currentTime); + IedServer_updateInt32AttributeValue(iedServer, IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_stVal, opCnt); + } + updateLED1stVal(ledStateValue, currentTime); updateLED2stVal(ledStateValue, currentTime); updateLED3stVal(ledStateValue, currentTime); diff --git a/demos/beaglebone/beagle_demo.icd b/demos/beaglebone/beagle_demo.icd index 6169c81..259c21f 100644 --- a/demos/beaglebone/beagle_demo.icd +++ b/demos/beaglebone/beagle_demo.icd @@ -72,6 +72,7 @@ + @@ -99,6 +100,9 @@ + + + @@ -106,20 +110,22 @@ - - - + + + + - + + - - - + + + @@ -134,17 +140,65 @@ - + + + + + + + + + + + + + + + + + + EXT:2015 + + + + + + + + + + - + + + direct-with-normal-security + - - - - + + + + + + + + + + + + + + + + + + + status-only + + + @@ -152,24 +206,29 @@ + + + + + @@ -177,11 +236,13 @@ + + @@ -189,6 +250,7 @@ + @@ -198,6 +260,7 @@ + @@ -205,13 +268,33 @@ + + + + + + + + + + + + + + + + + + + + @@ -228,6 +311,21 @@ + + + on + blocked + test + test/blocked + off + + + + unknown + forward + backward + both + status-only @@ -236,6 +334,7 @@ direct-with-enhanced-security sbo-with-enhanced-security + not-supported bay-control diff --git a/demos/beaglebone/beaglebone_leds.h b/demos/beaglebone/beaglebone_leds.h index 2bcfa0d..61a396c 100644 --- a/demos/beaglebone/beaglebone_leds.h +++ b/demos/beaglebone/beaglebone_leds.h @@ -9,6 +9,9 @@ /* set to 1 if you want to run the demo on a PC */ //#define SIMULATED 1 + + +/* select correct file paths to access LEDs - depends on beaglebones linux distro/version */ #if 0 #define LED1 "/sys/class/leds/beaglebone::usr0" #define LED2 "/sys/class/leds/beaglebone::usr1" diff --git a/demos/beaglebone/static_model.c b/demos/beaglebone/static_model.c index 9d2b861..993db3e 100644 --- a/demos/beaglebone/static_model.c +++ b/demos/beaglebone/static_model.c @@ -76,14 +76,62 @@ LogicalNode iedModel_GenericIO_LLN0 = { "LLN0", (ModelNode*) &iedModel_GenericIO, (ModelNode*) &iedModel_GenericIO_LPHD1, - (ModelNode*) &iedModel_GenericIO_LLN0_Mod, + (ModelNode*) &iedModel_GenericIO_LLN0_Beh, }; +DataObject iedModel_GenericIO_LLN0_Beh = { + DataObjectModelType, + "Beh", + (ModelNode*) &iedModel_GenericIO_LLN0, + (ModelNode*) &iedModel_GenericIO_LLN0_Mod, + (ModelNode*) &iedModel_GenericIO_LLN0_Beh_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_LLN0_Beh_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_LLN0_Beh, + (ModelNode*) &iedModel_GenericIO_LLN0_Beh_q, + NULL, + 0, + IEC61850_FC_ST, + ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_LLN0_Beh_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_LLN0_Beh, + (ModelNode*) &iedModel_GenericIO_LLN0_Beh_t, + NULL, + 0, + IEC61850_FC_ST, + QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_LLN0_Beh_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_LLN0_Beh, + NULL, + NULL, + 0, + IEC61850_FC_ST, + TIMESTAMP, + 0, + NULL, + 0}; + DataObject iedModel_GenericIO_LLN0_Mod = { DataObjectModelType, "Mod", (ModelNode*) &iedModel_GenericIO_LLN0, - (ModelNode*) &iedModel_GenericIO_LLN0_Beh, + (ModelNode*) &iedModel_GenericIO_LLN0_Health, (ModelNode*) &iedModel_GenericIO_LLN0_Mod_stVal, 0 }; @@ -96,7 +144,7 @@ DataAttribute iedModel_GenericIO_LLN0_Mod_stVal = { NULL, 0, IEC61850_FC_ST, - INT32, + ENUMERATED, 0 + TRG_OPT_DATA_CHANGED, NULL, 0}; @@ -140,54 +188,6 @@ DataAttribute iedModel_GenericIO_LLN0_Mod_ctlModel = { NULL, 0}; -DataObject iedModel_GenericIO_LLN0_Beh = { - DataObjectModelType, - "Beh", - (ModelNode*) &iedModel_GenericIO_LLN0, - (ModelNode*) &iedModel_GenericIO_LLN0_Health, - (ModelNode*) &iedModel_GenericIO_LLN0_Beh_stVal, - 0 -}; - -DataAttribute iedModel_GenericIO_LLN0_Beh_stVal = { - DataAttributeModelType, - "stVal", - (ModelNode*) &iedModel_GenericIO_LLN0_Beh, - (ModelNode*) &iedModel_GenericIO_LLN0_Beh_q, - NULL, - 0, - IEC61850_FC_ST, - INT32, - 0 + TRG_OPT_DATA_CHANGED, - NULL, - 0}; - -DataAttribute iedModel_GenericIO_LLN0_Beh_q = { - DataAttributeModelType, - "q", - (ModelNode*) &iedModel_GenericIO_LLN0_Beh, - (ModelNode*) &iedModel_GenericIO_LLN0_Beh_t, - NULL, - 0, - IEC61850_FC_ST, - QUALITY, - 0 + TRG_OPT_QUALITY_CHANGED, - NULL, - 0}; - -DataAttribute iedModel_GenericIO_LLN0_Beh_t = { - DataAttributeModelType, - "t", - (ModelNode*) &iedModel_GenericIO_LLN0_Beh, - NULL, - NULL, - 0, - IEC61850_FC_ST, - TIMESTAMP, - 0, - NULL, - 0}; - DataObject iedModel_GenericIO_LLN0_Health = { DataObjectModelType, "Health", @@ -205,7 +205,7 @@ DataAttribute iedModel_GenericIO_LLN0_Health_stVal = { NULL, 0, IEC61850_FC_ST, - INT32, + ENUMERATED, 0 + TRG_OPT_DATA_CHANGED, NULL, 0}; @@ -357,7 +357,7 @@ DataAttribute iedModel_GenericIO_LPHD1_PhyHealth_stVal = { NULL, 0, IEC61850_FC_ST, - INT32, + ENUMERATED, 0 + TRG_OPT_DATA_CHANGED, NULL, 0}; @@ -440,19 +440,80 @@ LogicalNode iedModel_GenericIO_GGIO1 = { LogicalNodeModelType, "GGIO1", (ModelNode*) &iedModel_GenericIO, - NULL, - (ModelNode*) &iedModel_GenericIO_GGIO1_Mod, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1, + (ModelNode*) &iedModel_GenericIO_GGIO1_Beh, }; +DataObject iedModel_GenericIO_GGIO1_Beh = { + DataObjectModelType, + "Beh", + (ModelNode*) &iedModel_GenericIO_GGIO1, + (ModelNode*) &iedModel_GenericIO_GGIO1_Mod, + (ModelNode*) &iedModel_GenericIO_GGIO1_Beh_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_GGIO1_Beh_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_GGIO1_Beh, + (ModelNode*) &iedModel_GenericIO_GGIO1_Beh_q, + NULL, + 0, + IEC61850_FC_ST, + ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_GGIO1_Beh_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_GGIO1_Beh, + (ModelNode*) &iedModel_GenericIO_GGIO1_Beh_t, + NULL, + 0, + IEC61850_FC_ST, + QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_GGIO1_Beh_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_GGIO1_Beh, + NULL, + NULL, + 0, + IEC61850_FC_ST, + TIMESTAMP, + 0, + NULL, + 0}; + DataObject iedModel_GenericIO_GGIO1_Mod = { DataObjectModelType, "Mod", (ModelNode*) &iedModel_GenericIO_GGIO1, - (ModelNode*) &iedModel_GenericIO_GGIO1_Beh, - (ModelNode*) &iedModel_GenericIO_GGIO1_Mod_q, + (ModelNode*) &iedModel_GenericIO_GGIO1_Health, + (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, + ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + DataAttribute iedModel_GenericIO_GGIO1_Mod_q = { DataAttributeModelType, "q", @@ -492,54 +553,6 @@ DataAttribute iedModel_GenericIO_GGIO1_Mod_ctlModel = { NULL, 0}; -DataObject iedModel_GenericIO_GGIO1_Beh = { - DataObjectModelType, - "Beh", - (ModelNode*) &iedModel_GenericIO_GGIO1, - (ModelNode*) &iedModel_GenericIO_GGIO1_Health, - (ModelNode*) &iedModel_GenericIO_GGIO1_Beh_stVal, - 0 -}; - -DataAttribute iedModel_GenericIO_GGIO1_Beh_stVal = { - DataAttributeModelType, - "stVal", - (ModelNode*) &iedModel_GenericIO_GGIO1_Beh, - (ModelNode*) &iedModel_GenericIO_GGIO1_Beh_q, - NULL, - 0, - IEC61850_FC_ST, - INT32, - 0 + TRG_OPT_DATA_CHANGED, - NULL, - 0}; - -DataAttribute iedModel_GenericIO_GGIO1_Beh_q = { - DataAttributeModelType, - "q", - (ModelNode*) &iedModel_GenericIO_GGIO1_Beh, - (ModelNode*) &iedModel_GenericIO_GGIO1_Beh_t, - NULL, - 0, - IEC61850_FC_ST, - QUALITY, - 0 + TRG_OPT_QUALITY_CHANGED, - NULL, - 0}; - -DataAttribute iedModel_GenericIO_GGIO1_Beh_t = { - DataAttributeModelType, - "t", - (ModelNode*) &iedModel_GenericIO_GGIO1_Beh, - NULL, - NULL, - 0, - IEC61850_FC_ST, - TIMESTAMP, - 0, - NULL, - 0}; - DataObject iedModel_GenericIO_GGIO1_Health = { DataObjectModelType, "Health", @@ -557,7 +570,7 @@ DataAttribute iedModel_GenericIO_GGIO1_Health_stVal = { NULL, 0, IEC61850_FC_ST, - INT32, + ENUMERATED, 0 + TRG_OPT_DATA_CHANGED, NULL, 0}; @@ -1901,17 +1914,491 @@ DataAttribute iedModel_GenericIO_GGIO1_Ind4_t = { NULL, 0}; +LogicalNode iedModel_GenericIO_TIM_GAPC1 = { + LogicalNodeModelType, + "TIM_GAPC1", + (ModelNode*) &iedModel_GenericIO, + NULL, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Beh, +}; + +DataObject iedModel_GenericIO_TIM_GAPC1_Beh = { + DataObjectModelType, + "Beh", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Mod, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Beh_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_Beh_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Beh, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Beh_q, + NULL, + 0, + IEC61850_FC_ST, + ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_Beh_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Beh, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Beh_t, + NULL, + 0, + IEC61850_FC_ST, + QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_Beh_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Beh, + NULL, + NULL, + 0, + IEC61850_FC_ST, + TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_TIM_GAPC1_Mod = { + DataObjectModelType, + "Mod", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Str, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Mod_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_Mod_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Mod, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Mod_q, + NULL, + 0, + IEC61850_FC_ST, + ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_Mod_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Mod, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Mod_t, + NULL, + 0, + IEC61850_FC_ST, + QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_Mod_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Mod, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Mod_ctlModel, + NULL, + 0, + IEC61850_FC_ST, + TIMESTAMP, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_Mod_ctlModel = { + DataAttributeModelType, + "ctlModel", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Mod, + NULL, + NULL, + 0, + IEC61850_FC_CF, + ENUMERATED, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_TIM_GAPC1_Str = { + DataObjectModelType, + "Str", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Op, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Str_general, + 0 +}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_Str_general = { + DataAttributeModelType, + "general", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Str, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Str_dirGeneral, + NULL, + 0, + IEC61850_FC_ST, + BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_Str_dirGeneral = { + DataAttributeModelType, + "dirGeneral", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Str, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Str_q, + NULL, + 0, + IEC61850_FC_ST, + ENUMERATED, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_Str_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Str, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Str_t, + NULL, + 0, + IEC61850_FC_ST, + QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_Str_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Str, + NULL, + NULL, + 0, + IEC61850_FC_ST, + TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_TIM_GAPC1_Op = { + DataObjectModelType, + "Op", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpDlTmms, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Op_general, + 0 +}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_Op_general = { + DataAttributeModelType, + "general", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Op, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Op_q, + NULL, + 0, + IEC61850_FC_ST, + BOOLEAN, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_Op_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Op, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Op_t, + NULL, + 0, + IEC61850_FC_ST, + QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_Op_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_Op, + NULL, + NULL, + 0, + IEC61850_FC_ST, + TIMESTAMP, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_TIM_GAPC1_OpDlTmms = { + DataObjectModelType, + "OpDlTmms", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_RsDlTmms, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpDlTmms_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_OpDlTmms_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpDlTmms, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpDlTmms_dataNs, + NULL, + 0, + IEC61850_FC_SP, + INT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_OpDlTmms_dataNs = { + DataAttributeModelType, + "dataNs", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpDlTmms, + NULL, + NULL, + 0, + IEC61850_FC_EX, + VISIBLE_STRING_255, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_TIM_GAPC1_RsDlTmms = { + DataObjectModelType, + "RsDlTmms", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_RsDlTmms_setVal, + 0 +}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_RsDlTmms_setVal = { + DataAttributeModelType, + "setVal", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_RsDlTmms, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_RsDlTmms_dataNs, + NULL, + 0, + IEC61850_FC_SP, + INT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_RsDlTmms_dataNs = { + DataAttributeModelType, + "dataNs", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_RsDlTmms, + NULL, + NULL, + 0, + IEC61850_FC_EX, + VISIBLE_STRING_255, + 0, + NULL, + 0}; + +DataObject iedModel_GenericIO_TIM_GAPC1_OpCntRs = { + DataObjectModelType, + "OpCntRs", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1, + NULL, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_stVal, + 0 +}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_stVal = { + DataAttributeModelType, + "stVal", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_q, + NULL, + 0, + IEC61850_FC_ST, + INT32, + 0 + TRG_OPT_DATA_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_q = { + DataAttributeModelType, + "q", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_t, + NULL, + 0, + IEC61850_FC_ST, + QUALITY, + 0 + TRG_OPT_QUALITY_CHANGED, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_t = { + DataAttributeModelType, + "t", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper, + NULL, + 0, + IEC61850_FC_ST, + TIMESTAMP, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper = { + DataAttributeModelType, + "Oper", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_ctlModel, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlVal, + 0, + IEC61850_FC_CO, + CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlVal = { + DataAttributeModelType, + "ctlVal", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin, + NULL, + 0, + IEC61850_FC_CO, + BOOLEAN, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin = { + DataAttributeModelType, + "origin", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlNum, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orCat, + 0, + IEC61850_FC_CO, + CONSTRUCTED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orCat = { + DataAttributeModelType, + "orCat", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orIdent, + NULL, + 0, + IEC61850_FC_CO, + ENUMERATED, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orIdent = { + DataAttributeModelType, + "orIdent", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin, + NULL, + NULL, + 0, + IEC61850_FC_CO, + OCTET_STRING_64, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlNum = { + DataAttributeModelType, + "ctlNum", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_T, + NULL, + 0, + IEC61850_FC_CO, + INT8U, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_T = { + DataAttributeModelType, + "T", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_Test, + NULL, + 0, + IEC61850_FC_CO, + TIMESTAMP, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_Test = { + DataAttributeModelType, + "Test", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper, + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_Check, + NULL, + 0, + IEC61850_FC_CO, + BOOLEAN, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_Check = { + DataAttributeModelType, + "Check", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper, + NULL, + NULL, + 0, + IEC61850_FC_CO, + CHECK, + 0, + NULL, + 0}; + +DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_ctlModel = { + DataAttributeModelType, + "ctlModel", + (ModelNode*) &iedModel_GenericIO_TIM_GAPC1_OpCntRs, + NULL, + NULL, + 0, + IEC61850_FC_CF, + ENUMERATED, + 0, + NULL, + 0}; + extern ReportControlBlock iedModel_GenericIO_LLN0_report0; extern ReportControlBlock iedModel_GenericIO_LLN0_report1; extern ReportControlBlock iedModel_GenericIO_LLN0_report2; extern ReportControlBlock iedModel_GenericIO_LLN0_report3; extern ReportControlBlock iedModel_GenericIO_LLN0_report4; -ReportControlBlock iedModel_GenericIO_LLN0_report0 = {&iedModel_GenericIO_LLN0, "EventsRCB01", "Events1", false, "Events", 1, 8, 111, 50, 1000, &iedModel_GenericIO_LLN0_report1}; -ReportControlBlock iedModel_GenericIO_LLN0_report1 = {&iedModel_GenericIO_LLN0, "EventsRCB02", "Events1", false, "Events", 1, 8, 111, 50, 1000, &iedModel_GenericIO_LLN0_report2}; -ReportControlBlock iedModel_GenericIO_LLN0_report2 = {&iedModel_GenericIO_LLN0, "EventsRCB03", "Events1", false, "Events", 1, 8, 111, 50, 1000, &iedModel_GenericIO_LLN0_report3}; -ReportControlBlock iedModel_GenericIO_LLN0_report3 = {&iedModel_GenericIO_LLN0, "EventsRCB04", "Events1", false, "Events", 1, 8, 111, 50, 1000, &iedModel_GenericIO_LLN0_report4}; -ReportControlBlock iedModel_GenericIO_LLN0_report4 = {&iedModel_GenericIO_LLN0, "EventsRCB05", "Events1", false, "Events", 1, 8, 111, 50, 1000, NULL}; +ReportControlBlock iedModel_GenericIO_LLN0_report0 = {&iedModel_GenericIO_LLN0, "EventsRCB01", "Events1", false, "Events", 1, 24, 111, 50, 1000, &iedModel_GenericIO_LLN0_report1}; +ReportControlBlock iedModel_GenericIO_LLN0_report1 = {&iedModel_GenericIO_LLN0, "EventsRCB02", "Events1", false, "Events", 1, 24, 111, 50, 1000, &iedModel_GenericIO_LLN0_report2}; +ReportControlBlock iedModel_GenericIO_LLN0_report2 = {&iedModel_GenericIO_LLN0, "EventsRCB03", "Events1", false, "Events", 1, 24, 111, 50, 1000, &iedModel_GenericIO_LLN0_report3}; +ReportControlBlock iedModel_GenericIO_LLN0_report3 = {&iedModel_GenericIO_LLN0, "EventsRCB04", "Events1", false, "Events", 1, 24, 111, 50, 1000, &iedModel_GenericIO_LLN0_report4}; +ReportControlBlock iedModel_GenericIO_LLN0_report4 = {&iedModel_GenericIO_LLN0, "EventsRCB05", "Events1", false, "Events", 1, 24, 111, 50, 1000, NULL}; @@ -1941,4 +2428,12 @@ iedModel_GenericIO_GGIO1_SPCSO2_ctlModel.mmsValue = MmsValue_newIntegerFromInt32 iedModel_GenericIO_GGIO1_SPCSO3_ctlModel.mmsValue = MmsValue_newIntegerFromInt32(1); iedModel_GenericIO_GGIO1_DPCSO1_ctlModel.mmsValue = MmsValue_newIntegerFromInt32(3); + +iedModel_GenericIO_TIM_GAPC1_Mod_ctlModel.mmsValue = MmsValue_newIntegerFromInt32(0); + +iedModel_GenericIO_TIM_GAPC1_OpDlTmms_dataNs.mmsValue = MmsValue_newVisibleString("EXT:2015"); + +iedModel_GenericIO_TIM_GAPC1_RsDlTmms_dataNs.mmsValue = MmsValue_newVisibleString("EXT:2015"); + +iedModel_GenericIO_TIM_GAPC1_OpCntRs_ctlModel.mmsValue = MmsValue_newIntegerFromInt32(1); } diff --git a/demos/beaglebone/static_model.h b/demos/beaglebone/static_model.h index 36a7e0f..a50ade8 100644 --- a/demos/beaglebone/static_model.h +++ b/demos/beaglebone/static_model.h @@ -13,15 +13,15 @@ extern IedModel iedModel; extern LogicalDevice iedModel_GenericIO; extern LogicalNode iedModel_GenericIO_LLN0; +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_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; @@ -44,14 +44,15 @@ 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_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; extern DataObject iedModel_GenericIO_GGIO1_Health; extern DataAttribute iedModel_GenericIO_GGIO1_Health_stVal; extern DataAttribute iedModel_GenericIO_GGIO1_Health_q; @@ -161,20 +162,59 @@ 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 LogicalNode iedModel_GenericIO_TIM_GAPC1; +extern DataObject iedModel_GenericIO_TIM_GAPC1_Beh; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Beh_stVal; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Beh_q; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Beh_t; +extern DataObject iedModel_GenericIO_TIM_GAPC1_Mod; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Mod_stVal; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Mod_q; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Mod_t; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Mod_ctlModel; +extern DataObject iedModel_GenericIO_TIM_GAPC1_Str; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Str_general; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Str_dirGeneral; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Str_q; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Str_t; +extern DataObject iedModel_GenericIO_TIM_GAPC1_Op; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Op_general; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Op_q; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_Op_t; +extern DataObject iedModel_GenericIO_TIM_GAPC1_OpDlTmms; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpDlTmms_setVal; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpDlTmms_dataNs; +extern DataObject iedModel_GenericIO_TIM_GAPC1_RsDlTmms; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_RsDlTmms_setVal; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_RsDlTmms_dataNs; +extern DataObject iedModel_GenericIO_TIM_GAPC1_OpCntRs; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_stVal; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_q; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_t; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlVal; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orCat; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orIdent; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlNum; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_T; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_Test; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_Check; +extern DataAttribute iedModel_GenericIO_TIM_GAPC1_OpCntRs_ctlModel; #define IEDMODEL_GenericIO (&iedModel_GenericIO) #define IEDMODEL_GenericIO_LLN0 (&iedModel_GenericIO_LLN0) +#define IEDMODEL_GenericIO_LLN0_Beh (&iedModel_GenericIO_LLN0_Beh) +#define IEDMODEL_GenericIO_LLN0_Beh_stVal (&iedModel_GenericIO_LLN0_Beh_stVal) +#define IEDMODEL_GenericIO_LLN0_Beh_q (&iedModel_GenericIO_LLN0_Beh_q) +#define IEDMODEL_GenericIO_LLN0_Beh_t (&iedModel_GenericIO_LLN0_Beh_t) #define IEDMODEL_GenericIO_LLN0_Mod (&iedModel_GenericIO_LLN0_Mod) #define IEDMODEL_GenericIO_LLN0_Mod_stVal (&iedModel_GenericIO_LLN0_Mod_stVal) #define IEDMODEL_GenericIO_LLN0_Mod_q (&iedModel_GenericIO_LLN0_Mod_q) #define IEDMODEL_GenericIO_LLN0_Mod_t (&iedModel_GenericIO_LLN0_Mod_t) #define IEDMODEL_GenericIO_LLN0_Mod_ctlModel (&iedModel_GenericIO_LLN0_Mod_ctlModel) -#define IEDMODEL_GenericIO_LLN0_Beh (&iedModel_GenericIO_LLN0_Beh) -#define IEDMODEL_GenericIO_LLN0_Beh_stVal (&iedModel_GenericIO_LLN0_Beh_stVal) -#define IEDMODEL_GenericIO_LLN0_Beh_q (&iedModel_GenericIO_LLN0_Beh_q) -#define IEDMODEL_GenericIO_LLN0_Beh_t (&iedModel_GenericIO_LLN0_Beh_t) #define IEDMODEL_GenericIO_LLN0_Health (&iedModel_GenericIO_LLN0_Health) #define IEDMODEL_GenericIO_LLN0_Health_stVal (&iedModel_GenericIO_LLN0_Health_stVal) #define IEDMODEL_GenericIO_LLN0_Health_q (&iedModel_GenericIO_LLN0_Health_q) @@ -197,14 +237,15 @@ extern DataAttribute iedModel_GenericIO_GGIO1_Ind4_t; #define IEDMODEL_GenericIO_LPHD1_Proxy_q (&iedModel_GenericIO_LPHD1_Proxy_q) #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_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) #define IEDMODEL_GenericIO_GGIO1_Beh (&iedModel_GenericIO_GGIO1_Beh) #define IEDMODEL_GenericIO_GGIO1_Beh_stVal (&iedModel_GenericIO_GGIO1_Beh_stVal) #define IEDMODEL_GenericIO_GGIO1_Beh_q (&iedModel_GenericIO_GGIO1_Beh_q) #define IEDMODEL_GenericIO_GGIO1_Beh_t (&iedModel_GenericIO_GGIO1_Beh_t) +#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) #define IEDMODEL_GenericIO_GGIO1_Health (&iedModel_GenericIO_GGIO1_Health) #define IEDMODEL_GenericIO_GGIO1_Health_stVal (&iedModel_GenericIO_GGIO1_Health_stVal) #define IEDMODEL_GenericIO_GGIO1_Health_q (&iedModel_GenericIO_GGIO1_Health_q) @@ -314,6 +355,45 @@ extern DataAttribute iedModel_GenericIO_GGIO1_Ind4_t; #define IEDMODEL_GenericIO_GGIO1_Ind4_stVal (&iedModel_GenericIO_GGIO1_Ind4_stVal) #define IEDMODEL_GenericIO_GGIO1_Ind4_q (&iedModel_GenericIO_GGIO1_Ind4_q) #define IEDMODEL_GenericIO_GGIO1_Ind4_t (&iedModel_GenericIO_GGIO1_Ind4_t) +#define IEDMODEL_GenericIO_TIM_GAPC1 (&iedModel_GenericIO_TIM_GAPC1) +#define IEDMODEL_GenericIO_TIM_GAPC1_Beh (&iedModel_GenericIO_TIM_GAPC1_Beh) +#define IEDMODEL_GenericIO_TIM_GAPC1_Beh_stVal (&iedModel_GenericIO_TIM_GAPC1_Beh_stVal) +#define IEDMODEL_GenericIO_TIM_GAPC1_Beh_q (&iedModel_GenericIO_TIM_GAPC1_Beh_q) +#define IEDMODEL_GenericIO_TIM_GAPC1_Beh_t (&iedModel_GenericIO_TIM_GAPC1_Beh_t) +#define IEDMODEL_GenericIO_TIM_GAPC1_Mod (&iedModel_GenericIO_TIM_GAPC1_Mod) +#define IEDMODEL_GenericIO_TIM_GAPC1_Mod_stVal (&iedModel_GenericIO_TIM_GAPC1_Mod_stVal) +#define IEDMODEL_GenericIO_TIM_GAPC1_Mod_q (&iedModel_GenericIO_TIM_GAPC1_Mod_q) +#define IEDMODEL_GenericIO_TIM_GAPC1_Mod_t (&iedModel_GenericIO_TIM_GAPC1_Mod_t) +#define IEDMODEL_GenericIO_TIM_GAPC1_Mod_ctlModel (&iedModel_GenericIO_TIM_GAPC1_Mod_ctlModel) +#define IEDMODEL_GenericIO_TIM_GAPC1_Str (&iedModel_GenericIO_TIM_GAPC1_Str) +#define IEDMODEL_GenericIO_TIM_GAPC1_Str_general (&iedModel_GenericIO_TIM_GAPC1_Str_general) +#define IEDMODEL_GenericIO_TIM_GAPC1_Str_dirGeneral (&iedModel_GenericIO_TIM_GAPC1_Str_dirGeneral) +#define IEDMODEL_GenericIO_TIM_GAPC1_Str_q (&iedModel_GenericIO_TIM_GAPC1_Str_q) +#define IEDMODEL_GenericIO_TIM_GAPC1_Str_t (&iedModel_GenericIO_TIM_GAPC1_Str_t) +#define IEDMODEL_GenericIO_TIM_GAPC1_Op (&iedModel_GenericIO_TIM_GAPC1_Op) +#define IEDMODEL_GenericIO_TIM_GAPC1_Op_general (&iedModel_GenericIO_TIM_GAPC1_Op_general) +#define IEDMODEL_GenericIO_TIM_GAPC1_Op_q (&iedModel_GenericIO_TIM_GAPC1_Op_q) +#define IEDMODEL_GenericIO_TIM_GAPC1_Op_t (&iedModel_GenericIO_TIM_GAPC1_Op_t) +#define IEDMODEL_GenericIO_TIM_GAPC1_OpDlTmms (&iedModel_GenericIO_TIM_GAPC1_OpDlTmms) +#define IEDMODEL_GenericIO_TIM_GAPC1_OpDlTmms_setVal (&iedModel_GenericIO_TIM_GAPC1_OpDlTmms_setVal) +#define IEDMODEL_GenericIO_TIM_GAPC1_OpDlTmms_dataNs (&iedModel_GenericIO_TIM_GAPC1_OpDlTmms_dataNs) +#define IEDMODEL_GenericIO_TIM_GAPC1_RsDlTmms (&iedModel_GenericIO_TIM_GAPC1_RsDlTmms) +#define IEDMODEL_GenericIO_TIM_GAPC1_RsDlTmms_setVal (&iedModel_GenericIO_TIM_GAPC1_RsDlTmms_setVal) +#define IEDMODEL_GenericIO_TIM_GAPC1_RsDlTmms_dataNs (&iedModel_GenericIO_TIM_GAPC1_RsDlTmms_dataNs) +#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs (&iedModel_GenericIO_TIM_GAPC1_OpCntRs) +#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_stVal (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_stVal) +#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_q (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_q) +#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_t (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_t) +#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_Oper (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper) +#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlVal (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlVal) +#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin) +#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orCat (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orCat) +#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orIdent (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_origin_orIdent) +#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlNum (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_ctlNum) +#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_Oper_T (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_T) +#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_Oper_Test (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_Test) +#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_Oper_Check (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_Oper_Check) +#define IEDMODEL_GenericIO_TIM_GAPC1_OpCntRs_ctlModel (&iedModel_GenericIO_TIM_GAPC1_OpCntRs_ctlModel) #endif /* STATIC_MODEL_H_ */