From 97e8bd8f814eb638bde1cd84e53962cdaaa84612 Mon Sep 17 00:00:00 2001 From: Michael Zillgith Date: Tue, 9 Jun 2015 13:15:33 +0200 Subject: [PATCH] - added function IedModel_setIedNameForDynamicModel --- src/iec61850/inc/iec61850_dynamic_model.h | 14 ++++++++++++++ src/iec61850/server/model/dynamic_model.c | 9 +++++++++ src/iec61850/server/model/model.c | 2 +- src/vs/libiec61850-wo-goose.def | 1 + src/vs/libiec61850.def | 1 + 5 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/iec61850/inc/iec61850_dynamic_model.h b/src/iec61850/inc/iec61850_dynamic_model.h index 84b0239..7772533 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 f6f2d0f..09a719e 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 8aef85e..ad1bd59 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 8a8b60a..8f30508 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 b944370..fa29b64 100644 --- a/src/vs/libiec61850.def +++ b/src/vs/libiec61850.def @@ -513,3 +513,4 @@ EXPORTS MmsServerIdentity_destroy ClientReport_getBufOvfl MmsValue_getUtcTimeInMsWithUs + IedModel_setIedNameForDynamicModel