From 9f3854fbfbc0d824a07545f7e2e920e1aebf5ec0 Mon Sep 17 00:00:00 2001 From: Michael Zillgith Date: Thu, 4 Dec 2014 16:16:20 +0100 Subject: [PATCH] - dynamic model generator can now use default values also for type templates --- .../client_example_reporting.c | 3 ++- src/iec61850/server/mms_mapping/mms_mapping.c | 13 ++++++++----- tools/model_generator/genconfig.jar | Bin 73492 -> 73522 bytes .../scl/DataAttributeDefinition.java | 11 ++++++++++- .../libiec61850/scl/model/DataModelValue.java | 2 +- .../tools/DynamicModelGenerator.java | 6 +++--- 6 files changed, 24 insertions(+), 11 deletions(-) diff --git a/examples/iec61850_client_example_reporting/client_example_reporting.c b/examples/iec61850_client_example_reporting/client_example_reporting.c index 1c6f7a86..4c80c89f 100644 --- a/examples/iec61850_client_example_reporting/client_example_reporting.c +++ b/examples/iec61850_client_example_reporting/client_example_reporting.c @@ -33,7 +33,8 @@ reportCallbackFunction(void* parameter, ClientReport report) if (ClientReport_hasTimestamp(report)) { time_t unixTime = ClientReport_getTimestamp(report) / 1000; -#ifdef _MSC_VER +//#ifdef _MSC_VER +#ifdef WIN32 char* timeBuf = ctime(&unixTime); #else char timeBuf[30]; diff --git a/src/iec61850/server/mms_mapping/mms_mapping.c b/src/iec61850/server/mms_mapping/mms_mapping.c index 9cba233e..aa18d62f 100644 --- a/src/iec61850/server/mms_mapping/mms_mapping.c +++ b/src/iec61850/server/mms_mapping/mms_mapping.c @@ -2078,8 +2078,10 @@ MmsMapping_setConnectionIndicationHandler(MmsMapping* self, IedConnectionIndicat static bool isMemberValueRecursive(MmsValue* container, MmsValue* value) { + bool isMemberValue = false; + if (container == value) - return true; + isMemberValue = true; else { if ((MmsValue_getType(container) == MMS_STRUCTURE) || (MmsValue_getType(container) == MMS_ARRAY)) @@ -2088,14 +2090,15 @@ isMemberValueRecursive(MmsValue* container, MmsValue* value) int compCount = MmsValue_getArraySize(container); int i; for (i = 0; i < compCount; i++) { - if (isMemberValueRecursive(MmsValue_getElement(container, i), value)) - return true; + if (isMemberValueRecursive(MmsValue_getElement(container, i), value)) { + isMemberValue = true; + break; + } } - } } - return false; + return isMemberValue; } static bool diff --git a/tools/model_generator/genconfig.jar b/tools/model_generator/genconfig.jar index d2f898de6436e73021d8b143227173b5b5acd648..6887d633c5a64f9f603de70a093a50d54cb79511 100644 GIT binary patch delta 9477 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 delta 9384 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 CR>buH diff --git a/tools/model_generator/src/com/libiec61850/scl/DataAttributeDefinition.java b/tools/model_generator/src/com/libiec61850/scl/DataAttributeDefinition.java index 6707194a..e554aa4e 100644 --- a/tools/model_generator/src/com/libiec61850/scl/DataAttributeDefinition.java +++ b/tools/model_generator/src/com/libiec61850/scl/DataAttributeDefinition.java @@ -109,9 +109,18 @@ public class DataAttributeDefinition { String value = elementNode.getTextContent(); - if (attributeType != AttributeType.ENUMERATED) { + if (attributeType == AttributeType.ENUMERATED) { this.value = new DataModelValue(attributeType, this.type, value); + } + else { + try { + this.value = new DataModelValue(attributeType, (SclType) null, value); + } catch (IllegalValueException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } + } } } diff --git a/tools/model_generator/src/com/libiec61850/scl/model/DataModelValue.java b/tools/model_generator/src/com/libiec61850/scl/model/DataModelValue.java index b072dc91..a0f8c613 100644 --- a/tools/model_generator/src/com/libiec61850/scl/model/DataModelValue.java +++ b/tools/model_generator/src/com/libiec61850/scl/model/DataModelValue.java @@ -40,7 +40,7 @@ public class DataModelValue { } public DataModelValue(AttributeType type, SclType sclType, String value) throws IllegalValueException { - + switch (type) { case ENUMERATED: EnumerationType enumType = (EnumerationType) sclType; diff --git a/tools/model_generator/src/com/libiec61850/tools/DynamicModelGenerator.java b/tools/model_generator/src/com/libiec61850/tools/DynamicModelGenerator.java index d2e65a56..900335cd 100644 --- a/tools/model_generator/src/com/libiec61850/tools/DynamicModelGenerator.java +++ b/tools/model_generator/src/com/libiec61850/tools/DynamicModelGenerator.java @@ -287,9 +287,9 @@ public class DynamicModelGenerator { if (value == null) { value = dataAttribute.getDefinition().getValue(); - if (value != null) - if (value.getValue() == null) - value.updateEnumOrdValue(ied.getTypeDeclarations()); +// if (value != null) +// if (value.getValue() == null) +// value.updateEnumOrdValue(ied.getTypeDeclarations()); } if (value != null) {