From fe9d292d29cf7d5877f6ef55ffca7ed1f3b903fe Mon Sep 17 00:00:00 2001 From: Michael Zillgith Date: Thu, 8 Mar 2018 09:13:05 +0100 Subject: [PATCH] - java-tools: added support for OptFlds and TrgOps basic data types --- src/iec61850/inc/iec61850_dynamic_model.h | 3 +++ src/iec61850/server/impl/ied_server.c | 2 +- .../server/model/config_file_parser.c | 10 ++++++++++ tools/model_generator/genmodel.jar | Bin 88749 -> 88824 bytes .../libiec61850/scl/model/AttributeType.java | 8 +++++--- 5 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/iec61850/inc/iec61850_dynamic_model.h b/src/iec61850/inc/iec61850_dynamic_model.h index ee011dbe..78c9ee76 100644 --- a/src/iec61850/inc/iec61850_dynamic_model.h +++ b/src/iec61850/inc/iec61850_dynamic_model.h @@ -303,6 +303,9 @@ DataSetEntry_getNext(DataSetEntry* self); * that have to contain the LN name, the FC and subsequent path elements separated by "$" instead of ".". * This is due to efficiency reasons to avoid the creation of additional strings. * + * If the variable parameter does not contain a logical device name (separated from the remaining variable + * name by the "/" character) the logical device where the data set resides is used automatically. + * * \param dataSet the data set to which the new entry will be added * \param variable the name of the variable as MMS variable name including FC ("$" used as separator!) * \param index the index if the FCDA is an array element, otherwise -1 diff --git a/src/iec61850/server/impl/ied_server.c b/src/iec61850/server/impl/ied_server.c index 72f07d45..ff1d6504 100644 --- a/src/iec61850/server/impl/ied_server.c +++ b/src/iec61850/server/impl/ied_server.c @@ -1,7 +1,7 @@ /* * ied_server.c * - * Copyright 2013-2016 Michael Zillgith + * Copyright 2013-2018 Michael Zillgith * * This file is part of libIEC61850. * diff --git a/src/iec61850/server/model/config_file_parser.c b/src/iec61850/server/model/config_file_parser.c index c63a802d..a05d79dd 100644 --- a/src/iec61850/server/model/config_file_parser.c +++ b/src/iec61850/server/model/config_file_parser.c @@ -392,6 +392,16 @@ ConfigFileParser_createModelFromConfigFile(FileHandle fileHandle) } break; + case IEC61850_OPTFLDS: + case IEC61850_TRGOPS: + { + int value; + if (sscanf(valueIndicator + 1, "%i", &value) != 1) goto exit_error; + dataAttribute->mmsValue = MmsValue_newBitString(2); + MmsValue_setBitStringFromIntegerBigEndian(dataAttribute->mmsValue, value); + } + break; + default: break; diff --git a/tools/model_generator/genmodel.jar b/tools/model_generator/genmodel.jar index 6c45543a5955fce6e250f35cd2c183409d70b2e4..f7894e4e2d325cfe2619296276cba16ddc371573 100644 GIT binary patch delta 4834 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