diff --git a/src/iec61850/inc/iec61850_dynamic_model.h b/src/iec61850/inc/iec61850_dynamic_model.h index 84b02390..77725334 100644 --- a/src/iec61850/inc/iec61850_dynamic_model.h +++ b/src/iec61850/inc/iec61850_dynamic_model.h @@ -55,6 +55,20 @@ extern "C" { IedModel* IedModel_create(const char* name/*, MemoryAllocator allocator*/); +/** + * \brief Set the name of the IED (use only for dynamic model!) + * + * This will change the default name (usualy "TEMPLATE") to a user configured values. + * NOTE: This function has to be called before IedServer_create ! + * NOTE: For dynamic model (and configuration file date model) this function has to be + * used instead of IedModel_setIedName. + * + * \param model the IedModel instance + * \param the name of the configured IED + */ +void +IedModel_setIedNameForDynamicModel(IedModel* self, const char* name); + /** * \brief destroy a dynamically created data model * diff --git a/src/iec61850/server/model/dynamic_model.c b/src/iec61850/server/model/dynamic_model.c index f6f2d0ff..09a719e9 100644 --- a/src/iec61850/server/model/dynamic_model.c +++ b/src/iec61850/server/model/dynamic_model.c @@ -31,6 +31,15 @@ iedModel_emptyVariableInitializer(void) return; } +void +IedModel_setIedNameForDynamicModel(IedModel* self, const char* name) +{ + if (self->name != NULL) + GLOBAL_FREEMEM(self->name); + + self->name = copyString(name); +} + IedModel* IedModel_create(const char* name/*, MemoryAllocator allocator*/) { diff --git a/src/iec61850/server/model/model.c b/src/iec61850/server/model/model.c index 8aef85e7..ad1bd598 100644 --- a/src/iec61850/server/model/model.c +++ b/src/iec61850/server/model/model.c @@ -46,7 +46,7 @@ void IedModel_setIedName(IedModel* self, const char* name) { self->name = (char*) name; -}; +} void IedModel_setAttributeValuesToNull(IedModel* iedModel) diff --git a/src/vs/libiec61850-wo-goose.def b/src/vs/libiec61850-wo-goose.def index 8a8b60ad..8f305081 100644 --- a/src/vs/libiec61850-wo-goose.def +++ b/src/vs/libiec61850-wo-goose.def @@ -489,3 +489,4 @@ EXPORTS MmsServerIdentity_destroy ClientReport_getBufOvfl MmsValue_getUtcTimeInMsWithUs + IedModel_setIedNameForDynamicModel diff --git a/src/vs/libiec61850.def b/src/vs/libiec61850.def index b9443701..fa29b647 100644 --- a/src/vs/libiec61850.def +++ b/src/vs/libiec61850.def @@ -513,3 +513,4 @@ EXPORTS MmsServerIdentity_destroy ClientReport_getBufOvfl MmsValue_getUtcTimeInMsWithUs + IedModel_setIedNameForDynamicModel