diff --git a/tools/model_generator/genmodel.jar b/tools/model_generator/genmodel.jar index 7edb5db..705432f 100644 Binary files a/tools/model_generator/genmodel.jar and b/tools/model_generator/genmodel.jar differ diff --git a/tools/model_generator/src/com/libiec61850/tools/StaticModelGenerator.java b/tools/model_generator/src/com/libiec61850/tools/StaticModelGenerator.java index 0c6afc0..0a03b23 100644 --- a/tools/model_generator/src/com/libiec61850/tools/StaticModelGenerator.java +++ b/tools/model_generator/src/com/libiec61850/tools/StaticModelGenerator.java @@ -536,17 +536,30 @@ public class StaticModelGenerator { cOut.println("};\n"); if (dataAttribute.getSubDataAttributes() != null) - printDataAttributeDefinitions(daName, dataAttribute.getSubDataAttributes()); - - if (dataAttribute.getValue() != null) { - printValue(daName, dataAttribute); + + + printDataAttributeDefinitions(daName, dataAttribute.getSubDataAttributes()); + + DataModelValue value = dataAttribute.getValue(); + + /* if no value is given use default value for type if present */ + if (value == null) { + value = dataAttribute.getDefinition().getValue(); + + if (value != null) + if (value.getValue() == null) + value.updateEnumOrdValue(ied.getTypeDeclarations()); } + + if (value != null) { + printValue(daName, dataAttribute, value); + } + } } - private void printValue(String daName, DataAttribute dataAttribute) { - DataModelValue value = dataAttribute.getValue(); + private void printValue(String daName, DataAttribute dataAttribute, DataModelValue value) { StringBuffer buffer = this.initializerBuffer;