diff --git a/.travis.yml b/.travis.yml index 451edad3..a01afd39 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,8 @@ +dist: focal + language: node_js node_js: - - "15" + - "18" env: - MODELICAPATH="./.tmp/" diff --git a/app.js b/app.js index 4c2f5f50..aaf09084 100644 --- a/app.js +++ b/app.js @@ -9,13 +9,13 @@ const path = require('path') const ArgumentParser = require('argparse').ArgumentParser /// /////////////////////////////////////// -var parser = new ArgumentParser({ +const parser = new ArgumentParser({ version: '0.0.1', addHelp: true, description: 'Modelica parser' }) parser.addArgument( - [ '-o', '--output' ], + ['-o', '--output'], { help: 'Specify output format.', choices: ['raw-json', 'json', 'modelica', 'semantic'], @@ -23,7 +23,7 @@ parser.addArgument( } ) parser.addArgument( - [ '-l', '--log' ], + ['-l', '--log'], { help: "Logging level, 'info' is the default.", choices: ['error', 'warn', 'info', 'verbose', 'debug'], @@ -31,7 +31,7 @@ parser.addArgument( } ) parser.addArgument( - [ '-m', '--mode' ], + ['-m', '--mode'], { help: "Parsing mode, CDL model or a package of the Modelica Buildings library, 'cdl' is the default.", choices: ['cdl', 'modelica'], @@ -39,14 +39,14 @@ parser.addArgument( } ) parser.addArgument( - [ '-f', '--file' ], + ['-f', '--file'], { help: "Filename or packagename that contains the top-level Modelica class, or a json file when the output format is 'modelica'.", required: true } ) parser.addArgument( - [ '-d', '--directory' ], + ['-d', '--directory'], { help: 'Specify output directory, with the default being the current.', defaultValue: 'current' @@ -55,14 +55,14 @@ parser.addArgument( parser.addArgument( - [ '-p', '--prettyPrint' ], + ['-p', '--prettyPrint'], { help: 'Pretty print JSON output.', defaultValue: 'false' } ) -var args = parser.parseArgs() +const args = parser.parseArgs() const logFile = 'modelica-json.log' try { @@ -94,9 +94,9 @@ if (args.output === 'modelica') { } else { // Get mo files array - var completedJsonGeneration = new Promise( + const completedJsonGeneration = new Promise( function (resolve, reject) { - var moFiles = ut.getMoFiles(args.file) + const moFiles = ut.getMoFiles(args.file) // Parse the json representation for moFiles pa.getJsons(moFiles, args.mode, args.output, args.directory, args.prettyPrint) resolve(0) @@ -110,21 +110,21 @@ if (args.output === 'modelica') { } if (args.output === 'json') { - var schema + let schema if (args.mode === 'cdl') { schema = path.join(`${__dirname}`, 'schema-cdl.json') } else { schema = path.join(`${__dirname}`, 'schema-modelica.json') } - var jsonFiles = ut.findFilesInDir(path.join(args.directory, 'json'), '.json') + let jsonFiles = ut.findFilesInDir(path.join(args.directory, 'json'), '.json') // exclude CDL folder and possibly Modelica folder - var pathSep = path.sep - var cdlPath = path.join(pathSep, 'CDL', pathSep) - var modelicaPath = path.join('Modelica', pathSep) + const pathSep = path.sep + const cdlPath = path.join(pathSep, 'CDL', pathSep) + const modelicaPath = path.join('Modelica', pathSep) jsonFiles = jsonFiles.filter(obj => !(obj.includes(cdlPath) || obj.includes(modelicaPath))) // validate json schema - for (var i = 0; i < jsonFiles.length; i++) { - var eachFile = jsonFiles[i] + for (let i = 0; i < jsonFiles.length; i++) { + const eachFile = jsonFiles[i] setTimeout(function () { ut.jsonSchemaValidation(args.mode, eachFile, 'json', schema) }, 100) } } diff --git a/json2mo/algorithmSection.js b/json2mo/algorithmSection.js index e4947d1a..afd81018 100644 --- a/json2mo/algorithmSection.js +++ b/json2mo/algorithmSection.js @@ -1,14 +1,14 @@ function parse (content, rawJson = false) { const statementParser = require('./statement') - var moOutput = '' + let moOutput = '' if (content.initial != null) { if (content.initial) { moOutput += 'initial ' } } moOutput += 'algorithm' - var statements = null + let statements = null if (rawJson) { statements = content.statements } else { @@ -24,4 +24,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/annotation.js b/json2mo/annotation.js index 5bfe6150..cf486dea 100644 --- a/json2mo/annotation.js +++ b/json2mo/annotation.js @@ -1,18 +1,18 @@ function parse (content, rawJson = false) { const classModificationParser = require('./classModification') - var moOutput = '' + let moOutput = '' moOutput += '\n\tannotation ' if (rawJson) { if (content.class_modification != null) { moOutput += classModificationParser.parse(content.class_modification, rawJson) } } else { - var classModification = content + const classModification = content moOutput += classModificationParser.parse(classModification, rawJson) } - // moOutput+="\n" + // moOutput+="\n" return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/argument.js b/json2mo/argument.js index d6302a98..ba38fdca 100644 --- a/json2mo/argument.js +++ b/json2mo/argument.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const elementModificationOrReplaceable = require('./elementModificationOrReplaceable') const elementRedeclaration = require('./elementRedeclaration') - var moOutput = '' + let moOutput = '' if (content.element_modification_or_replaceable != null) { moOutput += elementModificationOrReplaceable.parse(content.element_modification_or_replaceable, rawJson) } else if (content.element_redeclaration != null) { @@ -11,4 +11,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/argumentList.js b/json2mo/argumentList.js index 5d33238a..66da1b60 100644 --- a/json2mo/argumentList.js +++ b/json2mo/argumentList.js @@ -1,8 +1,8 @@ function parse (content, rawJson = false) { const argumentParser = require('./argument') - var moOutput = '' + let moOutput = '' if (rawJson) { - var argumentStr = content.arguments + const argumentStr = content.arguments if (argumentStr != null) { argumentStr.forEach(argument => { @@ -15,4 +15,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/arraySubscripts.js b/json2mo/arraySubscripts.js index b1e5265b..566ae7c0 100644 --- a/json2mo/arraySubscripts.js +++ b/json2mo/arraySubscripts.js @@ -2,11 +2,11 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') const subscriptParser = require('./subscript') - var moOutput = '' + let moOutput = '' if (rawJson) { moOutput += '[' - var subscripts = content.subscripts + const subscripts = content.subscripts if (subscripts != null) { subscripts.forEach(subscript => { moOutput += subscriptParser.parse(subscript, rawJson) @@ -16,7 +16,7 @@ function parse (content, rawJson = false) { } moOutput += '] ' } else { - var arraySubscripts = content + const arraySubscripts = content moOutput += '[' if (arraySubscripts != null) { @@ -37,4 +37,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/assignmentEquation.js b/json2mo/assignmentEquation.js index aa9c7595..8ed11e88 100644 --- a/json2mo/assignmentEquation.js +++ b/json2mo/assignmentEquation.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const simpleExpression = require('./simpleExpression') const expressionParser = require('./expression') - var moOutput = '' + let moOutput = '' if (content.lhs != null) { moOutput += simpleExpression.parse(content.lhs, rawJson) } @@ -13,4 +13,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/assignmentStatement.js b/json2mo/assignmentStatement.js index a4fe21fa..8e26eb3a 100644 --- a/json2mo/assignmentStatement.js +++ b/json2mo/assignmentStatement.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const componentReferenceParser = require('./componentReference') const expressionParser = require('./expression') - var moOutput = '' + let moOutput = '' if (content.identifier != null) { moOutput += componentReferenceParser.parse(content.identifier, rawJson) } @@ -13,4 +13,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/assignmentWithFunctionCallStatement.js b/json2mo/assignmentWithFunctionCallStatement.js index 42c9764a..7fa4ea6d 100644 --- a/json2mo/assignmentWithFunctionCallStatement.js +++ b/json2mo/assignmentWithFunctionCallStatement.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const outputExpressionListParser = require('./outputExpressionList') const functionCallArgsParser = require('./functionCallArgs') - var moOutput = '' + let moOutput = '' moOutput += '(' if (content.output_expression_list != null) { moOutput += outputExpressionListParser.parse(content.output_expression_list, rawJson) @@ -19,4 +19,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/basePrefix.js b/json2mo/basePrefix.js index 1e77408d..434255d4 100644 --- a/json2mo/basePrefix.js +++ b/json2mo/basePrefix.js @@ -1,12 +1,12 @@ function parse (content, rawJson = false) { const util = require('util') - var moOutput = '' + let moOutput = '' if (rawJson) { if (content.type_prefix != null) { moOutput += util.format('%s ', content.type_prefix) } } else { - var basePrefix = content + const basePrefix = content if (basePrefix != null) { moOutput += util.format('%s ', basePrefix) } @@ -15,4 +15,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/classDefinition.js b/json2mo/classDefinition.js index df7c4401..f7581b96 100644 --- a/json2mo/classDefinition.js +++ b/json2mo/classDefinition.js @@ -1,9 +1,9 @@ function parse (content, rawJson = false) { const util = require('util') const classSpecifier = require('./classSpecifier') - var encapsulated = content.encapsulated - var classPrefixes = content.class_prefixes - var moOutput = '' + const encapsulated = content.encapsulated + const classPrefixes = content.class_prefixes + let moOutput = '' if (encapsulated != null) { if (encapsulated) { @@ -18,4 +18,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/classModification.js b/json2mo/classModification.js index 30c920bd..9731e248 100644 --- a/json2mo/classModification.js +++ b/json2mo/classModification.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const argumentListParser = require('./argumentList') const argumentParser = require('./argument') - var moOutput = '' + let moOutput = '' if (rawJson) { moOutput += '(\n\t' if (content.argument_list != null) { @@ -10,7 +10,7 @@ function parse (content, rawJson = false) { } moOutput += ')\n\t' } else { - var argumentList = content + const argumentList = content moOutput += '(\n\t' argumentList.forEach(argument => { @@ -24,4 +24,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/classSpecifier.js b/json2mo/classSpecifier.js index 21e03906..009bc732 100644 --- a/json2mo/classSpecifier.js +++ b/json2mo/classSpecifier.js @@ -3,11 +3,11 @@ function parse (content, rawJson = false) { const shortClassSpecifierParser = require('./shortClassSpecifier') const derClassSpecifierParser = require('./derClassSpecifier') - var longClassSpecifier = content.long_class_specifier - var shortClassSpecifier = content.short_class_specifier - var derClassSpecifier = content.der_class_specifier + const longClassSpecifier = content.long_class_specifier + const shortClassSpecifier = content.short_class_specifier + const derClassSpecifier = content.der_class_specifier - var moOutput = '' + let moOutput = '' if (longClassSpecifier != null) { moOutput += longClassSpecifierParser.parse(longClassSpecifier, rawJson) @@ -24,4 +24,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/comment.js b/json2mo/comment.js index fb7130f3..57c97cec 100644 --- a/json2mo/comment.js +++ b/json2mo/comment.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const util = require('util') const annotationParser = require('./annotation') - var moOutput = '' + let moOutput = '' if (rawJson) { if (content.string_comment != null) { moOutput += util.format('\n"\t%s"', content.string_comment) @@ -22,4 +22,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/componentClause.js b/json2mo/componentClause.js index 20783ed9..c864e2e4 100644 --- a/json2mo/componentClause.js +++ b/json2mo/componentClause.js @@ -4,7 +4,7 @@ function parse (content, rawJson = false) { const componentListParser = require('./componentList') const util = require('util') - var moOutput = '' + let moOutput = '' if (content.type_prefix != null) { moOutput += util.format('%s ', content.type_prefix) @@ -28,4 +28,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/componentClause1.js b/json2mo/componentClause1.js index 6b7d6158..6fe2be56 100644 --- a/json2mo/componentClause1.js +++ b/json2mo/componentClause1.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const typeSpecifierParser = require('./typeSpecifier') const componentDeclaration1Parser = require('./componentDeclaration1') - var moOutput = '' + let moOutput = '' if (rawJson) { if (content.type_prefix != null) { moOutput += util.format('%s ', content.type_prefix) @@ -29,4 +29,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/componentDeclaration.js b/json2mo/componentDeclaration.js index 84965239..74c21871 100644 --- a/json2mo/componentDeclaration.js +++ b/json2mo/componentDeclaration.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const conditionAttributeParser = require('./condition_attribute') const commentParser = require('./comment') - var moOutput = '' + let moOutput = '' if (content.declaration != null) { moOutput += declarationParser.parse(content.declaration, rawJson) } @@ -16,4 +16,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/componentDeclaration1.js b/json2mo/componentDeclaration1.js index af3b0619..d0fc73b2 100644 --- a/json2mo/componentDeclaration1.js +++ b/json2mo/componentDeclaration1.js @@ -2,7 +2,7 @@ function parse (content, rawJson) { const declarationParser = require('./declaration') const commentParser = require('./comment') - var moOutput = '' + let moOutput = '' if (content.declaration != null) { moOutput += declarationParser.parse(content.declaration, rawJson) } @@ -18,4 +18,4 @@ function parse (content, rawJson) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/componentList.js b/json2mo/componentList.js index 0a32662b..69fa0093 100644 --- a/json2mo/componentList.js +++ b/json2mo/componentList.js @@ -4,8 +4,8 @@ function parse (content, rawJson = false) { const conditionAttributeParser = require('./conditionAttribute') const commentParser = require('./comment') - var moOutput = '' - var componentDeclarationList + let moOutput = '' + let componentDeclarationList if (rawJson) { componentDeclarationList = content.component_declaration_list @@ -30,4 +30,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/componentReference.js b/json2mo/componentReference.js index 985c16e1..76dc5d2c 100644 --- a/json2mo/componentReference.js +++ b/json2mo/componentReference.js @@ -3,8 +3,8 @@ function parse (content, rawJson = false) { const arraySubscriptsParser = require('./arraySubscripts') const componentReferencePartParser = require('./componentReferencePart') - var moOutput = '' - var componentReferenceParts + let moOutput = '' + let componentReferenceParts if (rawJson) { componentReferenceParts = content.component_reference_parts if (componentReferenceParts != null) { @@ -31,4 +31,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/componentReferencePart.js b/json2mo/componentReferencePart.js index 62207012..d54db7c6 100644 --- a/json2mo/componentReferencePart.js +++ b/json2mo/componentReferencePart.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const util = require('util') const arraySubscriptsParser = require('./arraySubscripts') - var moOutput = '' + let moOutput = '' if (rawJson) { if (content.dot_op != null) { @@ -20,4 +20,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/composition.js b/json2mo/composition.js index 8d172440..83379d8c 100644 --- a/json2mo/composition.js +++ b/json2mo/composition.js @@ -4,12 +4,12 @@ function parse (content, rawJson = false) { const externalCompositionParser = require('./externalComposition') const annotationParser = require('./annotation') - var moOutput = '' + let moOutput = '' if (content.element_list != null) { moOutput += elementListParser.parse(content.element_list, rawJson) } if (content.element_sections != null) { - var elementSections = content.element_sections + const elementSections = content.element_sections elementSections.forEach(ele => { moOutput += elementSectionParser.parse(ele, rawJson) }) @@ -24,4 +24,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/conditionAttribute.js b/json2mo/conditionAttribute.js index ed602634..9fd2db87 100644 --- a/json2mo/conditionAttribute.js +++ b/json2mo/conditionAttribute.js @@ -1,14 +1,14 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') - var moOutput = '' + let moOutput = '' moOutput += '\n\tif ' if (rawJson) { if (content.expression != null) { moOutput += expressionParser.parse(content.expression, rawJson) } } else { - var expression = content + const expression = content if (expression != null) { moOutput += expressionParser.parse(expression, rawJson) } @@ -16,4 +16,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/connectClause.js b/json2mo/connectClause.js index 30f55342..407864af 100644 --- a/json2mo/connectClause.js +++ b/json2mo/connectClause.js @@ -1,7 +1,7 @@ function parse (content, rawJson = false) { const componentReferenceParser = require('./componentReference') - var moOutput = '' + let moOutput = '' moOutput += 'connect(' if (content.from != null) { moOutput += componentReferenceParser.parse(content.from, rawJson) @@ -14,4 +14,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/constrainingClause.js b/json2mo/constrainingClause.js index a99e6dfd..6db1802c 100644 --- a/json2mo/constrainingClause.js +++ b/json2mo/constrainingClause.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const nameParser = require('./name') const classModificationParser = require('./classModification') - var moOutput = '' + let moOutput = '' moOutput += 'constrainedby ' if (content.name != null) { @@ -14,4 +14,4 @@ function parse (content, rawJson = false) { } return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/declaration.js b/json2mo/declaration.js index 8aad3b5c..0ac5eb50 100644 --- a/json2mo/declaration.js +++ b/json2mo/declaration.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const arraySubscriptsParser = require('./arraySubscripts') const modificationParser = require('./modification') - var moOutput = '' + let moOutput = '' if (content.identifier != null) { moOutput += util.format('%s', content.identifier) } @@ -16,4 +16,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/derClassSpecifier.js b/json2mo/derClassSpecifier.js index 13ea81a9..efa12d71 100644 --- a/json2mo/derClassSpecifier.js +++ b/json2mo/derClassSpecifier.js @@ -2,8 +2,8 @@ function parse (content, rawJson = false) { const util = require('util') const derClassSpecifierValueParser = require('./derClassSpecifierValue') - var moOutput = '' - var identifier = content.identifier + let moOutput = '' + const identifier = content.identifier if (identifier != null) { moOutput += util.format('%s= ', identifier) @@ -22,4 +22,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/derClassSpecifierValue.js b/json2mo/derClassSpecifierValue.js index 55e1f1b2..a941df3b 100644 --- a/json2mo/derClassSpecifierValue.js +++ b/json2mo/derClassSpecifierValue.js @@ -3,11 +3,11 @@ function parse (content, rawJson = false) { const nameParser = require('./name') const commentParser = require('./comment') - var moOutput = 'der(' + let moOutput = 'der(' if (content.type_specifier != null) { moOutput += nameParser.parse(content.type_specifier, rawJson) } - var identifiers = null + let identifiers = null if (rawJson) { identifiers = content.identifiers } else { @@ -33,4 +33,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/element.js b/json2mo/element.js index 28ad146d..cdbf11dc 100644 --- a/json2mo/element.js +++ b/json2mo/element.js @@ -6,7 +6,7 @@ function parse (content, rawJson = false) { const constrainingClauseParser = require('./constrainingClause') const commentParser = require('./comment') - var moOutput = '' + let moOutput = '' if (content.import_clause != null) { moOutput += importClauseParser.parse(content.import_clause, rawJson) moOutput += ';\n' @@ -84,4 +84,4 @@ function parse (content, rawJson = false) { } return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/elementList.js b/json2mo/elementList.js index 50860176..09469c42 100644 --- a/json2mo/elementList.js +++ b/json2mo/elementList.js @@ -1,8 +1,8 @@ function parse (content, rawJson = false) { const elementParser = require('./element') - var moOutput = '' - var elements + let moOutput = '' + let elements if (rawJson) { elements = content.elements if (elements != null) { @@ -22,4 +22,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/elementModification.js b/json2mo/elementModification.js index f47b90ae..c290a6a0 100644 --- a/json2mo/elementModification.js +++ b/json2mo/elementModification.js @@ -6,14 +6,14 @@ function parse (content, rawJson = false) { const graPri = require('../lib/graphicalPrimitives.js') // Get all the keys in the json object. It may be graphical primitive. - var keys = Object.keys(content) - var isGraPri = false + const keys = Object.keys(content) + let isGraPri = false // check if it is a graphical primitive isGraPri = keys.some(function (ele) { return graPri.isGraphicAnnotation(ele) }) - var moOutput = '' + let moOutput = '' if (isGraPri) { moOutput += graphicParser.parse(content, rawJson) } else { @@ -31,4 +31,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/elementModificationOrReplaceable.js b/json2mo/elementModificationOrReplaceable.js index 48a906e2..b86f7fdd 100644 --- a/json2mo/elementModificationOrReplaceable.js +++ b/json2mo/elementModificationOrReplaceable.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const elementModificationParser = require('./elementModification') const elementReplaceableParser = require('./elementReplaceable') - var moOutput = '' + let moOutput = '' if (content.each != null) { if (content.each) { moOutput += 'each ' @@ -30,4 +30,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/elementRedeclaration.js b/json2mo/elementRedeclaration.js index 9302364f..60b33eaa 100644 --- a/json2mo/elementRedeclaration.js +++ b/json2mo/elementRedeclaration.js @@ -3,7 +3,7 @@ function parse (content, rawJson) { const componentClause1Parser = require('./componentClause1') const elementReplaceableParser = require('./elementReplaceable') - var moOutput = '' + let moOutput = '' moOutput += 'redeclare ' if (content.each != null) { @@ -36,4 +36,4 @@ function parse (content, rawJson) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/elementReplaceable.js b/json2mo/elementReplaceable.js index 9e61b990..cbd21004 100644 --- a/json2mo/elementReplaceable.js +++ b/json2mo/elementReplaceable.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const componentClause1Parser = require('./componentClause1') const constrainingClauseParser = require('./constrainingClause') - var moOutput = '' + let moOutput = '' moOutput += 'replaceable ' if (content.short_class_definition != null) { moOutput += shortClassDefinitionParser.parse(content.short_class_definition, rawJson) @@ -16,4 +16,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/elementSection.js b/json2mo/elementSection.js index cac1568a..11ab4781 100644 --- a/json2mo/elementSection.js +++ b/json2mo/elementSection.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const equationSectionParser = require('./equationSection') const algorithmSectionParser = require('./algorithmSection') - var moOutput = '' + let moOutput = '' if (content.public_element_list != null) { moOutput += 'public\n' @@ -19,4 +19,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/enumList.js b/json2mo/enumList.js index 0c0540e5..404c4c7e 100644 --- a/json2mo/enumList.js +++ b/json2mo/enumList.js @@ -1,8 +1,8 @@ function parse (content, rawJson = false) { const enumerationLiteralParser = require('./enumerationLiteral') - var moOutput = '' - var enumerationLiterals + let moOutput = '' + let enumerationLiterals if (rawJson) { enumerationLiterals = content.enumeration_literal } else { @@ -19,4 +19,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/enumerationLiteral.js b/json2mo/enumerationLiteral.js index 7c8bc54f..18f1287d 100644 --- a/json2mo/enumerationLiteral.js +++ b/json2mo/enumerationLiteral.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const util = require('util') const commentParser = require('./comment') - var moOutput = '' + let moOutput = '' if (content.identifier != null) { moOutput += util.format('%s ', content.identifier) @@ -20,4 +20,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/equation.js b/json2mo/equation.js index 5530de7f..1e2ac783 100644 --- a/json2mo/equation.js +++ b/json2mo/equation.js @@ -7,7 +7,7 @@ function parse (content, rawJson = false) { const functionCallEquationParser = require('./functionCallEquation') const commentParser = require('./comment') - var moOutput = '' + let moOutput = '' if (content.assignment_equation != null) { moOutput += '\n' moOutput += assignmentEquationParser.parse(content.assignment_equation, rawJson) @@ -41,4 +41,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/equationSection.js b/json2mo/equationSection.js index 0e79fbbe..54978991 100644 --- a/json2mo/equationSection.js +++ b/json2mo/equationSection.js @@ -1,14 +1,14 @@ function parse (content, rawJson = false) { const equationParser = require('./equation') - var moOutput = '' + let moOutput = '' if (content.initial != null) { if (content.initial) { moOutput += 'initial ' } } moOutput += 'equation' - var equations + let equations if (rawJson) { equations = content.equations } else { @@ -23,4 +23,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/expression.js b/json2mo/expression.js index fae169ed..65c82467 100644 --- a/json2mo/expression.js +++ b/json2mo/expression.js @@ -1,7 +1,7 @@ function parse (content, rawJson = false) { const simpleExpressionParser = require('./simpleExpression') const ifExpressionParser = require('./ifExpression') - var moOutput = '' + let moOutput = '' if (content.if_expression != null) { moOutput += ifExpressionParser.parse(content.if_expression, rawJson) @@ -12,4 +12,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/expressionList.js b/json2mo/expressionList.js index 65a252e2..24c1889a 100644 --- a/json2mo/expressionList.js +++ b/json2mo/expressionList.js @@ -1,8 +1,8 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') - var moOutput = '' - var expressionList = null + let moOutput = '' + let expressionList = null if (rawJson) { expressionList = content.expressions } else { @@ -18,4 +18,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/extendsClause.js b/json2mo/extendsClause.js index 1f43f75f..08ba5ce4 100644 --- a/json2mo/extendsClause.js +++ b/json2mo/extendsClause.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const classModificationParser = require('./classModification') const annotationParser = require('./annotation') - var moOutput = '' + let moOutput = '' moOutput += 'extends ' if (content.name != null) { @@ -18,4 +18,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/externalComposition.js b/json2mo/externalComposition.js index 4453e654..c3a8436b 100644 --- a/json2mo/externalComposition.js +++ b/json2mo/externalComposition.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const externalFunctionCallParser = require('./externalFunctionCall') const annotationParser = require('./annotation') - var moOutput = '' + let moOutput = '' moOutput += 'external ' if (content.language_specification != null) { moOutput += util.format('%s ', content.language_specification) @@ -18,4 +18,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/externalFunctionCall.js b/json2mo/externalFunctionCall.js index 33b559dd..3b865286 100644 --- a/json2mo/externalFunctionCall.js +++ b/json2mo/externalFunctionCall.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const componentReferenceParser = require('./componentReference') const expressionListParser = require('./expressionList') - var moOutput = '' + let moOutput = '' if (content.component_reference != null) { moOutput += componentReferenceParser.parse(content.component_reference, rawJson) @@ -19,4 +19,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/finalClassDefinition.js b/json2mo/finalClassDefinition.js index d356ff5a..3ba5f466 100644 --- a/json2mo/finalClassDefinition.js +++ b/json2mo/finalClassDefinition.js @@ -1,8 +1,8 @@ function parse (content, rawJson = false) { const classDefinitionParser = require('./classDefinition') - var moOutput = '' - var isFinal = false + let moOutput = '' + let isFinal = false if (rawJson) { isFinal = content.is_final @@ -20,11 +20,11 @@ function parse (content, rawJson = false) { moOutput += classDefinitionParser.parse(content.class_definition, rawJson) } } else { - var classDefinition = content + const classDefinition = content moOutput += classDefinitionParser.parse(classDefinition, rawJson) } return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/forEquation.js b/json2mo/forEquation.js index 22f6e182..5fdd8235 100644 --- a/json2mo/forEquation.js +++ b/json2mo/forEquation.js @@ -2,16 +2,15 @@ function parse (content, rawJson = false) { const forIndicesParser = require('./forIndices') const equationParser = require('./equation') - var moOutput = '' + let moOutput = '' moOutput += 'for ' - var loopEquations if (content.for_indices != null) { moOutput += forIndicesParser.parse(content.for_indices, rawJson) } moOutput += 'loop \n' - loopEquations = content.loop_equations + const loopEquations = content.loop_equations loopEquations.forEach(ele => { moOutput += equationParser.parse(ele, rawJson) moOutput += ';\n' @@ -20,4 +19,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/forIndex.js b/json2mo/forIndex.js index 46fddb8e..9b1649f9 100644 --- a/json2mo/forIndex.js +++ b/json2mo/forIndex.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const util = require('util') const expressionParser = require('./expression') - var moOutput = '' + let moOutput = '' if (rawJson) { if (content.identifier != null) { moOutput += util.format('%s ', content.identifier) @@ -16,4 +16,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/forIndices.js b/json2mo/forIndices.js index 7085f4d7..69297b72 100644 --- a/json2mo/forIndices.js +++ b/json2mo/forIndices.js @@ -3,8 +3,8 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') const forIndexParser = require('./forIndex') // only for raw-json - var moOutput = '' - var indices + let moOutput = '' + let indices if (rawJson) { indices = content.indices if (indices != null) { @@ -33,4 +33,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/forIndicesObj.js b/json2mo/forIndicesObj.js index b3b7aa57..f3941058 100644 --- a/json2mo/forIndicesObj.js +++ b/json2mo/forIndicesObj.js @@ -1,13 +1,13 @@ function parse (content, rawJson = false) { const util = require('util') - var moOutput = '' + let moOutput = '' moOutput += util.format('%s', content[0].name) moOutput += ' in ' moOutput += util.format('%s', content[0].range) if (content.length > 1) { - for (var i = 1; i < content.length; i++) { - var ith = content[i] + for (let i = 1; i < content.length; i++) { + const ith = content[i] moOutput += ', ' moOutput += util.format('%s', ith.name) moOutput += ' in ' @@ -17,4 +17,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/forLoopObj.js b/json2mo/forLoopObj.js index a1537e17..42f4d64b 100644 --- a/json2mo/forLoopObj.js +++ b/json2mo/forLoopObj.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') const forIndiceObjParser = require('./forIndicesObj') - var moOutput = '' + let moOutput = '' if (content != null) { moOutput += '{' moOutput += expressionParser.parse(content.expression, rawJson) @@ -13,4 +13,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/forStatement.js b/json2mo/forStatement.js index 7218857e..1b214af9 100644 --- a/json2mo/forStatement.js +++ b/json2mo/forStatement.js @@ -2,14 +2,14 @@ function parse (content, rawJson = false) { const forIndicesParser = require('./for_indices') const statementParser = require('./statement') - var moOutput = '' + let moOutput = '' moOutput += 'for ' if (content.for_indices != null) { moOutput += forIndicesParser.parse(content.for_indices, rawJson) } moOutput += 'loop \n' - var loopStatements = content.loop_statements + const loopStatements = content.loop_statements loopStatements.forEach(ele => { moOutput += statementParser.parse(ele, rawJson) moOutput += ';\n' @@ -18,4 +18,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/functionArgument.js b/json2mo/functionArgument.js index 0ab38a76..57f0f042 100644 --- a/json2mo/functionArgument.js +++ b/json2mo/functionArgument.js @@ -4,7 +4,7 @@ function parse (content, rawJson = false) { const namedArgumentParser = require('./namedArgument') const expressionParser = require('./expression') - var moOutput = '' + let moOutput = '' if (content.function_name != null) { moOutput += 'function ' @@ -16,7 +16,7 @@ function parse (content, rawJson = false) { moOutput += namedArgumentsParser.parse(content.named_arguments, rawJson) } } else { - var namedArguments = content.named_arguments + const namedArguments = content.named_arguments if (namedArguments != null) { namedArguments.forEach(ele => { moOutput += namedArgumentParser.parse(ele, rawJson) @@ -32,4 +32,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/functionArguments.js b/json2mo/functionArguments.js index 4b87b325..490f67ab 100644 --- a/json2mo/functionArguments.js +++ b/json2mo/functionArguments.js @@ -5,7 +5,7 @@ function parse (content, rawJson = false) { const functionArgumentParser = require('./functionArgument') const forIndicesParser = require('./forIndices') - var moOutput = '' + let moOutput = '' if (rawJson) { if (content.named_arguments != null) { @@ -24,7 +24,7 @@ function parse (content, rawJson = false) { } } } else { - var namedArguments = content.named_arguments // only in simplified-json + const namedArguments = content.named_arguments // only in simplified-json if (namedArguments != null) { namedArguments.forEach(ele => { @@ -49,4 +49,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/functionCallArgs.js b/json2mo/functionCallArgs.js index 050e4ad2..0f045b78 100644 --- a/json2mo/functionCallArgs.js +++ b/json2mo/functionCallArgs.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const functionArgumentParser = require('./functionArgument') const functionArgumentsParser = require('./functionArguments') const forIndicesParser = require('./forIndices') - var moOutput = '' + let moOutput = '' moOutput += '(' if (rawJson) { @@ -11,7 +11,7 @@ function parse (content, rawJson = false) { moOutput += functionArgumentsParser.parse(content.function_arguments, rawJson) } } else { - var namedArguments = content.named_arguments // only in simplified-json + const namedArguments = content.named_arguments // only in simplified-json if (namedArguments != null) { namedArguments.forEach(ele => { @@ -38,4 +38,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/functionCallArgsObj.js b/json2mo/functionCallArgsObj.js index f36e92a1..66fd6413 100644 --- a/json2mo/functionCallArgsObj.js +++ b/json2mo/functionCallArgsObj.js @@ -3,7 +3,7 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') const forIndiceObjParser = require('./forIndicesObj') - var moOutput = '' + let moOutput = '' if (content[0].expression != null) { moOutput += expressionParser.parse(content[0].expressoin, rawJson) moOutput += ' for ' @@ -20,4 +20,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/functionCallEquation.js b/json2mo/functionCallEquation.js index 5d6c465f..97fa70a1 100644 --- a/json2mo/functionCallEquation.js +++ b/json2mo/functionCallEquation.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const nameParser = require('./name') const functionCallArgsParser = require('./functionCallArgs') - var moOutput = '' + let moOutput = '' if (content.function_name != null) { moOutput += nameParser.parse(content.function_name, rawJson) @@ -14,4 +14,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/functionCallObj.js b/json2mo/functionCallObj.js index a2599471..b50d740d 100644 --- a/json2mo/functionCallObj.js +++ b/json2mo/functionCallObj.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const util = require('util') const functionCallArgsObjParser = require('./functionCallArgsObj') - var moOutput = '' + let moOutput = '' if (content.name != null) { moOutput += util.format('%s', content.name) } @@ -14,4 +14,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/functionCallStatement.js b/json2mo/functionCallStatement.js index 81cb8577..335775f5 100644 --- a/json2mo/functionCallStatement.js +++ b/json2mo/functionCallStatement.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const componentReferenceParser = require('./componentReference') const functionCallArgsParser = require('./functionCallArgs') - var moOutput = '' + let moOutput = '' if (content.function_name != null) { moOutput += componentReferenceParser.parse(content.function_name, rawJson) } @@ -12,4 +12,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/graphic.js b/json2mo/graphic.js index 68134bd1..2ff22a87 100644 --- a/json2mo/graphic.js +++ b/json2mo/graphic.js @@ -3,10 +3,10 @@ const util = require('util') function parse (content, rawJson = false) { // "keys" will be a one element array, could be // ['Line', 'Text', 'Rectangle', 'Polygon', 'Ellipse', 'Bitmap', 'Placement', 'coordinateSystem', 'graphics'] - var graKeys = Object.keys(content) - var graKey = graKeys[0] + const graKeys = Object.keys(content) + const graKey = graKeys[0] - var moOutput = '' + let moOutput = '' if (graKey === 'Line') { moOutput += lineParse(content.Line) } else if (graKey === 'Text') { @@ -31,41 +31,41 @@ function parse (content, rawJson = false) { } function lineParse (obj) { - var graComIte = commonGraphicItems(obj) + const graComIte = commonGraphicItems(obj) return 'Line(' + graComIte.join(',') + ')' } function textParse (obj) { - var graComIte = commonGraphicItems(obj) + const graComIte = commonGraphicItems(obj) return 'Text(' + graComIte.join(',') + ')' } function rectangleParse (obj) { - var graComIte = commonGraphicItems(obj) + const graComIte = commonGraphicItems(obj) return 'Rectangle(' + graComIte.join(',') + ')' } function polygonParse (obj) { - var graComIte = commonGraphicItems(obj) + const graComIte = commonGraphicItems(obj) return 'Polygon(' + graComIte.join(',') + ')' } function ellipseParse (obj) { - var graComIte = commonGraphicItems(obj) + const graComIte = commonGraphicItems(obj) return 'Ellipse(' + graComIte.join(',') + ')' } function bitmapParse (obj) { - var graComIte = commonGraphicItems(obj) + const graComIte = commonGraphicItems(obj) return 'Bitmap(' + graComIte.join(',') + ')' } function placementParse (obj) { - var visible = obj.visible - var iconVisible = obj.iconVisible - var transformation = obj.transformation - var iconTransformation = obj.iconTransformation - var strArr = [] + const visible = obj.visible + const iconVisible = obj.iconVisible + const transformation = obj.transformation + const iconTransformation = obj.iconTransformation + const strArr = [] if (visible != null) { strArr.push('visible=' + util.format('%s', visible)) } @@ -82,10 +82,10 @@ function placementParse (obj) { } function coordinateSystemParse (obj) { - var extent = obj.extent - var preserveAspectRatio = obj.preserveAspectRatio - var initialScale = obj.initialScale - var strArr = [] + const extent = obj.extent + const preserveAspectRatio = obj.preserveAspectRatio + const initialScale = obj.initialScale + const strArr = [] if (extent != null) { strArr.push('extent=' + pointsParse(extent)) } @@ -99,22 +99,22 @@ function coordinateSystemParse (obj) { } function graphicsParse (obj) { - var strArr = [] - for (var i = 0; i < obj.length; i++) { - var ithEle = obj[i] - var name = ithEle.name - var attibutes = ithEle.attribute - var graComIte = commonGraphicItems(attibutes) + const strArr = [] + for (let i = 0; i < obj.length; i++) { + const ithEle = obj[i] + const name = ithEle.name + const attibutes = ithEle.attribute + const graComIte = commonGraphicItems(attibutes) strArr.push(name + '(' + graComIte.join(',') + ')') } return 'graphics=' + '{' + strArr.join(',') + '}' } function transformationParse (obj) { - var origin = obj.origin - var extent = obj.extent - var rotation = obj.rotation - var strArr = [] + const origin = obj.origin + const extent = obj.extent + const rotation = obj.rotation + const strArr = [] if (origin != null) { strArr.push('origin=' + originParse(origin)) } @@ -128,10 +128,10 @@ function transformationParse (obj) { } function pointsParse (obj) { - var pointsArr = [] - for (var i = 0; i < obj.length; i++) { - var ithPoint = obj[i] - var pointStr = '{' + const pointsArr = [] + for (let i = 0; i < obj.length; i++) { + const ithPoint = obj[i] + let pointStr = '{' pointStr += util.format('%s', ithPoint.x) pointStr += ',' pointStr += util.format('%s', ithPoint.y) @@ -142,7 +142,7 @@ function pointsParse (obj) { } function colorParse (obj) { - var colEle = '{' + let colEle = '{' colEle += util.format('%s', obj.r) colEle += ',' colEle += util.format('%s', obj.g) @@ -153,7 +153,7 @@ function colorParse (obj) { } function originParse (obj) { - var ori = '{' + let ori = '{' ori += util.format('%s', obj.x) ori += ',' ori += util.format('%s', obj.y) @@ -162,35 +162,35 @@ function originParse (obj) { } function commonGraphicItems (obj) { - var color = obj.color - var thickness = obj.thickness - var arrowSize = obj.arrowSize - var extent = obj.extent - var textString = obj.textString - var fontSize = obj.fontSize - var fontName = obj.fontName - var textColor = obj.textColor - var horizontalAlignment = obj.horizontalAlignment - var string = obj.string - var index = obj.index - var radius = obj.radius - var borderPattern = obj.borderPattern - var points = obj.points - var smooth = obj.smooth - var startAngle = obj.startAngle - var endAngle = obj.endAngle - var closure = obj.closure - var fileName = obj.fileName - var imageSource = obj.imageSource - var visible = obj.visible - var origin = obj.origin - var rotation = obj.rotation - var lineColor = obj.lineColor - var fillColor = obj.fillColor - var pattern = obj.pattern - var fillPattern = obj.fillPattern - var lineThickness = obj.lineThickness - var strArr = [] + const color = obj.color + const thickness = obj.thickness + const arrowSize = obj.arrowSize + const extent = obj.extent + const textString = obj.textString + const fontSize = obj.fontSize + const fontName = obj.fontName + const textColor = obj.textColor + const horizontalAlignment = obj.horizontalAlignment + const string = obj.string + const index = obj.index + const radius = obj.radius + const borderPattern = obj.borderPattern + const points = obj.points + const smooth = obj.smooth + const startAngle = obj.startAngle + const endAngle = obj.endAngle + const closure = obj.closure + const fileName = obj.fileName + const imageSource = obj.imageSource + const visible = obj.visible + const origin = obj.origin + const rotation = obj.rotation + const lineColor = obj.lineColor + const fillColor = obj.fillColor + const pattern = obj.pattern + const fillPattern = obj.fillPattern + const lineThickness = obj.lineThickness + const strArr = [] if (fileName != null) { strArr.push('fileName=' + util.format('%s', fileName)) } @@ -281,4 +281,4 @@ function commonGraphicItems (obj) { return strArr } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/ifElseifEquation.js b/json2mo/ifElseifEquation.js index 48b7e783..a4a35383 100644 --- a/json2mo/ifElseifEquation.js +++ b/json2mo/ifElseifEquation.js @@ -2,14 +2,14 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') const equationParser = require('./equation') - var moOutput = '' + let moOutput = '' if (content.condition != null) { moOutput += expressionParser.parse(content.condition, rawJson) } - var thenEquations = content.then - var thenOutput = '' + const thenEquations = content.then + let thenOutput = '' if (thenEquations != null) { thenOutput = '' thenEquations.forEach(ele => { @@ -24,4 +24,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/ifElseifExpression.js b/json2mo/ifElseifExpression.js index 2963fe3c..9311df8e 100644 --- a/json2mo/ifElseifExpression.js +++ b/json2mo/ifElseifExpression.js @@ -1,7 +1,7 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') - var moOutput = '' + let moOutput = '' if (content.condition != null) { moOutput += expressionParser.parse(content.condition, rawJson) @@ -14,4 +14,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/ifElseifStatement.js b/json2mo/ifElseifStatement.js index 440388d4..a52b6732 100644 --- a/json2mo/ifElseifStatement.js +++ b/json2mo/ifElseifStatement.js @@ -2,14 +2,14 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') const statementParser = require('./statement') - var moOutput = '' + let moOutput = '' if (content.condition != null) { moOutput += expressionParser.parse(content.condition, rawJson) } - var thenStatements = content.then - var thenOutput = '' + const thenStatements = content.then + let thenOutput = '' if (thenStatements != null) { thenOutput = '' thenStatements.forEach(ele => { @@ -24,4 +24,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/ifEquation.js b/json2mo/ifEquation.js index 05d8271e..128d0157 100644 --- a/json2mo/ifEquation.js +++ b/json2mo/ifEquation.js @@ -2,8 +2,8 @@ function parse (content, rawJson = false) { const ifElseifEquationParser = require('./ifElseifEquation') const equationParser = require('./equation') - var moOutput = '' - var ifElseifs = content.if_elseif + let moOutput = '' + const ifElseifs = content.if_elseif if (ifElseifs != null) { ifElseifs.forEach(ele => { moOutput += 'elseif ' @@ -12,9 +12,9 @@ function parse (content, rawJson = false) { } moOutput = moOutput.slice(4, moOutput.length) // to remove 1st else of elseif so that we get "if" - var elseEquations = content.else_equation + const elseEquations = content.else_equation if (elseEquations != null) { - var elseOutput = '' + let elseOutput = '' elseEquations.forEach(ele => { elseOutput += equationParser.parse(ele, rawJson) elseOutput += ';\n' @@ -28,4 +28,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/ifExpression.js b/json2mo/ifExpression.js index a4941310..5d9404f5 100644 --- a/json2mo/ifExpression.js +++ b/json2mo/ifExpression.js @@ -2,8 +2,8 @@ function parse (content, rawJson = false) { const ifElseifExpressionParser = require('./ifElseifExpression') const expressionParser = require('./expression') - var moOutput = '' - var ifElseifs = content.if_elseif + let moOutput = '' + const ifElseifs = content.if_elseif if (ifElseifs != null) { ifElseifs.forEach(ele => { moOutput += ' elseif ' @@ -19,4 +19,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/ifExpressionObj.js b/json2mo/ifExpressionObj.js index 1d4ec894..709afd6a 100644 --- a/json2mo/ifExpressionObj.js +++ b/json2mo/ifExpressionObj.js @@ -1,14 +1,14 @@ function parse (content, rawJson = false) { const util = require('util') - var moOutput = '' - for (var i = 0; i < content.length; i++) { - var ithCon = content[i] - var ithElseIf = ithCon.if_elseif + let moOutput = '' + for (let i = 0; i < content.length; i++) { + const ithCon = content[i] + const ithElseIf = ithCon.if_elseif moOutput += 'if (' moOutput += util.format('%s', ithElseIf[0].condition) moOutput += ') then ' moOutput += util.format('%s', ithElseIf[0].then) - for (var j = 1; j < ithElseIf.length; j++) { + for (let j = 1; j < ithElseIf.length; j++) { moOutput += ' elseif (' moOutput += util.format('%s', ithElseIf[j].condition) moOutput += ') then ' @@ -23,4 +23,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/ifStatement.js b/json2mo/ifStatement.js index 1918e9f3..6270e5ab 100644 --- a/json2mo/ifStatement.js +++ b/json2mo/ifStatement.js @@ -2,8 +2,8 @@ function parse (content, rawJson = false) { const ifElseifStatementParser = require('./ifElseifStatement') const statementParser = require('./statement') - var moOutput = '' - var ifElseifs = content.if_elseif + let moOutput = '' + const ifElseifs = content.if_elseif if (ifElseifs != null) { ifElseifs.forEach(ele => { moOutput += 'elseif ' @@ -12,9 +12,9 @@ function parse (content, rawJson = false) { } moOutput = moOutput.slice(4, moOutput.length) // to remove 1st else of elseif so that we get "if" - var elseStatements = content.else_statement + const elseStatements = content.else_statement if (elseStatements != null) { - var elseOutput = '' + let elseOutput = '' elseStatements.forEach(ele => { elseOutput += statementParser.parse(ele, rawJson) elseOutput += ';\n' @@ -28,4 +28,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/importClause.js b/json2mo/importClause.js index d707df79..01e85f33 100644 --- a/json2mo/importClause.js +++ b/json2mo/importClause.js @@ -4,10 +4,10 @@ function parse (content, rawJson = false) { const commentParser = require('./comment') const importListParser = require('./importList') - var moOutput = '' + let moOutput = '' moOutput += 'import ' - var name = '' + let name = '' if (content.name != null) { name = nameParser.parse(content.name, rawJson) } @@ -40,4 +40,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/importList.js b/json2mo/importList.js index 47224f2a..63df3369 100644 --- a/json2mo/importList.js +++ b/json2mo/importList.js @@ -1,8 +1,8 @@ function parse (content, rawJson = false) { const util = require('util') - var moOutput = '' - var identifierList = content.identifier_list + let moOutput = '' + const identifierList = content.identifier_list if (identifierList != null) { identifierList.forEach(identifier => { moOutput += util.format('%s, ', identifier) @@ -12,4 +12,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/logicalAnd.js b/json2mo/logicalAnd.js index ec04e387..9c5ec9bf 100644 --- a/json2mo/logicalAnd.js +++ b/json2mo/logicalAnd.js @@ -1,10 +1,10 @@ function parse (content, rawJson = false) { const logicalFactorObjParser = require('./logicalFactorObj') - var moOutput = '' + let moOutput = '' moOutput += logicalFactorObjParser.parse(content[0], rawJson) if (content.length > 1) { - for (var i = 1; i < content.length; i++) { + for (let i = 1; i < content.length; i++) { moOutput += ' and ' moOutput += logicalFactorObjParser.parse(content[i], rawJson) } @@ -12,4 +12,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/logicalExpression.js b/json2mo/logicalExpression.js index 85f7aba7..0074e48e 100644 --- a/json2mo/logicalExpression.js +++ b/json2mo/logicalExpression.js @@ -1,11 +1,11 @@ function parse (content, rawJson = false) { const logicalAndParser = require('./logicalAnd') - var logicalOr = content.logical_or - var moOutput = '' + const logicalOr = content.logical_or + let moOutput = '' moOutput += logicalAndParser.parse(logicalOr[0].logical_and, rawJson) if (logicalOr.length > 1) { - for (var i = 1; i < logicalOr.length; i++) { + for (let i = 1; i < logicalOr.length; i++) { moOutput += ' or ' moOutput += logicalAndParser.parse(logicalOr[i].logical_and, rawJson) } @@ -13,4 +13,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/logicalFactorObj.js b/json2mo/logicalFactorObj.js index 2240552c..66bf676a 100644 --- a/json2mo/logicalFactorObj.js +++ b/json2mo/logicalFactorObj.js @@ -1,7 +1,7 @@ function parse (content, rawJson = false) { const util = require('util') - var moOutput = '' + let moOutput = '' if (content.not != null) { moOutput += 'not ' } @@ -15,4 +15,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/longClassSpecifier.js b/json2mo/longClassSpecifier.js index 11ad3fcd..201d7ff4 100644 --- a/json2mo/longClassSpecifier.js +++ b/json2mo/longClassSpecifier.js @@ -3,10 +3,10 @@ function parse (content, rawJson = false) { const compositionParser = require('./composition') const classModificationParser = require('./classModification') - var identifier = content.identifier - var isExtends = content.is_extends + const identifier = content.identifier + const isExtends = content.is_extends - var moOutput = '' + let moOutput = '' if (isExtends != null) { if (isExtends) { @@ -27,12 +27,12 @@ function parse (content, rawJson = false) { } if (rawJson) { - var stringComment = content.string_comment + const stringComment = content.string_comment if (stringComment != null) { moOutput += util.format('\n%s\n', stringComment) } } else { - var descriptionString = content.description_string + const descriptionString = content.description_string if (descriptionString != null) { moOutput += util.format('\n"%s"\n', descriptionString) } @@ -46,4 +46,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/modification.js b/json2mo/modification.js index a48325a7..abf8ba60 100644 --- a/json2mo/modification.js +++ b/json2mo/modification.js @@ -1,9 +1,9 @@ function parse (content, rawJson = false) { const classModificationParser = require('./classModification') const expressionParser = require('./expression') - var moOutput = '' + let moOutput = '' - var haveClaMod = content.class_modification != null + const haveClaMod = content.class_modification != null if (haveClaMod) { moOutput += classModificationParser.parse(content.class_modification, rawJson) } @@ -25,4 +25,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/name.js b/json2mo/name.js index c7751f3c..b1027953 100644 --- a/json2mo/name.js +++ b/json2mo/name.js @@ -2,9 +2,9 @@ function parse (content, rawJson = false) { const util = require('util') const namePartParser = require('./namePart') - var moOutput = '' + let moOutput = '' if (rawJson) { - var nameParts = content.name_parts + const nameParts = content.name_parts if (nameParts != null) { nameParts.forEach(ele => { moOutput += namePartParser.parse(ele, rawJson) @@ -17,4 +17,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/namePart.js b/json2mo/namePart.js index d6f59e6e..fcd5f32e 100644 --- a/json2mo/namePart.js +++ b/json2mo/namePart.js @@ -1,5 +1,5 @@ function parse (content, rawJson = false) { - var moOutput = '' + let moOutput = '' if (rawJson) { if (content.dot_op != null) { if (content.dot_op) { @@ -14,4 +14,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/namedArgument.js b/json2mo/namedArgument.js index 6a1a8640..c46a2fd5 100644 --- a/json2mo/namedArgument.js +++ b/json2mo/namedArgument.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const util = require('util') const functionArgumentParser = require('./functionArgument') - var moOutput = '' + let moOutput = '' if (content.identifier != null) { moOutput += util.format('%s=', content.identifier) } @@ -13,4 +13,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/namedArguments.js b/json2mo/namedArguments.js index 1f8d8f01..fa29d14b 100644 --- a/json2mo/namedArguments.js +++ b/json2mo/namedArguments.js @@ -1,7 +1,7 @@ function parse (content, rawJson = false) { const namedArgumentParser = require('./namedArgument') - var moOutput = '' + let moOutput = '' if (rawJson) { if (content.named_argument != null) { @@ -16,4 +16,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/outputExpressionList.js b/json2mo/outputExpressionList.js index 4839a11c..4587b137 100644 --- a/json2mo/outputExpressionList.js +++ b/json2mo/outputExpressionList.js @@ -1,8 +1,8 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') - var moOutput = '' - var outputExpressions = null + let moOutput = '' + let outputExpressions = null if (rawJson) { outputExpressions = content.output_expressions } else { @@ -18,4 +18,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/shortClassDefinition.js b/json2mo/shortClassDefinition.js index ea183bb2..0b81bd1d 100644 --- a/json2mo/shortClassDefinition.js +++ b/json2mo/shortClassDefinition.js @@ -2,7 +2,7 @@ function parse (content, rawJson = false) { const util = require('util') const shortClassSpecifierParser = require('./shortClassSpecifier') - var moOutput = '' + let moOutput = '' if (content.class_prefixes != null) { moOutput += util.format('%s ', content.class_prefixes) } @@ -12,4 +12,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/shortClassSpecifier.js b/json2mo/shortClassSpecifier.js index f0a47a44..9ea1d349 100644 --- a/json2mo/shortClassSpecifier.js +++ b/json2mo/shortClassSpecifier.js @@ -2,8 +2,8 @@ function parse (content, rawJson = false) { const util = require('util') const shortClassSpecifierValueParser = require('./shortClassSpecifierValue') - var moOutput = '' - var identifier = content.identifier + let moOutput = '' + const identifier = content.identifier if (identifier != null) { moOutput += util.format('%s=', identifier) @@ -21,4 +21,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/shortClassSpecifierValue.js b/json2mo/shortClassSpecifierValue.js index bda9463d..56c1fc43 100644 --- a/json2mo/shortClassSpecifierValue.js +++ b/json2mo/shortClassSpecifierValue.js @@ -6,7 +6,7 @@ function parse (content, rawJson = false) { const commentParser = require('./comment') const enumListParser = require('./enumList') - var moOutput = '' + let moOutput = '' if (content.name == null) { moOutput += 'enumeration (' @@ -41,4 +41,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/simpleExpression.js b/json2mo/simpleExpression.js index 4d0ffa7f..6f18d27b 100644 --- a/json2mo/simpleExpression.js +++ b/json2mo/simpleExpression.js @@ -5,7 +5,7 @@ function parse (content, rawJson = false) { const logicalExpressionParser = require('./logicalExpression') const ifExpressionParser = require('./ifExpressionObj') - var moOutput = '' + let moOutput = '' if (content != null) { if (rawJson) { moOutput += util.format('%s', JSON.stringify(content)) @@ -26,4 +26,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/statement.js b/json2mo/statement.js index 7cf32a64..13dbab7f 100644 --- a/json2mo/statement.js +++ b/json2mo/statement.js @@ -8,7 +8,7 @@ function parse (content, rawJson) { const whenStatementParser = require('./whenStatement') const commentParser = require('./comment') - var moOutput = '' + let moOutput = '' if (content.assignment_statement != null) { moOutput += '\n' moOutput += assignmentStatementParser.parse(content.assignment_statement, rawJson) @@ -52,4 +52,4 @@ function parse (content, rawJson) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/storedDefiniton.js b/json2mo/storedDefiniton.js index c99f4a7b..f1c6b3b2 100644 --- a/json2mo/storedDefiniton.js +++ b/json2mo/storedDefiniton.js @@ -2,9 +2,9 @@ function parse (content, rawJson = false) { const util = require('util') const finalClassDefinitionParser = require('./finalClassDefinition') - var within = content.within + const within = content.within - var moOutput = '' + let moOutput = '' if (within != null) { moOutput += util.format('within %s;\n', within) } @@ -27,4 +27,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/subscript.js b/json2mo/subscript.js index a6ff5013..702a340b 100644 --- a/json2mo/subscript.js +++ b/json2mo/subscript.js @@ -1,7 +1,7 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') - var moOutput = '' + let moOutput = '' if (rawJson) { moOutput += '[' @@ -15,4 +15,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/typeSpecifier.js b/json2mo/typeSpecifier.js index d9f19056..e1716912 100644 --- a/json2mo/typeSpecifier.js +++ b/json2mo/typeSpecifier.js @@ -2,17 +2,17 @@ function parse (content, rawJson = false) { const util = require('util') const nameParser = require('./name') - var moOutput = '' + let moOutput = '' if (rawJson) { if (content.name != null) { moOutput += nameParser.parse(content.name, rawJson) } } else { - var name = content + const name = content moOutput += util.format('%s ', name) } return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/whenEquation.js b/json2mo/whenEquation.js index c53258ac..c3a305f1 100644 --- a/json2mo/whenEquation.js +++ b/json2mo/whenEquation.js @@ -2,8 +2,8 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') const equationParser = require('./equation') - var moOutput = '' - var whenElsewhens = null + let moOutput = '' + let whenElsewhens = null if (rawJson) { whenElsewhens = content.when_elsewhen } else { @@ -17,8 +17,8 @@ function parse (content, rawJson = false) { moOutput += expressionParser.parse(ele.condition, rawJson) } moOutput += '\n' - var thenEquations = ele.then - var thenOutput = '' + const thenEquations = ele.then + let thenOutput = '' if (thenEquations != null) { thenEquations.forEach(thenEqu => { thenOutput += equationParser.parse(thenEqu, rawJson) @@ -37,4 +37,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/whenStatement.js b/json2mo/whenStatement.js index e9817b70..9fa2559b 100644 --- a/json2mo/whenStatement.js +++ b/json2mo/whenStatement.js @@ -2,8 +2,8 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') const statementParser = require('./statement') - var moOutput = '' - var whenElsewhens = null + let moOutput = '' + let whenElsewhens = null if (rawJson) { whenElsewhens = content.when_elsewhen } else { @@ -17,8 +17,8 @@ function parse (content, rawJson = false) { moOutput += expressionParser.parse(ele.condition, rawJson) } moOutput += '\n' - var thenStatements = ele.then - var thenOutput = '' + const thenStatements = ele.then + let thenOutput = '' if (thenStatements != null) { thenStatements.forEach(thenSta => { thenOutput += statementParser.parse(thenSta, rawJson) @@ -37,4 +37,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/json2mo/whileStatement.js b/json2mo/whileStatement.js index 838f0456..201dc1ec 100644 --- a/json2mo/whileStatement.js +++ b/json2mo/whileStatement.js @@ -2,14 +2,14 @@ function parse (content, rawJson = false) { const expressionParser = require('./expression') const statementParser = require('./statement') - var moOutput = '' + let moOutput = '' moOutput += 'while ' if (content.condition != null) { // in simplified json moOutput += expressionParser.parse(content.condition, rawJson) } moOutput += 'loop \n' - var loopStatements = content.loop_statements + const loopStatements = content.loop_statements loopStatements.forEach(ele => { moOutput += statementParser.parse(ele, rawJson) moOutput += ';\n' @@ -18,4 +18,4 @@ function parse (content, rawJson = false) { return moOutput } -module.exports = {parse} +module.exports = { parse } diff --git a/lib/graphicalPrimitives.js b/lib/graphicalPrimitives.js index e9f1e0ce..b675ade3 100644 --- a/lib/graphicalPrimitives.js +++ b/lib/graphicalPrimitives.js @@ -53,12 +53,12 @@ function graphicAnnotationObj (name, mod) { */ function lineObj (mod) { const claModArr = mod.class_modification - var names = [] - var values = [] - for (var i = 0; i < claModArr.length; i++) { - var ithEle = claModArr[i] - var name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) - var expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) + const names = [] + const values = [] + for (let i = 0; i < claModArr.length; i++) { + const ithEle = claModArr[i] + const name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) + const expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) names.push(name) values.push(expression) } @@ -72,12 +72,12 @@ function lineObj (mod) { */ function textObj (mod) { const claModArr = mod.class_modification - var names = [] - var values = [] - for (var i = 0; i < claModArr.length; i++) { - var ithEle = claModArr[i] - var name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) - var expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) + const names = [] + const values = [] + for (let i = 0; i < claModArr.length; i++) { + const ithEle = claModArr[i] + const name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) + const expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) names.push(name) values.push(expression) } @@ -91,12 +91,12 @@ function textObj (mod) { */ function rectangleObj (mod) { const claModArr = mod.class_modification - var names = [] - var values = [] - for (var i = 0; i < claModArr.length; i++) { - var ithEle = claModArr[i] - var name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) - var expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) + const names = [] + const values = [] + for (let i = 0; i < claModArr.length; i++) { + const ithEle = claModArr[i] + const name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) + const expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) names.push(name) values.push(expression) } @@ -110,12 +110,12 @@ function rectangleObj (mod) { */ function polygonObj (mod) { const claModArr = mod.class_modification - var names = [] - var values = [] - for (var i = 0; i < claModArr.length; i++) { - var ithEle = claModArr[i] - var name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) - var expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) + const names = [] + const values = [] + for (let i = 0; i < claModArr.length; i++) { + const ithEle = claModArr[i] + const name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) + const expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) names.push(name) values.push(expression) } @@ -129,12 +129,12 @@ function polygonObj (mod) { */ function ellipseObj (mod) { const claModArr = mod.class_modification - var names = [] - var values = [] - for (var i = 0; i < claModArr.length; i++) { - var ithEle = claModArr[i] - var name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) - var expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) + const names = [] + const values = [] + for (let i = 0; i < claModArr.length; i++) { + const ithEle = claModArr[i] + const name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) + const expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) names.push(name) values.push(expression) } @@ -148,12 +148,12 @@ function ellipseObj (mod) { */ function bitmapObj (mod) { const claModArr = mod.class_modification - var names = [] - var values = [] - for (var i = 0; i < claModArr.length; i++) { - var ithEle = claModArr[i] - var name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) - var expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) + const names = [] + const values = [] + for (let i = 0; i < claModArr.length; i++) { + const ithEle = claModArr[i] + const name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) + const expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) names.push(name) values.push(expression) } @@ -167,21 +167,21 @@ function bitmapObj (mod) { */ function placementObj (mod) { const claModArr = mod.class_modification - var visible, iconVisible, transformation, iconTransformation - for (var i = 0; i < claModArr.length; i++) { - var ithEle = claModArr[i] - var name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) - var modification = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification'], ithEle) + let visible, iconVisible, transformation, iconTransformation + for (let i = 0; i < claModArr.length; i++) { + const ithEle = claModArr[i] + const name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) + const modification = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification'], ithEle) if (name === 'visible') { visible = modification.expression.simple_expression } if (name === 'iconVisible') { iconVisible = modification.expression.simple_expression } if (name === 'transformation') { transformation = this.transformationObj(modification) } if (name === 'iconTransformation') { iconTransformation = this.transformationObj(modification) } } return Object.assign( - {'visible': visible}, - {'iconVisible': iconVisible}, - {'transformation': transformation}, - {'iconTransformation': iconTransformation} + { visible }, + { iconVisible }, + { transformation }, + { iconTransformation } ) } @@ -192,19 +192,19 @@ function placementObj (mod) { */ function coordinateSystemObj (mod) { const claModArr = mod.class_modification - var extent, preserveAspectRatio, initialScale - for (var i = 0; i < claModArr.length; i++) { - var ithEle = claModArr[i] - var name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) - var expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) + let extent, preserveAspectRatio, initialScale + for (let i = 0; i < claModArr.length; i++) { + const ithEle = claModArr[i] + const name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) + const expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) if (name === 'extent') { extent = this.pointsObj(expression) } if (name === 'preserveAspectRatio') { preserveAspectRatio = expression } if (name === 'initialScale') { initialScale = Number(expression) } } return Object.assign( - {'extent': extent}, - {'preserveAspectRatio': preserveAspectRatio}, - {'initialScale': initialScale} + { extent }, + { preserveAspectRatio }, + { initialScale } ) } @@ -216,13 +216,12 @@ function coordinateSystemObj (mod) { function graphicsObj (mod) { const graStr = mod.expression.simple_expression const graItes = ['Line', 'Text', 'Rectangle', 'Polygon', 'Ellipse', 'Bitmap'] - var linLoc, texLoc, recLoc, polLoc, ellLoc, bitLoc - var tempLocs = [] - var allLocs + let linLoc, texLoc, recLoc, polLoc, ellLoc, bitLoc + const tempLocs = [] // find the location of each primitive - for (var i = 0; i < graItes.length; i++) { - var ithEle = graItes[i] - var seaKey = ithEle + '(' + for (let i = 0; i < graItes.length; i++) { + const ithEle = graItes[i] + const seaKey = ithEle + '(' if (ithEle === 'Line') { linLoc = locations(seaKey, graStr) } if (ithEle === 'Text') { texLoc = locations(seaKey, graStr) } if (ithEle === 'Rectangle') { recLoc = locations(seaKey, graStr) } @@ -230,24 +229,24 @@ function graphicsObj (mod) { if (ithEle === 'Ellipse') { ellLoc = locations(seaKey, graStr) } if (ithEle === 'Bitmap') { bitLoc = locations(seaKey, graStr) } } - allLocs = tempLocs.concat(linLoc || []) - .concat(texLoc || []) - .concat(recLoc || []) - .concat(polLoc || []) - .concat(ellLoc || []) - .concat(bitLoc || []) - .sort(function (a, b) { return (a - b) }) - var graArr = [] - var firstBra, lastBra, name, attStr + const allLocs = tempLocs.concat(linLoc || []) + .concat(texLoc || []) + .concat(recLoc || []) + .concat(polLoc || []) + .concat(ellLoc || []) + .concat(bitLoc || []) + .sort(function (a, b) { return (a - b) }) + const graArr = [] + let firstBra, lastBra, name, attStr if (allLocs.length > 1) { - for (var j = 0; j < allLocs.length - 1; j++) { + for (let j = 0; j < allLocs.length - 1; j++) { firstBra = graStr.indexOf('(', allLocs[j]) lastBra = graStr.lastIndexOf(')', allLocs[j + 1]) name = graStr.substring(allLocs[j], firstBra) attStr = graStr.substring(firstBra + 1, lastBra) graArr.push(Object.assign( - {'name': name}, - {'attribute': this.graphicAttributeObj(name, attStr)} + { name }, + { attribute: this.graphicAttributeObj(name, attStr) } )) } } @@ -256,8 +255,8 @@ function graphicsObj (mod) { name = graStr.substring(allLocs[allLocs.length - 1], firstBra) attStr = graStr.substring(firstBra + 1, lastBra) graArr.push(Object.assign( - {'name': name}, - {'attribute': this.graphicAttributeObj(name, attStr)} + { name }, + { attribute: this.graphicAttributeObj(name, attStr) } )) return graArr } @@ -269,19 +268,19 @@ function graphicsObj (mod) { */ function transformationObj (mod) { const claModArr = mod.class_modification - var origin, extent, rotation - for (var i = 0; i < claModArr.length; i++) { - var ithEle = claModArr[i] - var name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) - var expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) + let origin, extent, rotation + for (let i = 0; i < claModArr.length; i++) { + const ithEle = claModArr[i] + const name = getProperty(['element_modification_or_replaceable', 'element_modification', 'name'], ithEle) + const expression = getProperty(['element_modification_or_replaceable', 'element_modification', 'modification', 'expression', 'simple_expression'], ithEle) if (name === 'extent') { extent = this.pointsObj(expression) } if (name === 'origin') { origin = this.originObj(expression) } if (name === 'rotation') { rotation = Number(expression) } } return Object.assign( - {'origin': origin}, - {'extent': extent}, - {'rotation': rotation} + { origin }, + { extent }, + { rotation } ) } @@ -293,18 +292,18 @@ function transformationObj (mod) { function graphicItemsObj (graIteObj) { const names = graIteObj.names const expressions = graIteObj.expressions - var visible, origin, rotation - for (var i = 0; i < names.length; i++) { - var name = names[i] - var expression = expressions[i] + let visible, origin, rotation + for (let i = 0; i < names.length; i++) { + const name = names[i] + const expression = expressions[i] if (name === 'visible') { visible = expression } if (name === 'origin') { origin = this.originObj(expression) } if (name === 'rotation') { rotation = Number(expression) } } return Object.assign( - {'visible': visible}, - {'origin': origin}, - {'rotation': rotation} + { visible }, + { origin }, + { rotation } ) } @@ -317,8 +316,8 @@ function originObj (expStr) { const subStr = expStr.substring(expStr.indexOf('{') + 1, expStr.lastIndexOf('}')) const subStrArr = subStr.split(',') return Object.assign( - {'x': Number(subStrArr[0])}, - {'y': Number(subStrArr[1])} + { x: Number(subStrArr[0]) }, + { y: Number(subStrArr[1]) } ) } @@ -330,10 +329,10 @@ function originObj (expStr) { function filledShapeObj (filShaObj) { const names = filShaObj.names const expressions = filShaObj.expressions - var lineColor, fillColor, pattern, fillPattern, lineThickness - for (var i = 0; i < names.length; i++) { - var name = names[i] - var expression = expressions[i] + let lineColor, fillColor, pattern, fillPattern, lineThickness + for (let i = 0; i < names.length; i++) { + const name = names[i] + const expression = expressions[i] if (name === 'lineColor') { lineColor = this.colorObj(expression) } if (name === 'fillColor') { fillColor = this.colorObj(expression) } if (name === 'pattern') { pattern = expression } @@ -341,29 +340,29 @@ function filledShapeObj (filShaObj) { if (name === 'lineThickness') { lineThickness = Number(expression) } } return Object.assign( - {'lineColor': lineColor}, - {'fillColor': fillColor}, - {'pattern': pattern}, - {'fillPattern': fillPattern}, - {'lineThickness': lineThickness} + { lineColor }, + { fillColor }, + { pattern }, + { fillPattern }, + { lineThickness } ) } function graIteFilShaObjs (graIteNams, graIteExps, filShaNams, filShaExps) { - var graIteObjs, filShaObjs + let graIteObjs, filShaObjs if (graIteNams && graIteNams.length > 0) { graIteObjs = this.graphicItemsObj(Object.assign( - {'names': graIteNams}, {'expressions': graIteExps} + { names: graIteNams }, { expressions: graIteExps } )) } if (filShaNams && filShaNams.length > 0) { filShaObjs = this.filledShapeObj(Object.assign( - {'names': filShaNams}, {'expressions': filShaExps} + { names: filShaNams }, { expressions: filShaExps } )) } return Object.assign( - {'graIteObjs': graIteObjs}, - {'filShaObjs': filShaObjs} + { graIteObjs }, + { filShaObjs } ) } @@ -376,12 +375,12 @@ function pointsObj (expStr) { const subStr = expStr.substring(expStr.indexOf('{') + 1, expStr.lastIndexOf('}')) const lefBraLocs = locations('{', subStr) const rigBraLocs = locations('}', subStr) - var eleStr, eleStrArr + let eleStr, eleStrArr const points = [] - for (var i = 0; i < lefBraLocs.length; i++) { + for (let i = 0; i < lefBraLocs.length; i++) { eleStr = subStr.substring(lefBraLocs[i] + 1, rigBraLocs[i]) eleStrArr = eleStr.split(',') - points.push(Object.assign({'x': Number(eleStrArr[0]), 'y': Number(eleStrArr[1])})) + points.push(Object.assign({ x: Number(eleStrArr[0]), y: Number(eleStrArr[1]) })) } return points } @@ -395,9 +394,9 @@ function colorObj (expStr) { const subStr = expStr.substring(expStr.indexOf('{') + 1, expStr.lastIndexOf('}')) const subStrArr = subStr.split(',') return Object.assign( - {'r': Number(subStrArr[0])}, - {'g': Number(subStrArr[1])}, - {'b': Number(subStrArr[2])} + { r: Number(subStrArr[0]) }, + { g: Number(subStrArr[1]) }, + { b: Number(subStrArr[2]) } ) } @@ -419,9 +418,9 @@ function graphicAttributeObj (keyNam, valStr) { * @param valStr string */ function lineAttributeObj (valStr) { - var nameVales = this.nameAttributePair(valStr) - var names = nameVales.names - var values = nameVales.values + const nameVales = this.nameAttributePair(valStr) + const names = nameVales.names + const values = nameVales.values return this.lineAttribute(names, values) } @@ -431,9 +430,9 @@ function lineAttributeObj (valStr) { * @param valStr string */ function textAttributeObj (valStr) { - var nameVales = this.nameAttributePair(valStr) - var names = nameVales.names - var values = nameVales.values + const nameVales = this.nameAttributePair(valStr) + const names = nameVales.names + const values = nameVales.values return this.textAttribute(names, values) } @@ -443,9 +442,9 @@ function textAttributeObj (valStr) { * @param valStr string */ function rectangleAttributeObj (valStr) { - var nameVales = this.nameAttributePair(valStr) - var names = nameVales.names - var values = nameVales.values + const nameVales = this.nameAttributePair(valStr) + const names = nameVales.names + const values = nameVales.values return this.rectangleAttribute(names, values) } @@ -455,9 +454,9 @@ function rectangleAttributeObj (valStr) { * @param valStr string */ function polygonAttributeObj (valStr) { - var nameVales = this.nameAttributePair(valStr) - var names = nameVales.names - var values = nameVales.values + const nameVales = this.nameAttributePair(valStr) + const names = nameVales.names + const values = nameVales.values return this.polygonAttribute(names, values) } @@ -467,9 +466,9 @@ function polygonAttributeObj (valStr) { * @param valStr string */ function ellipseAttributeObj (valStr) { - var nameVales = this.nameAttributePair(valStr) - var names = nameVales.names - var values = nameVales.values + const nameVales = this.nameAttributePair(valStr) + const names = nameVales.names + const values = nameVales.values return this.ellipseAttribute(names, values) } @@ -479,9 +478,9 @@ function ellipseAttributeObj (valStr) { * @param valStr string */ function bitmapAttributeObj (valStr) { - var nameVales = this.nameAttributePair(valStr) - var names = nameVales.names - var values = nameVales.values + const nameVales = this.nameAttributePair(valStr) + const names = nameVales.names + const values = nameVales.values return this.bitmapAttribute(names, values) } @@ -492,10 +491,10 @@ function bitmapAttributeObj (valStr) { * @param values value string array */ function lineAttribute (names, values) { - var points, color, pattern, thickness, arrowSize, smooth, visible - for (var i = 0; i < names.length; i++) { - var name = names[i] - var expression = values[i] + let points, color, pattern, thickness, arrowSize, smooth, visible + for (let i = 0; i < names.length; i++) { + const name = names[i] + const expression = values[i] if (name === 'pattern') { pattern = expression } if (name === 'thickness') { thickness = Number(expression) } if (name === 'arrowSize') { arrowSize = Number(expression) } @@ -507,13 +506,13 @@ function lineAttribute (names, values) { if (name === 'color') { color = this.colorObj(expression) } } return Object.assign( - {'points': points}, - {'color': color}, - {'pattern': pattern}, - {'thickness': thickness}, - {'arrowSize': arrowSize}, - {'smooth': smooth}, - {'visible': visible} + { points }, + { color }, + { pattern }, + { thickness }, + { arrowSize }, + { smooth }, + { visible } ) } @@ -526,15 +525,15 @@ function lineAttribute (names, values) { function textAttribute (names, values) { const graItes = ['visible', 'origin', 'rotation'] const filledShape = ['lineColor', 'fillColor', 'pattern', 'fillPattern', 'lineThickness'] - var graIteNams = [] - var graIteExps = [] - var filShaNams = [] - var filShaExps = [] - var extent, textString, fontSize, fontName, textColor - var horizontalAlignment, string, index - for (var i = 0; i < names.length; i++) { - var name = names[i] - var expression = values[i] + const graIteNams = [] + const graIteExps = [] + const filShaNams = [] + const filShaExps = [] + let extent, textString, fontSize, fontName, textColor + let horizontalAlignment, string, index + for (let i = 0; i < names.length; i++) { + const name = names[i] + const expression = values[i] if (name === 'extent') { extent = this.pointsObj(expression) } if (name === 'textString') { textString = expression } if (name === 'fontSize') { fontSize = Number(expression) } @@ -554,16 +553,16 @@ function textAttribute (names, values) { filShaExps.push(expression) } } - var graIteFilShaObj = this.graIteFilShaObjs(graIteNams, graIteExps, filShaNams, filShaExps) + const graIteFilShaObj = this.graIteFilShaObjs(graIteNams, graIteExps, filShaNams, filShaExps) return Object.assign( - {'extent': extent}, - {'textString': textString}, - {'fontSize': fontSize}, - {'fontName': fontName}, - {'textColor': textColor}, - {'horizontalAlignment': horizontalAlignment}, - {'string': string}, - {'index': index}, + { extent }, + { textString }, + { fontSize }, + { fontName }, + { textColor }, + { horizontalAlignment }, + { string }, + { index }, graIteFilShaObj ? graIteFilShaObj.graIteObjs : undefined, graIteFilShaObj ? graIteFilShaObj.filShaObjs : undefined ) @@ -578,14 +577,14 @@ function textAttribute (names, values) { function rectangleAttribute (names, values) { const graItes = ['visible', 'origin', 'rotation'] const filledShape = ['lineColor', 'fillColor', 'pattern', 'fillPattern', 'lineThickness'] - var graIteNams = [] - var graIteExps = [] - var filShaNams = [] - var filShaExps = [] - var extent, radius, borderPattern - for (var i = 0; i < names.length; i++) { - var name = names[i] - var expression = values[i] + const graIteNams = [] + const graIteExps = [] + const filShaNams = [] + const filShaExps = [] + let extent, radius, borderPattern + for (let i = 0; i < names.length; i++) { + const name = names[i] + const expression = values[i] if (name === 'extent') { extent = this.pointsObj(expression) } if (name === 'radius') { radius = Number(expression) } if (name === 'borderPattern') { borderPattern = expression } @@ -600,11 +599,11 @@ function rectangleAttribute (names, values) { filShaExps.push(expression) } } - var graIteFilShaObj = this.graIteFilShaObjs(graIteNams, graIteExps, filShaNams, filShaExps) + const graIteFilShaObj = this.graIteFilShaObjs(graIteNams, graIteExps, filShaNams, filShaExps) return Object.assign( - {'extent': extent}, - {'radius': radius}, - {'borderPattern': borderPattern}, + { extent }, + { radius }, + { borderPattern }, graIteFilShaObj ? graIteFilShaObj.graIteObjs : undefined, graIteFilShaObj ? graIteFilShaObj.filShaObjs : undefined ) @@ -619,14 +618,14 @@ function rectangleAttribute (names, values) { function polygonAttribute (names, values) { const graItes = ['visible', 'origin', 'rotation'] const filledShape = ['lineColor', 'fillColor', 'pattern', 'fillPattern', 'lineThickness'] - var graIteNams = [] - var graIteExps = [] - var filShaNams = [] - var filShaExps = [] - var points, smooth - for (var i = 0; i < names.length; i++) { - var name = names[i] - var expression = values[i] + const graIteNams = [] + const graIteExps = [] + const filShaNams = [] + const filShaExps = [] + let points, smooth + for (let i = 0; i < names.length; i++) { + const name = names[i] + const expression = values[i] if (name === 'points') { points = this.pointsObj(expression) } if (name === 'smooth') { smooth = expression } // Check if it is the graphicItems @@ -640,10 +639,10 @@ function polygonAttribute (names, values) { filShaExps.push(expression) } } - var graIteFilShaObj = this.graIteFilShaObjs(graIteNams, graIteExps, filShaNams, filShaExps) + const graIteFilShaObj = this.graIteFilShaObjs(graIteNams, graIteExps, filShaNams, filShaExps) return Object.assign( - {'points': points}, - {'smooth': smooth}, + { points }, + { smooth }, graIteFilShaObj ? graIteFilShaObj.graIteObjs : undefined, graIteFilShaObj ? graIteFilShaObj.filShaObjs : undefined ) @@ -658,14 +657,14 @@ function polygonAttribute (names, values) { function ellipseAttribute (names, values) { const graItes = ['visible', 'origin', 'rotation'] const filledShape = ['lineColor', 'fillColor', 'pattern', 'fillPattern', 'lineThickness'] - var graIteNams = [] - var graIteExps = [] - var filShaNams = [] - var filShaExps = [] - var extent, startAngle, endAngle, closure - for (var i = 0; i < names.length; i++) { - var name = names[i] - var expression = values[i] + const graIteNams = [] + const graIteExps = [] + const filShaNams = [] + const filShaExps = [] + let extent, startAngle, endAngle, closure + for (let i = 0; i < names.length; i++) { + const name = names[i] + const expression = values[i] if (name === 'extent') { extent = this.pointsObj(expression) } if (name === 'startAngle') { startAngle = Number(expression) } if (name === 'endAngle') { endAngle = Number(expression) } @@ -681,12 +680,12 @@ function ellipseAttribute (names, values) { filShaExps.push(expression) } } - var graIteFilShaObj = this.graIteFilShaObjs(graIteNams, graIteExps, filShaNams, filShaExps) + const graIteFilShaObj = this.graIteFilShaObjs(graIteNams, graIteExps, filShaNams, filShaExps) return Object.assign( - {'extent': extent}, - {'startAngle': startAngle}, - {'endAngle': endAngle}, - {'closure': closure}, + { extent }, + { startAngle }, + { endAngle }, + { closure }, graIteFilShaObj ? graIteFilShaObj.graIteObjs : undefined, graIteFilShaObj ? graIteFilShaObj.filShaObjs : undefined ) @@ -700,12 +699,12 @@ function ellipseAttribute (names, values) { */ function bitmapAttribute (names, values) { const graItes = ['visible', 'origin', 'rotation'] - var graIteNams = [] - var graIteExps = [] - var extent, fileName, imageSource - for (var i = 0; i < names.length; i++) { - var name = names[i] - var expression = values[i] + const graIteNams = [] + const graIteExps = [] + let extent, fileName, imageSource + for (let i = 0; i < names.length; i++) { + const name = names[i] + const expression = values[i] if (name === 'extent') { extent = this.pointsObj(expression) } if (name === 'fileName') { fileName = expression } if (name === 'imageSource') { imageSource = expression } @@ -715,11 +714,11 @@ function bitmapAttribute (names, values) { graIteExps.push(expression) } } - var graIteObj = this.graIteFilShaObjs(graIteNams, graIteExps) + const graIteObj = this.graIteFilShaObjs(graIteNams, graIteExps) return Object.assign( - {'extent': extent}, - {'fileName': fileName}, - {'imageSource': imageSource}, + { extent }, + { fileName }, + { imageSource }, graIteObj ? graIteObj.graIteObjs : undefined ) } @@ -731,26 +730,26 @@ function bitmapAttribute (names, values) { */ function nameAttributePair (valStr) { // search for '=' locations - var equLocs = locations('=', valStr) + const equLocs = locations('=', valStr) // search for ',' locations - var comLocs = [] - for (var i = 0; i < equLocs.length; i++) { - var comLoc = valStr.lastIndexOf(',', equLocs[i]) + const comLocs = [] + for (let i = 0; i < equLocs.length; i++) { + const comLoc = valStr.lastIndexOf(',', equLocs[i]) if (comLoc > -1) { comLocs.push(comLoc) } } - var keyNam = [] - var val = [] + const keyNam = [] + const val = [] keyNam.push(valStr.substring(0, equLocs[0])) if (comLocs.length > 0) { - for (var j = 0; j < comLocs.length; j++) { + for (let j = 0; j < comLocs.length; j++) { keyNam.push(valStr.substring(comLocs[j] + 1, equLocs[j + 1])) val.push(valStr.substring(equLocs[j] + 1, comLocs[j])) } } val.push(valStr.substring(equLocs[equLocs.length - 1] + 1)) return Object.assign( - {'names': keyNam}, - {'values': val} + { names: keyNam }, + { values: val } ) } @@ -761,8 +760,8 @@ function nameAttributePair (valStr) { * @param str string */ function locations (substr, str) { - var a = [] - var i = -1 + const a = [] + let i = -1 while ((i = str.indexOf(substr, i + 1)) >= 0) { a.push(i) } return a } diff --git a/lib/jsonquery.js b/lib/jsonquery.js index 66ada840..499b6118 100644 --- a/lib/jsonquery.js +++ b/lib/jsonquery.js @@ -19,18 +19,18 @@ function simplifyModelicaJSON (model, parseMode) { const within = model.within const finalDef = model.final_class_definitions const claDefArr = [] - for (var i = 0; i < finalDef.length; i++) { - var obj = finalDef[i] + for (let i = 0; i < finalDef.length; i++) { + const obj = finalDef[i] const final = obj.is_final ? true : undefined const claDef = this.classDefinition(obj.class_definition) - claDefArr.push(Object.assign({'final': final}, claDef)) + claDefArr.push(Object.assign({ final }, claDef)) } return Object.assign( - {'within': within}, - {'class_definition': claDefArr}, - {'modelicaFile': model.modelicaFile}, - {'fullMoFilePath': model.fullMoFilePath}, - {'checksum': model.checksum}) + { within }, + { class_definition: claDefArr }, + { modelicaFile: model.modelicaFile }, + { fullMoFilePath: model.fullMoFilePath }, + { checksum: model.checksum }) } function classDefinition (claDef) { @@ -38,9 +38,9 @@ function classDefinition (claDef) { const classPrefixes = claDef.class_prefixes const classSpecifierObj = this.classSpecifier(claDef.class_specifier) return Object.assign( - {'encapsulated': encapsulated || undefined}, - {'class_prefixes': classPrefixes}, - {'class_specifier': classSpecifierObj} + { encapsulated: encapsulated || undefined }, + { class_prefixes: classPrefixes }, + { class_specifier: classSpecifierObj } ) } @@ -54,9 +54,11 @@ function classSpecifier (claSpe) { const shortClass = claSpe.short_class_specifier const derClass = claSpe.der_class_specifier if (longClass || shortClass || derClass) { - return longClass ? (Object.assign({'long_class_specifier': this.longClassSpecifier(longClass)})) - : (shortClass ? (Object.assign({'short_class_specifier': this.shortClassSpecifier(shortClass)})) - : (Object.assign({'der_class_specifier': this.derClassSpecifier(derClass)}))) + return longClass + ? (Object.assign({ long_class_specifier: this.longClassSpecifier(longClass) })) + : (shortClass + ? (Object.assign({ short_class_specifier: this.shortClassSpecifier(shortClass) })) + : (Object.assign({ der_class_specifier: this.derClassSpecifier(derClass) }))) } throw new Error('one of long_class_specifier or short_class_specifier or der_class_specifier must be present in class_specifier') } @@ -67,14 +69,14 @@ function classSpecifier (claSpe) { * @param lonClaSpe long_class_specifier value */ function longClassSpecifier (lonClaSpe) { - var ident = null + let ident = null if (lonClaSpe.identifier) { ident = lonClaSpe.identifier } else { throw new Error('missing identifier') } const desStr = this.trimDesString(lonClaSpe.string_comment) - var comp = null + let comp = null if (lonClaSpe.composition) { comp = this.composition(lonClaSpe.composition) } else { @@ -84,11 +86,11 @@ function longClassSpecifier (lonClaSpe) { const claMod = lonClaSpe.class_modification const claModObj = claMod ? this.classModification(claMod) : undefined return Object.assign( - {'identifier': ident}, - {'description_string': desStr}, - {'composition': !ut.isEmptyObject(comp) ? comp : undefined}, - {'extends': ext || undefined}, - {'class_modification': claModObj}) + { identifier: ident }, + { description_string: desStr }, + { composition: !ut.isEmptyObject(comp) ? comp : undefined }, + { extends: ext || undefined }, + { class_modification: claModObj }) } /** @@ -109,10 +111,10 @@ function composition (com) { const ann = com.annotation ? com.annotation.class_modification : null const annObj = ann ? this.classModification(ann) : undefined return Object.assign( - {'element_list': eleLis}, - {'element_sections': eleSec}, - {'external_composition': extComObj}, - {'annotation': (annObj === '()') ? undefined : annObj}) + { element_list: eleLis }, + { element_sections: eleSec }, + { external_composition: extComObj }, + { annotation: (annObj === '()') ? undefined : annObj }) } /** @@ -123,7 +125,7 @@ function composition (com) { function elementList (eleLis) { const ele = eleLis.elements const eleArr = [] - for (var i = 0; i < ele.length; i++) { + for (let i = 0; i < ele.length; i++) { const obj = ele[i] const impCla = obj.import_clause const extCla = obj.extends_clause @@ -141,17 +143,17 @@ function elementList (eleLis) { const des = obj.comment const desObj = des ? this.description(des) : undefined eleArr.push(Object.assign( - {'import_clause': impCla ? this.importClause(impCla) : undefined}, - {'extends_clause': extCla ? this.extendsClause(extCla) : undefined}, - {'redeclare': redeclare || undefined}, - {'final': final || undefined}, - {'inner': inner || undefined}, - {'outer': outer || undefined}, - {'replaceable': replaceable || undefined}, - {'constraining_clause': conCla ? this.constrainingClause(conCla) : undefined}, - {'class_definition': claDef ? this.classDefinition(claDef) : undefined}, - {'component_clause': comCla ? this.componentClause(comCla) : undefined}, - {'description': !ut.isEmptyObject(desObj) ? desObj : undefined})) + { import_clause: impCla ? this.importClause(impCla) : undefined }, + { extends_clause: extCla ? this.extendsClause(extCla) : undefined }, + { redeclare: redeclare || undefined }, + { final: final || undefined }, + { inner: inner || undefined }, + { outer: outer || undefined }, + { replaceable: replaceable || undefined }, + { constraining_clause: conCla ? this.constrainingClause(conCla) : undefined }, + { class_definition: claDef ? this.classDefinition(claDef) : undefined }, + { component_clause: comCla ? this.componentClause(comCla) : undefined }, + { description: !ut.isEmptyObject(desObj) ? desObj : undefined })) } return eleArr } @@ -169,11 +171,11 @@ function importClause (impCla) { const comment = impCla.comment const desObj = comment ? this.description(comment) : undefined return Object.assign( - {'identifier': identifier}, - {'name': name ? this.nameString(name) : undefined}, - {'dot_star': dotSta ? '.*' : undefined}, - {'import_list': impLis ? this.importList(impLis) : undefined}, - {'description': !ut.isEmptyObject(desObj) ? desObj : undefined} + { identifier }, + { name: name ? this.nameString(name) : undefined }, + { dot_star: dotSta ? '.*' : undefined }, + { import_list: impLis ? this.importList(impLis) : undefined }, + { description: !ut.isEmptyObject(desObj) ? desObj : undefined } ) } @@ -197,8 +199,8 @@ function description (des) { const ann = des.annotation ? des.annotation.class_modification : null const annotation = ann ? this.classModification(ann) : undefined return Object.assign( - {'description_string': strDes}, - {'annotation': (annotation === '()') ? undefined : annotation} + { description_string: strDes }, + { annotation: (annotation === '()') ? undefined : annotation } ) } @@ -225,9 +227,9 @@ function extendsClause (extCla) { const ann = extCla.annotation ? extCla.annotation.class_modification : null const annotation = ann ? this.classModification(ann) : undefined return Object.assign( - {'name': name ? this.nameString(name) : undefined}, - {'class_modification': claMod ? this.classModification(claMod) : undefined}, - {'annotation': (annotation === '()') ? undefined : annotation} + { name: name ? this.nameString(name) : undefined }, + { class_modification: claMod ? this.classModification(claMod) : undefined }, + { annotation: (annotation === '()') ? undefined : annotation } ) } @@ -240,8 +242,8 @@ function constrainingClause (conCla) { const name = conCla.name const claMod = conCla.class_modification return Object.assign( - {'name': name ? this.nameString(name) : undefined}, - {'class_modification': claMod ? this.classModification(claMod) : undefined} + { name: name ? this.nameString(name) : undefined }, + { class_modification: claMod ? this.classModification(claMod) : undefined } ) } @@ -256,10 +258,10 @@ function componentClause (comCla) { const arrSub = comCla.array_subscripts const comLis = comCla.component_list return Object.assign( - {'type_prefix': prefix}, - {'type_specifier': this.typeSpecifier(typSpe)}, - {'array_subscripts': arrSub ? this.arraySubscripts(arrSub) : undefined}, - {'component_list': comLis ? this.componentList(comLis) : undefined} + { type_prefix: prefix }, + { type_specifier: this.typeSpecifier(typSpe) }, + { array_subscripts: arrSub ? this.arraySubscripts(arrSub) : undefined }, + { component_list: comLis ? this.componentList(comLis) : undefined } ) } @@ -281,13 +283,13 @@ function typeSpecifier (typSpe) { function arraySubscripts (arrSub) { const eleArr = [] const subscripts = arrSub.subscripts - for (var i = 0; i < subscripts.length; i++) { - var obj = subscripts[i] + for (let i = 0; i < subscripts.length; i++) { + const obj = subscripts[i] const exp = obj.expression const colOp = obj.colon_op eleArr.push(Object.assign( - {'colon_op': colOp || undefined}, - {'expression': exp ? this.expression(exp) : undefined} + { colon_op: colOp || undefined }, + { expression: exp ? this.expression(exp) : undefined } )) } return eleArr @@ -303,8 +305,8 @@ function expression (expObj) { const ifExp = expObj.if_expression const ifExpObj = ifExp ? this.ifExpression(ifExp) : undefined return Object.assign( - {'simple_expression': simExp ? this.simpleExpression(simExp) : undefined}, - {'if_expression': !ut.isEmptyObject(ifExpObj) ? ifExpObj : undefined} + { simple_expression: simExp ? this.simpleExpression(simExp) : undefined }, + { if_expression: !ut.isEmptyObject(ifExpObj) ? ifExpObj : undefined } ) } @@ -317,18 +319,18 @@ function ifExpression (ifExp) { const ifEls = ifExp.if_elseif const elsExp = ifExp.else_expression const ifElsArr = [] - for (var i = 0; i < ifEls.length; i++) { - var obj = ifEls[i] + for (let i = 0; i < ifEls.length; i++) { + const obj = ifEls[i] const con = obj.condition const then = obj.then ifElsArr.push(Object.assign( - {'condition': con ? this.expression(con) : undefined}, - {'then': then ? this.expression(then) : undefined} + { condition: con ? this.expression(con) : undefined }, + { then: then ? this.expression(then) : undefined } )) } return Object.assign( - {'if_elseif': (ifElsArr.length > 0) ? ifElsArr : undefined}, - {'else_expression': elsExp ? this.expression(elsExp) : undefined} + { if_elseif: (ifElsArr.length > 0) ? ifElsArr : undefined }, + { else_expression: elsExp ? this.expression(elsExp) : undefined } ) } @@ -340,16 +342,16 @@ function ifExpression (ifExp) { function componentList (comLis) { const compList = comLis.component_declaration_list const decLisArr = [] - for (var i = 0; i < compList.length; i++) { - var obj = compList[i] + for (let i = 0; i < compList.length; i++) { + const obj = compList[i] const dec = obj.declaration const conAtt = obj.condition_attribute const com = obj.comment const comObj = com ? this.description(com) : undefined decLisArr.push(Object.assign( - {'declaration': dec ? this.declaration(dec) : undefined}, - {'condition_attribute': conAtt ? {'expression': this.expression(conAtt.expression)} : undefined}, - {'description': !ut.isEmptyObject(comObj) ? comObj : undefined} + { declaration: dec ? this.declaration(dec) : undefined }, + { condition_attribute: conAtt ? { expression: this.expression(conAtt.expression) } : undefined }, + { description: !ut.isEmptyObject(comObj) ? comObj : undefined } )) } return decLisArr @@ -365,9 +367,9 @@ function declaration (dec) { const arrSub = dec.array_subscripts const mod = dec.modification return Object.assign( - {'identifier': ident}, - {'array_subscripts': arrSub ? this.arraySubscripts(arrSub) : undefined}, - {'modification': mod ? this.modification(mod) : undefined} + { identifier: ident }, + { array_subscripts: arrSub ? this.arraySubscripts(arrSub) : undefined }, + { modification: mod ? this.modification(mod) : undefined } ) } @@ -382,10 +384,10 @@ function modification (mod) { const colEqu = mod.colon_equal const exp = mod.expression return Object.assign( - {'class_modification': claMod ? this.classModification(claMod) : undefined}, - {'equal': equ || undefined}, - {'colon_equal': colEqu || undefined}, - {'expression': exp ? this.expression(exp) : undefined} + { class_modification: claMod ? this.classModification(claMod) : undefined }, + { equal: equ || undefined }, + { colon_equal: colEqu || undefined }, + { expression: exp ? this.expression(exp) : undefined } ) } @@ -399,8 +401,8 @@ function classModification (claMod) { if (argLis) { const claModArr = [] const args = argLis.arguments - for (var i = 0; i < args.length; i++) { - var ele = args[i] + for (let i = 0; i < args.length; i++) { + const ele = args[i] const eleModRep = ele.element_modification_or_replaceable const eleRed = ele.element_redeclaration // var eleModRepDict = { @@ -410,8 +412,8 @@ function classModification (claMod) { // 'element_redeclaration': eleRed ? this.elementRedeclaration(eleRed) : undefined // } claModArr.push(Object.assign( - {'element_modification_or_replaceable': eleModRep ? this.elementModificationReplaceable(eleModRep) : undefined}, - {'element_redeclaration': eleRed ? this.elementRedeclaration(eleRed) : undefined} + { element_modification_or_replaceable: eleModRep ? this.elementModificationReplaceable(eleModRep) : undefined }, + { element_redeclaration: eleRed ? this.elementRedeclaration(eleRed) : undefined } )) } return claModArr @@ -431,10 +433,10 @@ function elementModificationReplaceable (eleModRep) { const eleMod = eleModRep.element_modification const eleRep = eleModRep.element_replaceable return Object.assign( - {'each': each || undefined}, - {'final': final || undefined}, - {'element_modification': eleMod ? this.elementModification(eleMod) : undefined}, - {'element_replaceable': eleRep ? this.elementReplaceable(eleRep) : undefined} + { each: each || undefined }, + { final: final || undefined }, + { element_modification: eleMod ? this.elementModification(eleMod) : undefined }, + { element_replaceable: eleRep ? this.elementReplaceable(eleRep) : undefined } ) } @@ -447,18 +449,18 @@ function elementModification (eleMod) { const name = eleMod.name ? this.nameString(eleMod.name) : undefined const isGraAnn = name ? graPri.isGraphicAnnotation(name) : undefined const mod = eleMod.modification - const desStr = trimDesString(eleMod.string_comment) + const desStr = this.trimDesString(eleMod.string_comment) if (isGraAnn) { const graMod = mod ? graPri.graphicAnnotationObj(name, this.modification(mod)) : undefined return Object.assign( - {[name]: graMod} + { [name]: graMod } ) } else { // the 'name' could be string, or an object for the graphical annotation return Object.assign( - {'name': name}, - {'modification': mod ? this.modification(mod) : undefined}, - {'description_string': desStr} + { name }, + { modification: mod ? this.modification(mod) : undefined }, + { description_string: desStr } ) } } @@ -473,9 +475,9 @@ function elementReplaceable (eleRep) { const comCla1 = eleRep.component_clause1 const conCla = eleRep.constraining_clause return Object.assign( - {'short_class_definition': shoClaDef ? this.shortClassDefinition(shoClaDef) : undefined}, - {'component_clause1': comCla1 ? this.componentClause1(comCla1) : undefined}, - {'constraining_clause': conCla ? this.constrainingClause(conCla) : undefined} + { short_class_definition: shoClaDef ? this.shortClassDefinition(shoClaDef) : undefined }, + { component_clause1: comCla1 ? this.componentClause1(comCla1) : undefined }, + { constraining_clause: conCla ? this.constrainingClause(conCla) : undefined } ) } @@ -488,8 +490,8 @@ function shortClassDefinition (shoClaDef) { const claPre = shoClaDef.class_prefixes const shoClaSpe = shoClaDef.short_class_specifier return Object.assign( - {'class_prefixes': claPre}, - {'short_class_specifier': this.shortClassSpecifier(shoClaSpe)} + { class_prefixes: claPre }, + { short_class_specifier: this.shortClassSpecifier(shoClaSpe) } ) } @@ -503,9 +505,9 @@ function componentClause1 (comCla1) { const typSpe = comCla1.type_specifier const comDec1 = comCla1.component_declaration1 return Object.assign( - {'type_prefix': typPre}, - {'type_specifier': this.typeSpecifier(typSpe)}, - {'component_declaration1': this.componentDeclaration1(comDec1)} + { type_prefix: typPre }, + { type_specifier: this.typeSpecifier(typSpe) }, + { component_declaration1: this.componentDeclaration1(comDec1) } ) } @@ -519,8 +521,8 @@ function componentDeclaration1 (comDec1) { const des = comDec1.comment const desObj = des ? this.description(des) : undefined return Object.assign( - {'declaration': this.declaration(dec)}, - {'description': !ut.isEmptyObject(desObj) ? desObj : undefined} + { declaration: this.declaration(dec) }, + { description: !ut.isEmptyObject(desObj) ? desObj : undefined } ) } @@ -536,11 +538,11 @@ function elementRedeclaration (eleRed) { const comCla1 = eleRed.component_clause1 const eleRep = eleRed.element_replaceable return Object.assign( - {'each': each || undefined}, - {'final': final || undefined}, - {'short_class_definition': shoClaDef ? this.shortClassDefinition(shoClaDef) : undefined}, - {'component_clause1': comCla1 ? this.componentClause1(comCla1) : undefined}, - {'element_replaceable': eleRep ? this.elementReplaceable(eleRep) : undefined} + { each: each || undefined }, + { final: final || undefined }, + { short_class_definition: shoClaDef ? this.shortClassDefinition(shoClaDef) : undefined }, + { component_clause1: comCla1 ? this.componentClause1(comCla1) : undefined }, + { element_replaceable: eleRep ? this.elementReplaceable(eleRep) : undefined } ) } @@ -551,17 +553,17 @@ function elementRedeclaration (eleRed) { */ function elementSections (eleSec) { const secArr = [] - for (var i = 0; i < eleSec.length; i++) { - var obj = eleSec[i] + for (let i = 0; i < eleSec.length; i++) { + const obj = eleSec[i] const pubEle = obj.public_element_list const proEle = obj.protected_element_list const equSec = obj.equation_section const algSec = obj.algorithm_section secArr.push(Object.assign( - {'public_element_list': pubEle ? this.elementList(pubEle) : undefined}, - {'protected_element_list': proEle ? this.elementList(proEle) : undefined}, - {'equation_section': equSec ? this.equationSection(equSec) : undefined}, - {'algorithm_section': algSec ? this.algorithmSection(algSec) : undefined} + { public_element_list: pubEle ? this.elementList(pubEle) : undefined }, + { protected_element_list: proEle ? this.elementList(proEle) : undefined }, + { equation_section: equSec ? this.equationSection(equSec) : undefined }, + { algorithm_section: algSec ? this.algorithmSection(algSec) : undefined } )) } return secArr @@ -576,13 +578,13 @@ function equationSection (equSec) { const ini = equSec.initial const equLis = equSec.equations const equArr = [] - for (var i = 0; i < equLis.length; i++) { - var obj = equLis[i] + for (let i = 0; i < equLis.length; i++) { + const obj = equLis[i] equArr.push(this.equation(obj)) } return Object.assign( - {'initial': ini || undefined}, - {'equation': equArr} + { initial: ini || undefined }, + { equation: equArr } ) } @@ -601,13 +603,13 @@ function equation (equ) { const des = equ.comment const desObj = des ? this.description(des) : undefined return Object.assign( - {'assignment_equation': (assEqu && !ut.isEmptyObject(assEqu)) ? this.assignmentEquation(assEqu) : undefined}, - {'if_equation': ifEqu ? this.ifEquation(ifEqu) : undefined}, - {'for_equation': forEqu ? this.forEquation(forEqu) : undefined}, - {'connect_clause': conCla ? this.connectClause(conCla) : undefined}, - {'when_equation': wheEqu ? this.whenEquation(wheEqu) : undefined}, - {'function_call_equation': (funCalEqu && !ut.isEmptyObject(funCalEqu)) ? this.functionCallEquation(funCalEqu) : undefined}, - {'description': !ut.isEmptyObject(desObj) ? desObj : undefined} + { assignment_equation: (assEqu && !ut.isEmptyObject(assEqu)) ? this.assignmentEquation(assEqu) : undefined }, + { if_equation: ifEqu ? this.ifEquation(ifEqu) : undefined }, + { for_equation: forEqu ? this.forEquation(forEqu) : undefined }, + { connect_clause: conCla ? this.connectClause(conCla) : undefined }, + { when_equation: wheEqu ? this.whenEquation(wheEqu) : undefined }, + { function_call_equation: (funCalEqu && !ut.isEmptyObject(funCalEqu)) ? this.functionCallEquation(funCalEqu) : undefined }, + { description: !ut.isEmptyObject(desObj) ? desObj : undefined } ) } @@ -620,8 +622,8 @@ function assignmentEquation (assEqu) { const simExp = assEqu.lhs const exp = assEqu.rhs return Object.assign( - {'lhs': simExp ? this.simpleExpression(simExp) : undefined}, - {'rhs': exp ? this.expression(exp) : undefined} + { lhs: simExp ? this.simpleExpression(simExp) : undefined }, + { rhs: exp ? this.expression(exp) : undefined } ) } @@ -634,31 +636,31 @@ function ifEquation (ifEqu) { const ifEls = ifEqu.if_elseif const elsEqu = ifEqu.else_equation const ifElsArr = [] - for (var i = 0; i < ifEls.length; i++) { - var obj = ifEls[i] + for (let i = 0; i < ifEls.length; i++) { + const obj = ifEls[i] const theEquArr = [] const theEqu = obj.then - for (var j = 0; j < theEqu.length; j++) { - var ele = theEqu[j] + for (let j = 0; j < theEqu.length; j++) { + const ele = theEqu[j] theEquArr.push(Object.assign( - {'equation': this.equation(ele)} + { equation: this.equation(ele) } )) } ifElsArr.push(Object.assign( - {'condition': obj.condition ? this.expression(obj.condition) : undefined}, - {'then': theEquArr} + { condition: obj.condition ? this.expression(obj.condition) : undefined }, + { then: theEquArr } )) } const elsArr = [] if (elsEqu) { - for (var k = 0; k < elsEqu.length; k++) { - var obj2 = elsEqu[k] + for (let k = 0; k < elsEqu.length; k++) { + const obj2 = elsEqu[k] elsArr.push(this.equation(obj2)) } } return Object.assign( - {'if_elseif': ifElsArr}, - {'else_equation': elsEqu ? elsArr : undefined} + { if_elseif: ifElsArr }, + { else_equation: elsEqu ? elsArr : undefined } ) } @@ -671,13 +673,13 @@ function forEquation (forEqu) { const forInd = forEqu.for_indices const looEqu = forEqu.loop_equations const looEquArr = [] - for (var i = 0; i < looEqu.length; i++) { - var obj = looEqu[i] + for (let i = 0; i < looEqu.length; i++) { + const obj = looEqu[i] looEquArr.push(this.equation(obj)) } return Object.assign( - {'for_indices': this.forIndices(forInd)}, - {'loop_equations': looEquArr} + { for_indices: this.forIndices(forInd) }, + { loop_equations: looEquArr } ) } @@ -688,8 +690,8 @@ function forEquation (forEqu) { */ function connectClause (conCla) { return Object.assign( - {'from': this.componentReference(conCla.from)}, - {'to': this.componentReference(conCla.to)} + { from: this.componentReference(conCla.from) }, + { to: this.componentReference(conCla.to) } ) } @@ -701,13 +703,13 @@ function connectClause (conCla) { function componentReference (comRef) { const comPar = comRef.component_reference_parts const parArr = [] - for (var i = 0; i < comPar.length; i++) { - var obj = comPar[i] + for (let i = 0; i < comPar.length; i++) { + const obj = comPar[i] const arrSub = obj.array_subscripts parArr.push(Object.assign( - {'dot_op': obj.dot_op}, - {'identifier': obj.identifier}, - {'array_subscripts': arrSub ? this.arraySubscripts(arrSub) : undefined} + { dot_op: obj.dot_op }, + { identifier: obj.identifier }, + { array_subscripts: arrSub ? this.arraySubscripts(arrSub) : undefined } )) } return parArr @@ -721,18 +723,18 @@ function componentReference (comRef) { function whenEquation (wheEqus) { const wheEqu = wheEqus.when_elsewhen const wheEquArr = [] - for (var i = 0; i < wheEqu.length; i++) { - var obj = wheEqu[i] + for (let i = 0; i < wheEqu.length; i++) { + const obj = wheEqu[i] const con = obj.condition const the = obj.then const theArr = [] - for (var j = 0; j < the.length; j++) { - var ele = the[j] + for (let j = 0; j < the.length; j++) { + const ele = the[j] theArr.push(this.equation(ele)) } wheEquArr.push(Object.assign( - {'condition': con ? this.expression(con) : undefined}, - {'then': theArr} + { condition: con ? this.expression(con) : undefined }, + { then: theArr } )) } return wheEquArr @@ -747,8 +749,8 @@ function functionCallEquation (funCalEqu) { const name = funCalEqu.function_name const funCalArg = funCalEqu.function_call_args return Object.assign( - {'function_name': name ? this.nameString(name) : undefined}, - {'function_call_args': funCalArg ? this.functionCallArgs(funCalArg) : undefined} + { function_name: name ? this.nameString(name) : undefined }, + { function_call_args: funCalArg ? this.functionCallArgs(funCalArg) : undefined } ) } @@ -773,10 +775,10 @@ function functionArguments (funArgs) { const forInd = funArgs.for_indices const intFunArgs = funArgs.function_arguments return Object.assign( - {'named_arguments': namArg ? this.namedArguments(namArg) : undefined}, - {'function_argument': funArg ? this.functionArgument(funArg) : undefined}, - {'for_indices': forInd ? this.forIndices(forInd) : undefined}, - {'function_arguments': intFunArgs ? this.functionArguments(intFunArgs) : undefined} + { named_arguments: namArg ? this.namedArguments(namArg) : undefined }, + { function_argument: funArg ? this.functionArgument(funArg) : undefined }, + { for_indices: forInd ? this.forIndices(forInd) : undefined }, + { function_arguments: intFunArgs ? this.functionArguments(intFunArgs) : undefined } ) } @@ -788,13 +790,13 @@ function functionArguments (funArgs) { function namedArguments (namArg) { const args = this.namedArgsArray(namArg) const namArgArr = [] - for (var i = 0; i < args.length; i++) { - var obj = args[i] + for (let i = 0; i < args.length; i++) { + const obj = args[i] const ident = obj.identifier const val = obj.value namArgArr.push(Object.assign( - {'identifier': ident}, - {'value': val ? this.functionArgument(val) : undefined} + { identifier: ident }, + { value: val ? this.functionArgument(val) : undefined } )) } return namArgArr @@ -810,10 +812,10 @@ function functionArgument (funArg) { const namArg = funArg.named_arguments const exp = funArg.expression return Object.assign( - {'function_name': name ? this.nameString(name) : undefined}, - {'named_arguments': namArg ? this.namedArguments(namArg) : undefined}, - {'expression': exp ? this.expression(exp) : undefined} - ) + { function_name: name ? this.nameString(name) : undefined }, + { named_arguments: namArg ? this.namedArguments(namArg) : undefined }, + { expression: exp ? this.expression(exp) : undefined } + ) } /** @@ -824,12 +826,12 @@ function functionArgument (funArg) { function forIndices (forInd) { const indLis = forInd.indices const indArr = [] - for (var i = 0; i < indLis.length; i++) { - var obj = indLis[i] + for (let i = 0; i < indLis.length; i++) { + const obj = indLis[i] const exp = obj.expression indArr.push(Object.assign( - {'identifier': obj.identifier}, - {'expression': exp ? this.expression(exp) : undefined} + { identifier: obj.identifier }, + { expression: exp ? this.expression(exp) : undefined } )) } return indArr @@ -844,13 +846,13 @@ function algorithmSection (algSec) { const ini = algSec.initial const staLis = algSec.statements const staArr = [] - for (var i = 0; i < staLis.length; i++) { - var obj = staLis[i] + for (let i = 0; i < staLis.length; i++) { + const obj = staLis[i] staArr.push(this.statement(obj)) } return Object.assign( - {'initial': ini || undefined}, - {'statement': staArr} + { initial: ini || undefined }, + { statement: staArr } ) } @@ -872,16 +874,16 @@ function statement (sta) { const isBreak = sta.is_break const isReturn = sta.is_return return Object.assign( - {'assignment_statement': assSta ? this.assignmentStatement(assSta) : undefined}, - {'Function_call_statement': funCalSta ? this.functionCallStatement(funCalSta) : undefined}, - {'assignment_with_function_call_statement': assWithFunCalSta ? this.assignmentWithFunctionCallStatement(assWithFunCalSta) : undefined}, - {'break': isBreak || undefined}, - {'return': isReturn || undefined}, - {'if_statement': ifSta ? this.ifStatement(ifSta) : undefined}, - {'for_statement': forSta ? this.forStatement(forSta) : undefined}, - {'while_statement': whiSta ? this.whileStatement(whiSta) : undefined}, - {'when_statement': wheSta ? this.whenStatement(wheSta) : undefined}, - {'description': !ut.isEmptyObject(desObj) ? desObj : undefined} + { assignment_statement: assSta ? this.assignmentStatement(assSta) : undefined }, + { Function_call_statement: funCalSta ? this.functionCallStatement(funCalSta) : undefined }, + { assignment_with_function_call_statement: assWithFunCalSta ? this.assignmentWithFunctionCallStatement(assWithFunCalSta) : undefined }, + { break: isBreak || undefined }, + { return: isReturn || undefined }, + { if_statement: ifSta ? this.ifStatement(ifSta) : undefined }, + { for_statement: forSta ? this.forStatement(forSta) : undefined }, + { while_statement: whiSta ? this.whileStatement(whiSta) : undefined }, + { when_statement: wheSta ? this.whenStatement(wheSta) : undefined }, + { description: !ut.isEmptyObject(desObj) ? desObj : undefined } ) } @@ -894,8 +896,8 @@ function assignmentStatement (assSta) { const ident = assSta.identifier const val = assSta.value return Object.assign( - {'identifier': ident ? this.componentReference(ident) : undefined}, - {'value': val ? this.expression(val) : undefined} + { identifier: ident ? this.componentReference(ident) : undefined }, + { value: val ? this.expression(val) : undefined } ) } @@ -908,8 +910,8 @@ function functionCallStatement (funCalSta) { const name = funCalSta.function_name const funCalArg = funCalSta.function_call_args return Object.assign( - {'function_name': name ? this.componentReference(name) : undefined}, - {'function_call_args': funCalArg ? this.functionCallArgs(funCalArg) : undefined} + { function_name: name ? this.componentReference(name) : undefined }, + { function_call_args: funCalArg ? this.functionCallArgs(funCalArg) : undefined } ) } @@ -920,7 +922,7 @@ function functionCallStatement (funCalSta) { */ function assignmentWithFunctionCallStatement (assWithFunCalSta) { const outExpLis = assWithFunCalSta.output_expression_list - var outExp + let outExp const name = assWithFunCalSta.function_name const funCalArg = assWithFunCalSta.function_call_args if (outExpLis) { @@ -928,20 +930,20 @@ function assignmentWithFunctionCallStatement (assWithFunCalSta) { } if (outExp) { const outExpArr = [] - for (var i = 0; i < outExpLis.length; i++) { - var obj = outExpLis[i] - var objExp = obj.expression + for (let i = 0; i < outExpLis.length; i++) { + const obj = outExpLis[i] + const objExp = obj.expression if (objExp) { outExpArr.push(this.expression(objExp)) } } return Object.assign( - {'output_expression_list': outExpArr}, - {'function_name': name ? this.componentReference(name) : undefined}, - {'function_call_args': funCalArg ? this.functionCallArgs(funCalArg) : undefined} - ) + { output_expression_list: outExpArr }, + { function_name: name ? this.componentReference(name) : undefined }, + { function_call_args: funCalArg ? this.functionCallArgs(funCalArg) : undefined } + ) } else { return Object.assign( - {'function_name': name ? this.componentReference(name) : undefined}, - {'function_call_args': funCalArg ? this.functionCallArgs(funCalArg) : undefined} + { function_name: name ? this.componentReference(name) : undefined }, + { function_call_args: funCalArg ? this.functionCallArgs(funCalArg) : undefined } ) } // output_expression_list check if output_expression exists @@ -957,29 +959,29 @@ function ifStatement (ifSta) { const ifEls = ifSta.if_elseif const elsSta = ifSta.else_statement const ifElsArr = [] - for (var i = 0; i < ifEls.length; i++) { - var obj = ifEls[i] + for (let i = 0; i < ifEls.length; i++) { + const obj = ifEls[i] const theStaArr = [] const theSta = obj.then - for (var j = 0; j < theSta.length; j++) { - var ele = theSta[j] + for (let j = 0; j < theSta.length; j++) { + const ele = theSta[j] theStaArr.push(this.statement(ele)) } ifElsArr.push(Object.assign( - {'condition': obj.condition ? this.expression(obj.condition) : undefined}, - {'then': theStaArr} + { condition: obj.condition ? this.expression(obj.condition) : undefined }, + { then: theStaArr } )) } const elsArr = [] if (elsSta && (elsSta.length > 0)) { - for (var k = 0; k < elsSta.length; k++) { - var obj2 = elsSta[k] + for (let k = 0; k < elsSta.length; k++) { + const obj2 = elsSta[k] elsArr.push(this.statement(obj2)) } } return Object.assign( - {'if_elseif': ifElsArr}, - {'else_statement': (elsArr.length > 0) ? elsArr : undefined} + { if_elseif: ifElsArr }, + { else_statement: (elsArr.length > 0) ? elsArr : undefined } ) } @@ -992,13 +994,13 @@ function forStatement (forSta) { const forInd = forSta.for_indices const looSta = forSta.loop_statements const looStaArr = [] - for (var i = 0; i < looSta.length; i++) { - var obj = looSta[i] + for (let i = 0; i < looSta.length; i++) { + const obj = looSta[i] looStaArr.push(this.statement(obj)) } return Object.assign( - {'for_indices': this.forIndices(forInd)}, - {'loop_statements': looStaArr} + { for_indices: this.forIndices(forInd) }, + { loop_statements: looStaArr } ) } @@ -1011,13 +1013,13 @@ function whileStatement (whiSta) { const con = whiSta.expression const looSta = whiSta.loop_statements const staArr = [] - for (var i = 0; i < looSta.length; i++) { - var obj = looSta[i] + for (let i = 0; i < looSta.length; i++) { + const obj = looSta[i] staArr.push(this.statement(obj)) } return Object.assign( - {'expression': con ? this.expression(con) : undefined}, - {'loop_statement': staArr} + { expression: con ? this.expression(con) : undefined }, + { loop_statement: staArr } ) } @@ -1029,18 +1031,18 @@ function whileStatement (whiSta) { function whenStatement (wheStas) { const wheSta = wheStas.when_elsewhen const wheStaArr = [] - for (var i = 0; i < wheSta.length; i++) { - var obj = wheSta[i] + for (let i = 0; i < wheSta.length; i++) { + const obj = wheSta[i] const con = obj.condition const the = obj.then const theArr = [] - for (var j = 0; j < the.length; j++) { - var ele = the[j] + for (let j = 0; j < the.length; j++) { + const ele = the[j] theArr.push(this.statement(ele)) } wheStaArr.push(Object.assign( - {'condition': con ? this.expression(con) : undefined}, - {'then': theArr} + { condition: con ? this.expression(con) : undefined }, + { then: theArr } )) } return wheStaArr @@ -1057,9 +1059,9 @@ function externalComposition (extCom) { const extAnn = extCom.external_annotation ? extCom.external_annotation.class_modification : null const annotation = extAnn ? this.classModification(extAnn) : undefined return Object.assign( - {'language_specification': lanSpe}, - {'external_function_call': extFunCal ? this.externalFunctionCall(extFunCal) : undefined}, - {'external_annotation': (annotation === '()') ? undefined : annotation} + { language_specification: lanSpe }, + { external_function_call: extFunCal ? this.externalFunctionCall(extFunCal) : undefined }, + { external_annotation: (annotation === '()') ? undefined : annotation } ) } @@ -1075,15 +1077,15 @@ function externalFunctionCall (extFunCal) { const exps = expLis ? expLis.expressions : undefined const expArr = [] if (exps) { - for (var i = 0; i < exps.length; i++) { - var ele = exps[i] + for (let i = 0; i < exps.length; i++) { + const ele = exps[i] expArr.push(this.expression(ele)) } } return Object.assign( - {'component_reference': comRef ? this.componentReference(comRef) : undefined}, - {'identifier': ident}, - {'expression_list': exps ? expArr : undefined} + { component_reference: comRef ? this.componentReference(comRef) : undefined }, + { identifier: ident }, + { expression_list: exps ? expArr : undefined } ) } @@ -1096,8 +1098,8 @@ function shortClassSpecifier (shoClaSpe) { const ident = shoClaSpe.identifier const val = shoClaSpe.short_class_specifier_value return Object.assign( - {'identifier': ident}, - {'value': val ? this.shortClassSpecifierValue(val) : undefined} + { identifier: ident }, + { value: val ? this.shortClassSpecifierValue(val) : undefined } ) } @@ -1118,24 +1120,24 @@ function shortClassSpecifierValue (val) { const enuArr = [] if (enuLis && (enuLis.length > 0)) { const enumLite = enuLis - for (var i = 0; i < enumLite.length; i++) { - var obj = enumLite[i] + for (let i = 0; i < enumLite.length; i++) { + const obj = enumLite[i] const ident = obj.identifier const desCri = obj.comment const desObj = desCri ? this.description(desCri) : undefined enuArr.push(Object.assign( - {'identifier': ident}, - {'description': !ut.isEmptyObject(desObj) ? desObj : undefined} + { identifier: ident }, + { description: !ut.isEmptyObject(desObj) ? desObj : undefined } )) } } return Object.assign( - {'base_prefix': pre}, - {'name': name ? this.nameString(name) : undefined}, - {'array_subscripts': arrSub ? this.arraySubscripts(arrSub) : undefined}, - {'class_modification': claMod ? this.classModification(claMod) : undefined}, - {'description': !ut.isEmptyObject(desObjEx) ? desObjEx : undefined}, - {'enum_list': (enuArr.length > 0) ? enuArr : undefined} + { base_prefix: pre }, + { name: name ? this.nameString(name) : undefined }, + { array_subscripts: arrSub ? this.arraySubscripts(arrSub) : undefined }, + { class_modification: claMod ? this.classModification(claMod) : undefined }, + { description: !ut.isEmptyObject(desObjEx) ? desObjEx : undefined }, + { enum_list: (enuArr.length > 0) ? enuArr : undefined } ) } @@ -1147,20 +1149,20 @@ function shortClassSpecifierValue (val) { function derClassSpecifier (derClaSpe) { const ident = derClaSpe.identifier const val = derClaSpe.der_class_specifier_value - var typSpe, typIden, typDes, valObj + let typSpe, typIden, typDes, valObj if (val) { typSpe = val.type_specifier typIden = val.identifiers typDes = val.comment ? this.description(val.comment) : undefined valObj = Object.assign( - {'type_specifier': typSpe}, - {'identifier': typIden}, - {'description': !ut.isEmptyObject(typDes) ? typDes : undefined} + { type_specifier: typSpe }, + { identifier: typIden }, + { description: !ut.isEmptyObject(typDes) ? typDes : undefined } ) } return Object.assign( - {'identifier': ident}, - {'value': val ? valObj : undefined} + { identifier: ident }, + { value: val ? valObj : undefined } ) } @@ -1181,7 +1183,7 @@ function simpleExpression (simExp, outStr = false) { const logExp3 = simExp.logical_expression3 ? (':' + this.logicalExpression(simExp.logical_expression3)) : '' - var funCal, forLoo, logExp, ifExp + let funCal, forLoo, logExp, ifExp if (!(logExp2 || logExp3)) { const pri = this.checkPri(simExp.logical_expression1) if (pri) { @@ -1193,10 +1195,10 @@ function simpleExpression (simExp, outStr = false) { } if ((funCal || forLoo || logExp || ifExp) && !outStr) { return Object.assign( - {'function_call': funCal}, - {'for_loop': forLoo}, - {'logical_expression': logExp}, - {'if_expression': ifExp} + { function_call: funCal }, + { for_loop: forLoo }, + { logical_expression: logExp }, + { if_expression: ifExp } ) } else { return (logExp1 + logExp2 + logExp3) @@ -1212,28 +1214,28 @@ function ifExpressionObj (pri) { const outExpLis = pri.output_expression_list if (!outExpLis) { return undefined } const expLis = outExpLis.output_expressions - var expArray = [] - for (var i = 0; i < expLis.length; i++) { - var ithExp = expLis[i] + const expArray = [] + for (let i = 0; i < expLis.length; i++) { + const ithExp = expLis[i] if (ithExp.simple_expression) { return undefined } - var ifExp = ithExp.if_expression - var ifEls = ifExp.if_elseif - var ifElsArray = [] - for (var j = 0; j < ifEls.length; j++) { - var jthEle = ifEls[j] - var condition = this.expressionString(jthEle.condition) - var then = this.expressionString(jthEle.then) + const ifExp = ithExp.if_expression + const ifEls = ifExp.if_elseif + const ifElsArray = [] + for (let j = 0; j < ifEls.length; j++) { + const jthEle = ifEls[j] + const condition = this.expressionString(jthEle.condition) + const then = this.expressionString(jthEle.then) ifElsArray.push(Object.assign( - {'condition': condition}, - {'then': then} + { condition }, + { then } )) } - var elsExp = ifExp.else_expression + const elsExp = ifExp.else_expression expArray.push(Object.assign( - {'if_elseif': ifElsArray}, - {'else': this.expressionString(elsExp)} + { if_elseif: ifElsArray }, + { else: this.expressionString(elsExp) } )) } return (expArray.length > 0 ? expArray : undefined) @@ -1250,7 +1252,7 @@ function forLoopObj (pri) { const forInd = funArgs.for_indices if (!forInd) { return undefined } const exp = this.funArgObj(funArg) - const forObj = Object.assign({'expression': exp}, this.forIndObj(forInd)) + const forObj = Object.assign({ expression: exp }, this.forIndObj(forInd)) return forObj } @@ -1261,23 +1263,23 @@ function forLoopObj (pri) { function logicalExpressionObj (logExp) { const termList = logExp.logical_term_list const orArray = [] - for (var i = 0; i < termList.length; i++) { - var ithTerm = termList[i] - var factorList = ithTerm.logical_factor_list + for (let i = 0; i < termList.length; i++) { + const ithTerm = termList[i] + const factorList = ithTerm.logical_factor_list const andArray = [] - for (var j = 0; j < factorList.length; j++) { - var jthFactor = factorList[j] - var jthFactorObj = this.logicalFactorObj(jthFactor) + for (let j = 0; j < factorList.length; j++) { + const jthFactor = factorList[j] + const jthFactorObj = this.logicalFactorObj(jthFactor) if (jthFactorObj) { andArray.push(jthFactorObj) } } if (andArray.length > 0) { - orArray.push(Object.assign({'logical_and': andArray})) + orArray.push(Object.assign({ logical_and: andArray })) } } if (orArray.length > 0) { - return Object.assign({'logical_or': orArray}) + return Object.assign({ logical_or: orArray }) } } @@ -1293,12 +1295,12 @@ function logicalFactorObj (fac) { if (!relOp) { return undefined } const ariExp2 = this.arithmeticExpression(rel.arithmetic_expression2) const ariExpArray = [] - ariExpArray.push(Object.assign({'name': ariExp1})) - ariExpArray.push(Object.assign({'name': ariExp2})) + ariExpArray.push(Object.assign({ name: ariExp1 })) + ariExpArray.push(Object.assign({ name: ariExp2 })) return Object.assign( - {'not': notOpe || undefined}, - {'arithmetic_expressions': ariExpArray}, - {'relation_operator': relOp} + { not: notOpe || undefined }, + { arithmetic_expressions: ariExpArray }, + { relation_operator: relOp } ) } @@ -1364,8 +1366,8 @@ function functionCallObj (pri) { return undefined } return Object.assign( - {'name': this.nameString(name)}, - {'arguments': funCalArg ? this.funCalArgObj(funCalArg) : undefined} + { name: this.nameString(name) }, + { arguments: funCalArg ? this.funCalArgObj(funCalArg) : undefined } ) } } @@ -1375,7 +1377,7 @@ function functionCallObj (pri) { * @param funCalArg function_call_args object */ function funCalArgObj (funCalArg) { - var funArg + let funArg if (funCalArg) { funArg = funCalArg.function_arguments } @@ -1394,17 +1396,17 @@ function funArgsObj (argObj) { const funArgs = argObj.function_arguments const argArray = [] if (namedArg) { - argArray.push(Object.assign({'name': this.namedArgsString(namedArg)})) + argArray.push(Object.assign({ name: this.namedArgsString(namedArg) })) } else { if (funArgs) { - argArray.push(Object.assign({'name': this.funArgString(funArg)})) - argArray.push(Object.assign({'name': this.funArgsString(funArgs)})) + argArray.push(Object.assign({ name: this.funArgString(funArg) })) + argArray.push(Object.assign({ name: this.funArgsString(funArgs) })) } else if (forInd) { const exp = this.funArgObj(funArg) - const forObj = Object.assign({'expression': exp}, this.forIndObj(forInd)) + const forObj = Object.assign({ expression: exp }, this.forIndObj(forInd)) argArray.push(forObj) } else { - argArray.push(Object.assign({'name': this.funArgString(funArg)})) + argArray.push(Object.assign({ name: this.funArgString(funArg) })) } } return argArray @@ -1417,14 +1419,14 @@ function funArgsObj (argObj) { function forIndObj (forIndObject) { const ind = forIndObject.indices const indices = [] - for (var i = 0; i < ind.length; i++) { + for (let i = 0; i < ind.length; i++) { const ithInd = ind[i] const ident = ithInd.identifier const exp = ithInd.expression const expString = exp ? this.expressionString(exp, false) : undefined - indices.push(Object.assign({'name': ident}, {'range': expString})) + indices.push(Object.assign({ name: ident }, { range: expString })) } - return Object.assign({'for_loop': indices}) + return Object.assign({ for_loop: indices }) } /** Get the for function argument object @@ -1448,10 +1450,10 @@ function funArgObj (funArg) { function logicalExpression (logExp) { const termList = logExp.logical_term_list const termArray = [] - for (var i = 0; i < termList.length; i++) { + for (let i = 0; i < termList.length; i++) { const factorList = termList[i].logical_factor_list const factor = [] - for (var j = 0; j < factorList.length; j++) { + for (let j = 0; j < factorList.length; j++) { factor.push(this.logicalFactor(factorList[j])) } termArray.push(factor.join(' and ')) @@ -1493,7 +1495,7 @@ function relation (rel) { function arithmeticExpression (ariExp) { const termList = ariExp.arithmetic_term_list const termArray = [] - for (var i = 0; i < termList.length; i++) { + for (let i = 0; i < termList.length; i++) { const addOp = termList[i].add_op const term = this.termString(termList[i].term) const termEle = addOp ? (addOp + term) : term @@ -1510,10 +1512,10 @@ function arithmeticExpression (ariExp) { function termString (ter) { const factor = ter.factors const mulOps = ter.mul_ops - var temp + let temp if (mulOps) { temp = this.factorString(factor[0]) - for (var i = 0; i < mulOps.length; i++) { + for (let i = 0; i < mulOps.length; i++) { temp = temp + mulOps[i] + this.factorString(factor[i + 1]) } } @@ -1586,7 +1588,7 @@ function funCalPriString (funCalPri) { const name = funCalPri.function_name const der = funCalPri.der const initial = funCalPri.initial - var pre + let pre if (name) { pre = this.nameString(name) } else if (der) { @@ -1604,8 +1606,8 @@ function funCalPriString (funCalPri) { */ function nameString (name) { const nameList = name.name_parts - var nameString = '' - for (var i = 0; i < nameList.length; i++) { + let nameString = '' + for (let i = 0; i < nameList.length; i++) { const dotOp = nameList[i].dot_op const dot = dotOp ? '.' : '' if (nameList[i].identifier !== undefined && nameList[i].identifier !== null) { @@ -1633,8 +1635,8 @@ function funCalArgString (funCalArg) { */ function comRefString (comRef) { const comRefPar = comRef.component_reference_parts - var comString = '' - for (var i = 0; i < comRefPar.length; i++) { + let comString = '' + for (let i = 0; i < comRefPar.length; i++) { const ithCom = comRefPar[i] const dotOp = ithCom.dot_op ? '.' : '' const ident = ithCom.identifier @@ -1654,7 +1656,7 @@ function comRefString (comRef) { function arrSubString (arrSub) { const sub = arrSub.subscripts const subEle = [] - for (var i = 0; i < sub.length; i++) { + for (let i = 0; i < sub.length; i++) { const ithSub = sub[i] const exp = ithSub.expression const colOp = ithSub.colon_op @@ -1697,10 +1699,10 @@ function funArgString (funArgObj) { const namArgs = funArgObj.named_arguments const expStr = funArgObj.expression if (funName) { - var namedArgString = namArgs ? ('(' + this.namedArgsString(namArgs) + ')') : '()' + const namedArgString = namArgs ? ('(' + this.namedArgsString(namArgs) + ')') : '()' return 'function ' + this.nameString(funName) + namedArgString } else { - var funcArg = this.expressionString(expStr, true) + const funcArg = this.expressionString(expStr, true) return funcArg } } @@ -1711,12 +1713,12 @@ function funArgString (funArgObj) { * @param namArgs named_arguments object */ function namedArgsString (namArgs) { - var namArgsArr = this.namedArgsArray(namArgs) + const namArgsArr = this.namedArgsArray(namArgs) if (namArgsArr.length > 1) { - var namArr = [] - for (var i = 0; i < namArgsArr.length; i++) { - var ident = namArgsArr[i].identifier - var value = this.funArgString(namArgsArr[i].value) + const namArr = [] + for (let i = 0; i < namArgsArr.length; i++) { + const ident = namArgsArr[i].identifier + const value = this.funArgString(namArgsArr[i].value) namArr.push(ident + '=' + value) } return namArr.join(',') @@ -1731,11 +1733,11 @@ function namedArgsString (namArgs) { * @param namArgs named_arguments object */ function namedArgsArray (namArgs) { - var out = [] + const out = [] out.push(namArgs.named_argument) - var namArgsInt = namArgs.named_arguments + const namArgsInt = namArgs.named_arguments if (namArgsInt) { - var intArr = this.namedArgsArray(namArgsInt) + const intArr = this.namedArgsArray(namArgsInt) Array.prototype.push.apply(out, intArr) } return out @@ -1750,7 +1752,7 @@ function outExpLisString (outExpLis) { const expList = outExpLis.output_expressions const arr = [] try { - for (var i = 0; i < expList.length; i++) { + for (let i = 0; i < expList.length; i++) { arr.push(this.expressionString(expList[i])) } return arr.join(',') @@ -1766,7 +1768,7 @@ function outExpLisString (outExpLis) { */ function expLisString (expLists) { const expString = [] - for (var i = 0; i < expLists.length; i++) { + for (let i = 0; i < expLists.length; i++) { const expList = expLists[i] expString.push(this.expressionListString(expList)) } @@ -1782,7 +1784,7 @@ function expressionListString (expList) { const ithListEle = expList.expressions const arr = [] if (ithListEle) { - for (var j = 0; j < ithListEle.length; j++) { + for (let j = 0; j < ithListEle.length; j++) { arr.push(this.expressionString(ithListEle[j])) } const ithListString = arr.join(',') @@ -1799,7 +1801,7 @@ function expressionListString (expList) { function forIndString (forInd) { const ind = forInd.indices const indEle = [] - for (var i = 0; i < ind.length; i++) { + for (let i = 0; i < ind.length; i++) { const ithInd = ind[i] const ident = ithInd.identifier const exp = ithInd.expression @@ -1826,20 +1828,20 @@ function expressionString (exp, outStr = false) { * @param ifExp if_expression object */ function ifExpString (ifExp) { - var ifElse = '' + let ifElse = '' if (ifExp.if_elseif !== undefined) { ifElse = ifExp.if_elseif } - var elsExp = '' + let elsExp = '' if (ifExp.else_expression !== undefined) { elsExp = ifExp.else_expression } if (ifElse === '' || elsExp === '') { throw new Error('if_expression object must contain at least one condition, then and else expression') } - var ifExpString = 'if ' + this.expressionString(ifElse[0].condition) + ' then ' + this.expressionString(ifElse[0].then) + let ifExpString = 'if ' + this.expressionString(ifElse[0].condition) + ' then ' + this.expressionString(ifElse[0].then) if (ifElse.length > 1) { - for (var i = 1; i < ifElse.length; i++) { + for (let i = 1; i < ifElse.length; i++) { const ithEle = ifElse[i] const elseifString = ' elseif ' + this.expressionString(ithEle.condition) + ' then ' + this.expressionString(ithEle.then) ifExpString = ifExpString + elseifString diff --git a/lib/modelicaToJSON.js b/lib/modelicaToJSON.js index f72d9769..f82b04c3 100644 --- a/lib/modelicaToJSON.js +++ b/lib/modelicaToJSON.js @@ -2,7 +2,7 @@ const pa = require('path') const pro = require('child_process') const fs = require('bluebird').promisifyAll(require('fs')) -var logger = require('winston') +const logger = require('winston') const ut = require('../lib/util.js') /** Parses the modelica file and returns a promise. @@ -19,7 +19,7 @@ function toJSON (modelicaFile) { throw new Error(msg) } if (!fs.existsSync(modelicaFile)) { - var msg = "Modelica file '" + modelicaFile + "' not found. You may need to set the MODELICAPATH environment variable." + const msg = "Modelica file '" + modelicaFile + "' not found. You may need to set the MODELICAPATH environment variable." logger.error(msg) throw new Error(msg) } @@ -28,7 +28,7 @@ function toJSON (modelicaFile) { // call synchronously const jr = pro.spawnSync('java', - ['-Xmx2048m', '-Xms512m', '-jar', parser, '--mo', modelicaFile], {maxBuffer: 1024 * 1024 * 100}) + ['-Xmx2048m', '-Xms512m', '-jar', parser, '--mo', modelicaFile], { maxBuffer: 1024 * 1024 * 100 }) if (jr.stderr.length > 0) { const msg = '*** Error when parsing ' + modelicaFile + ': "' + jr.stderr + '".' logger.error(msg) @@ -36,12 +36,12 @@ function toJSON (modelicaFile) { } else { try { logger.debug('Parsing output to json.') - var res = JSON.parse(jr.stdout) + const res = JSON.parse(jr.stdout) // Add the modelica file name, as this is needed to look up its instances if (!res) throw new Error('Parser returned null instead of json structure. Did you install Java properly?') Object.assign(res, - { 'modelicaFile': ut.relativePath(modelicaFile) }, - { 'fullMoFilePath': modelicaFile }) + { modelicaFile: ut.relativePath(modelicaFile) }, + { fullMoFilePath: modelicaFile }) return res } catch (error) { const em = error + '\n JSON structure is \n' + jr.stdout diff --git a/lib/objectExtractor.js b/lib/objectExtractor.js index e5674da8..317a674e 100644 --- a/lib/objectExtractor.js +++ b/lib/objectExtractor.js @@ -39,23 +39,23 @@ function updateRequiredReferences (requiredReferences, newRequiredReferences) { if (newRequiredReferences !== null && newRequiredReferences !== undefined) { if ('extends_clause' in newRequiredReferences) { if ('extends_clause' in requiredReferences) { - requiredReferences['extends_clause'] = requiredReferences['extends_clause'].concat(newRequiredReferences['extends_clause']) + requiredReferences.extends_clause = requiredReferences.extends_clause.concat(newRequiredReferences.extends_clause) } else { - requiredReferences['extends_clause'] = newRequiredReferences['extends_clause'].concat([]) + requiredReferences.extends_clause = newRequiredReferences.extends_clause.concat([]) } } if ('import_clause' in newRequiredReferences) { if ('import_clause' in requiredReferences) { - requiredReferences['import_clause'] = requiredReferences['import_clause'].concat(newRequiredReferences['import_clause']) + requiredReferences.import_clause = requiredReferences.import_clause.concat(newRequiredReferences.import_clause) } else { - requiredReferences['import_clause'] = newRequiredReferences['import_clause'].concat([]) + requiredReferences.import_clause = newRequiredReferences.import_clause.concat([]) } } if ('connections' in newRequiredReferences) { if ('connections' in requiredReferences) { - requiredReferences['connections'] = updateConnections(requiredReferences.connections, newRequiredReferences.connections) + requiredReferences.connections = updateConnections(requiredReferences.connections, newRequiredReferences.connections) } else { - requiredReferences['connections'] = Object.assign({}, newRequiredReferences.connections) + requiredReferences.connections = Object.assign({}, newRequiredReferences.connections) } } } @@ -64,7 +64,7 @@ function updateRequiredReferences (requiredReferences, newRequiredReferences) { function updateConnections (connections, newConnections) { if (newConnections !== null && newConnections !== undefined) { - for (var element in newConnections) { + for (const element in newConnections) { if (!(element in connections)) { connections[element] = newConnections[element].concat([]) } else { @@ -80,8 +80,8 @@ function updateConnections (connections, newConnections) { } function extractAllObjects (jsonOutput, within = null) { - var instances = {} - var requiredReferences = {} + let instances = {} + let requiredReferences = {} if (within === null) { if (jsonOutput.within === null || jsonOutput.within === undefined) { within = null @@ -89,48 +89,48 @@ function extractAllObjects (jsonOutput, within = null) { within = jsonOutput.within } } - var fullMoFilePath = jsonOutput.fullMoFilePath + const fullMoFilePath = jsonOutput.fullMoFilePath - var classDefinitions = jsonOutput.class_definition + const classDefinitions = jsonOutput.class_definition for (let i = 0; i < classDefinitions.length; i++) { - var longClassSpecifier = null - var shortClassSpecifier = null - var derClassSpecifier = null - var identifier = null + let longClassSpecifier = null + let shortClassSpecifier = null + let derClassSpecifier = null + let identifier = null - var classDefinition = classDefinitions[i] - var classSpecifier = classDefinition.class_specifier + const classDefinition = classDefinitions[i] + const classSpecifier = classDefinition.class_specifier if ('long_class_specifier' in classSpecifier) { longClassSpecifier = classSpecifier.long_class_specifier - var newAllObjects = extractFromLongClassSpecifier(longClassSpecifier, fullMoFilePath, within) + const newAllObjects = extractFromLongClassSpecifier(longClassSpecifier, fullMoFilePath, within) instances = Object.assign({}, instances, newAllObjects.instances) requiredReferences = updateRequiredReferences(requiredReferences, newAllObjects.requiredReferences) } if ('short_class_specifier' in classSpecifier) { shortClassSpecifier = classSpecifier.short_class_specifier identifier = shortClassSpecifier.identifier - var shortClassSpeciiferValue = shortClassSpecifier.value - var name = null + const shortClassSpeciiferValue = shortClassSpecifier.value + let name = null if ('name' in shortClassSpeciiferValue && shortClassSpeciiferValue.name !== undefined) { name = shortClassSpeciiferValue.name instances[identifier] = { - 'type': 'short_class_specifier', - 'type_specifier': name, - 'short_class_specifier_value': shortClassSpeciiferValue, - 'within': within, - 'fullMoFilePath': fullMoFilePath + type: 'short_class_specifier', + type_specifier: name, + short_class_specifier_value: shortClassSpeciiferValue, + within, + fullMoFilePath } } else if ('enum_list' in shortClassSpeciiferValue && shortClassSpeciiferValue.enum_list !== undefined) { - var enumList = shortClassSpeciiferValue.enum_list + const enumList = shortClassSpeciiferValue.enum_list for (let j = 0; j < enumList.length; j++) { - var enumListIdentifier = enumList[j].identifier + const enumListIdentifier = enumList[j].identifier instances[enumListIdentifier] = { - 'type': 'enumeration', - 'enumeration_literal': enumList[j], - 'within': within, - 'fullMoFilePath': fullMoFilePath + type: 'enumeration', + enumeration_literal: enumList[j], + within, + fullMoFilePath } } } @@ -138,51 +138,51 @@ function extractAllObjects (jsonOutput, within = null) { if ('der_class_specifier' in classSpecifier && classSpecifier.der_class_specifier !== undefined) { derClassSpecifier = classSpecifier.der_class_specifier identifier = derClassSpecifier.identifier - var derClassSpeciiferValue = derClassSpecifier.value + const derClassSpeciiferValue = derClassSpecifier.value instances[identifier] = { - 'type': 'der_class_specifier', - 'value': derClassSpeciiferValue, - 'within': within, - 'fullMoFilePath': fullMoFilePath + type: 'der_class_specifier', + value: derClassSpeciiferValue, + within, + fullMoFilePath } } } - var allObjects = {'instances': instances, 'requiredReferences': requiredReferences} + const allObjects = { instances, requiredReferences } return allObjects } function extractFromLongClassSpecifier (longClassSpecifier, fullMoFilePath, within = null) { - var instances = {} - var requiredReferences = {} - var identifier = null - var composition = null - var compositionInstances = {} - var compositionRequiredReferences = {} - var dictIdentifier = {} - dictIdentifier['within'] = within - dictIdentifier['fullMoFilePath'] = fullMoFilePath + let instances = {} + let requiredReferences = {} + let identifier = null + let composition = null + let compositionInstances = {} + let compositionRequiredReferences = {} + const dictIdentifier = {} + dictIdentifier.within = within + dictIdentifier.fullMoFilePath = fullMoFilePath if ('identifier' in longClassSpecifier) { identifier = longClassSpecifier.identifier - dictIdentifier['type'] = 'long_class_specifier' + dictIdentifier.type = 'long_class_specifier' } if (longClassSpecifier.extends !== null && longClassSpecifier.extends !== undefined) { - dictIdentifier['extends'] = true + dictIdentifier.extends = true if ('class_modification' in longClassSpecifier && longClassSpecifier.class_modification !== undefined) { - // classModification = longClassSpecifier.classModification - // TODO: handle later + // classModification = longClassSpecifier.classModification + // TODO: handle later } } if ('composition' in longClassSpecifier && longClassSpecifier.composition !== undefined) { composition = longClassSpecifier.composition - var newAllObjects = extractFromComposition(composition, identifier, fullMoFilePath, within) + const newAllObjects = extractFromComposition(composition, identifier, fullMoFilePath, within) compositionInstances = Object.assign({}, compositionInstances, newAllObjects.instances) compositionRequiredReferences = updateRequiredReferences(compositionRequiredReferences, newAllObjects.requiredReferences) if ('annotation' in composition && composition.annotation !== undefined) { - dictIdentifier['annotation'] = composition.annotation - dictIdentifier['semantics'] = extractSemanticsFromAnnotations(composition.annotation, identifier) + dictIdentifier.annotation = composition.annotation + dictIdentifier.semantics = extractSemanticsFromAnnotations(composition.annotation, identifier) } } if (identifier !== null) { @@ -192,22 +192,22 @@ function extractFromLongClassSpecifier (longClassSpecifier, fullMoFilePath, with instances = Object.assign({}, instances, compositionInstances) } requiredReferences = updateRequiredReferences(requiredReferences, compositionRequiredReferences) - var allObjects = {'instances': instances, 'requiredReferences': requiredReferences} + const allObjects = { instances, requiredReferences } return allObjects } function extractFromComposition (composition, longClassSpecifierIdentifier, fullMoFilePath, within) { - var elementSections = null - var instances = {} - var requiredReferences = {} - var newAllObjects = null + let elementSections = null + let instances = {} + let requiredReferences = {} + let newAllObjects = null if (composition === null || composition === undefined) { - return {'instances': {}, 'requiredReferences': {}} + return { instances: {}, requiredReferences: {} } } if ('element_list' in composition && composition.element_list !== undefined) { - var elementList = composition.element_list + const elementList = composition.element_list newAllObjects = extractFromElementList(elementList, longClassSpecifierIdentifier, fullMoFilePath, within) instances = Object.assign({}, instances, newAllObjects.instances) requiredReferences = updateRequiredReferences(requiredReferences, newAllObjects.requiredReferences) @@ -216,23 +216,23 @@ function extractFromComposition (composition, longClassSpecifierIdentifier, full if ('element_sections' in composition && composition.element_sections !== undefined) { elementSections = composition.element_sections for (let i = 0; i < elementSections.length; i++) { - var elementSection = elementSections[i] + const elementSection = elementSections[i] if ('public_element_list' in elementSection && elementSection.public_element_list !== undefined) { - var publicElementList = elementSection.public_element_list + const publicElementList = elementSection.public_element_list newAllObjects = extractFromElementList(publicElementList, longClassSpecifierIdentifier, fullMoFilePath, within) instances = Object.assign({}, instances, newAllObjects.instances) requiredReferences = updateRequiredReferences(requiredReferences, newAllObjects.requiredReferences) } if ('protected_element_list' in elementSection && elementSection.protected_element_list !== undefined) { - var protectedElementList = elementSection.protected_element_list + const protectedElementList = elementSection.protected_element_list newAllObjects = extractFromElementList(protectedElementList, longClassSpecifierIdentifier, fullMoFilePath, within) instances = Object.assign({}, instances, newAllObjects.instances) requiredReferences = updateRequiredReferences(requiredReferences, newAllObjects.requiredReferences) } if ('equation_section' in elementSection && elementSection.equation_section !== undefined) { - var equationSection = elementSection.equation_section - var newConnections = extractConnectionsFromEquationSection(equationSection) - var newRequiredReferences = {'connections': newConnections} + const equationSection = elementSection.equation_section + const newConnections = extractConnectionsFromEquationSection(equationSection) + const newRequiredReferences = { connections: newConnections } requiredReferences = updateRequiredReferences(requiredReferences, newRequiredReferences) } } @@ -241,57 +241,57 @@ function extractFromComposition (composition, longClassSpecifierIdentifier, full if ('external_composition' in composition && composition.external_composition !== undefined) { // TODO: } - var allObjects = {'instances': instances, 'requiredReferences': requiredReferences} + const allObjects = { instances, requiredReferences } return allObjects } function extractFromElementList (elementList, longClassSpecifierIdentifier, fullMoFilePath, within) { - var instances = {} - var requiredReferences = {} + let instances = {} + let requiredReferences = {} for (let i = 0; i < elementList.length; i++) { - var element = elementList[i] + const element = elementList[i] if ('extends_clause' in element && element.extends_clause !== undefined) { - var extendsClause = element.extends_clause + const extendsClause = element.extends_clause if (longClassSpecifierIdentifier !== null) { - extendsClause['long_class_specifier_identifier'] = longClassSpecifierIdentifier - extendsClause['within'] = within + extendsClause.long_class_specifier_identifier = longClassSpecifierIdentifier + extendsClause.within = within } if ('extends_clause' in requiredReferences) { - requiredReferences['extends_clause'] = requiredReferences['extends_clause'].concat([extendsClause]) + requiredReferences.extends_clause = requiredReferences.extends_clause.concat([extendsClause]) } else { - requiredReferences['extends_clause'] = [extendsClause] + requiredReferences.extends_clause = [extendsClause] } } if ('import_clause' in element && element.import_clause !== undefined) { - var importClause = element.import_clause + const importClause = element.import_clause if (longClassSpecifierIdentifier !== null) { - importClause['long_class_specifier_identifier'] = longClassSpecifierIdentifier - importClause['within'] = within + importClause.long_class_specifier_identifier = longClassSpecifierIdentifier + importClause.within = within } if ('import_clause' in requiredReferences) { - requiredReferences['import_clause'] = requiredReferences['import_clause'].concat([importClause]) + requiredReferences.import_clause = requiredReferences.import_clause.concat([importClause]) } else { - requiredReferences['import_clause'] = [importClause] + requiredReferences.import_clause = [importClause] } } if ('class_definition' in element && element.class_definition !== undefined) { - var classDefinitionInstance = {} - var classSpecifier = element.class_definition.class_specifier - var classPrefixes = element.class_definition.class_prefixes - var identifier2 = null - var dict = { - 'within': within, - 'fullMoFilePath': fullMoFilePath, - 'classPrefixes': classPrefixes + const classDefinitionInstance = {} + const classSpecifier = element.class_definition.class_specifier + const classPrefixes = element.class_definition.class_prefixes + let identifier2 = null + const dict = { + within, + fullMoFilePath, + classPrefixes } if ('long_class_specifier' in classSpecifier) { - dict['type'] = 'long_class_specifier' + dict.type = 'long_class_specifier' identifier2 = classSpecifier.long_class_specifier.identifier - dict['annotation'] = classSpecifier.long_class_specifier.composition.annotation - dict['semantics'] = extractSemanticsFromAnnotations(dict.annotation, identifier2) + dict.annotation = classSpecifier.long_class_specifier.composition.annotation + dict.semantics = extractSemanticsFromAnnotations(dict.annotation, identifier2) classDefinitionInstance[identifier2] = dict } else if ('short_class_specifier' in classSpecifier) { @@ -303,20 +303,20 @@ function extractFromElementList (elementList, longClassSpecifierIdentifier, full requiredReferences = updateRequiredReferences(requiredReferences, {}) } if ('component_clause' in element && element.component_clause !== undefined) { - var componentClause = element.component_clause - var typePrefix = null - var typeSpecifier = null - var arraySubscripts = null - var componentList = componentClause.component_list + const componentClause = element.component_clause + let typePrefix = null + let typeSpecifier = null + let arraySubscripts = null + const componentList = componentClause.component_list typePrefix = componentClause.type_prefix typeSpecifier = componentClause.type_specifier arraySubscripts = componentClause.array_subscripts for (let i = 0; i < componentList.length; i++) { - var singleComponentList = componentList[i] - var identifier = singleComponentList.declaration.identifier - var annotation = null + const singleComponentList = componentList[i] + const identifier = singleComponentList.declaration.identifier + let annotation = null if ('description' in singleComponentList && singleComponentList.description !== undefined) { if ('annotation' in singleComponentList.description && singleComponentList.description.annotation !== undefined) { @@ -324,38 +324,38 @@ function extractFromElementList (elementList, longClassSpecifierIdentifier, full } } instances[identifier] = { - 'type_prefix': typePrefix, - 'type_specifier': typeSpecifier, - 'array_subscripts': arraySubscripts, - 'type': 'element', - 'long_class_specifier_identifier': longClassSpecifierIdentifier, - 'single_component_list': singleComponentList, - 'annotation': annotation, - 'semantics': extractSemanticsFromAnnotations(annotation, identifier), - 'within': within, - 'fullMoFilePath': fullMoFilePath + type_prefix: typePrefix, + type_specifier: typeSpecifier, + array_subscripts: arraySubscripts, + type: 'element', + long_class_specifier_identifier: longClassSpecifierIdentifier, + single_component_list: singleComponentList, + annotation, + semantics: extractSemanticsFromAnnotations(annotation, identifier), + within, + fullMoFilePath } } } } - var allObjects = {'instances': instances, 'requiredReferences': requiredReferences} + const allObjects = { instances, requiredReferences } return allObjects } function extractConnectionsFromEquationSection (equationSection) { - var connections = {} - var equations = null + const connections = {} + let equations = null if ('equation' in equationSection && equationSection.equation !== undefined) { equations = equationSection.equation for (let i = 0; i < equations.length; i++) { - var equation = equations[i] - var connectClause = null + const equation = equations[i] + let connectClause = null if ('connect_clause' in equation && equation.connect_clause !== undefined) { connectClause = equation.connect_clause - var from = parseComponentReference(connectClause.from) - var to = parseComponentReference(connectClause.to) + const from = parseComponentReference(connectClause.from) + const to = parseComponentReference(connectClause.to) if (from in connections) { if (!(to in connections[from])) { connections[from] = connections[from].concat([to]) @@ -370,7 +370,7 @@ function extractConnectionsFromEquationSection (equationSection) { } function parseComponentReference (reference) { - var name = '' + let name = '' reference.forEach(namePart => { if (namePart.dot_op === true) { name = name + '.' @@ -393,25 +393,25 @@ function parseArraySubscripts (arraySubscripts) { if (arraySubscripts.length === 0) { return '' } - // TODO: fix better + // TODO: fix better return '[' + arraySubscripts[0].expression.simple_expression + ']' } function extractSemanticsFromAnnotations (annotation, instanceIdentifier) { - var semantics = {} + const semantics = {} if (annotation !== null && annotation !== undefined) { annotation.forEach(singleAnnotation => { - var annotationName = singleAnnotation.element_modification_or_replaceable.element_modification.name + const annotationName = singleAnnotation.element_modification_or_replaceable.element_modification.name if (annotationName === '__cdl' || annotationName === '__Buildings') { - var classModifications = singleAnnotation.element_modification_or_replaceable.element_modification.modification.class_modification + const classModifications = singleAnnotation.element_modification_or_replaceable.element_modification.modification.class_modification classModifications.forEach(classModification => { - var keyName = classModification.element_modification_or_replaceable.element_modification.name + const keyName = classModification.element_modification_or_replaceable.element_modification.name if (keyName === 'semantic') { - var semanticClassModifications = classModification.element_modification_or_replaceable.element_modification.modification.class_modification + const semanticClassModifications = classModification.element_modification_or_replaceable.element_modification.modification.class_modification semanticClassModifications.forEach(semanticClassModification => { - var semanticLanguageKey = semanticClassModification.element_modification_or_replaceable.element_modification.name - var semanticLanguage = semanticClassModification.element_modification_or_replaceable.element_modification.modification.expression.simple_expression - var semanticLanguageContent = semanticClassModification.element_modification_or_replaceable.element_modification.description_string + const semanticLanguageKey = semanticClassModification.element_modification_or_replaceable.element_modification.name + let semanticLanguage = semanticClassModification.element_modification_or_replaceable.element_modification.modification.expression.simple_expression + const semanticLanguageContent = semanticClassModification.element_modification_or_replaceable.element_modification.description_string semanticLanguage = semanticLanguage.split('"')[1] // semanticLanguageContent = semanticLanguageContent.replaceAll('', instanceIdentifier) if (semanticLanguageKey === 'metadataLanguageDefinition' || semanticLanguageKey === 'naturalLanguageDefinition') { diff --git a/lib/parser.js b/lib/parser.js index 4dc565f2..f0431f01 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -1,7 +1,7 @@ const jq = require('../lib/jsonquery.js') const mj = require('../lib/modelicaToJSON.js') const ut = require('../lib/util.js') -var logger = require('winston') +const logger = require('winston') const fs = require('bluebird').promisifyAll(require('fs')) const oe = require('./objectExtractor.js') @@ -20,31 +20,31 @@ const storedDefiniton = require('../json2mo/storedDefiniton') */ function getJsons (moFiles, parseMode, outputFormat, directory, prettyPrint) { logger.debug('Entered parser.getJsons.') - var jsonData = [] - var outDir = directory + const jsonData = [] + let outDir = directory if (directory === 'current') { outDir = process.cwd() } if (outputFormat === 'raw-json') { moFiles.forEach(function (obj) { // find the output file path - var outputFileName = ut.getOutputFile(obj, 'raw-json', outDir) + const outputFileName = ut.getOutputFile(obj, 'raw-json', outDir) // find the modelica file checksum - var resChecksum = ut.getMoChecksum(obj) + const resChecksum = ut.getMoChecksum(obj) // check if the file should be parsed - var needParsed = ut.checkIfParse(outputFileName, resChecksum, obj) + const needParsed = ut.checkIfParse(outputFileName, resChecksum, obj) if (needParsed) { - var rawJson = getRawJson(obj, outputFormat) - Object.assign(rawJson, {'checksum': resChecksum}) - var out = (prettyPrint === 'true') ? JSON.stringify(rawJson, null, 2) : JSON.stringify(rawJson) + const rawJson = getRawJson(obj, outputFormat) + Object.assign(rawJson, { checksum: resChecksum }) + const out = (prettyPrint === 'true') ? JSON.stringify(rawJson, null, 2) : JSON.stringify(rawJson) ut.writeFile(outputFileName, out) } }) } else { const tempJsonDir = ut.createTempDir('json') - var parsedFile = [] - for (var i = 0; i < moFiles.length; i++) { - var fileList = getSimpleJson(moFiles[i], parseMode, tempJsonDir, parsedFile, outDir, prettyPrint, outputFormat) + const parsedFile = [] + for (let i = 0; i < moFiles.length; i++) { + const fileList = getSimpleJson(moFiles[i], parseMode, tempJsonDir, parsedFile, outDir, prettyPrint, outputFormat) parsedFile.push(fileList) } ut.copyFolderSync(tempJsonDir, outDir) @@ -62,7 +62,7 @@ function getJsons (moFiles, parseMode, outputFormat, directory, prettyPrint) { function getRawJson (moFile, outputFormat) { const rawJson = mj.toJSON(moFile) if (outputFormat === 'raw-json') { - delete rawJson['fullMoFilePath'] + delete rawJson.fullMoFilePath } return rawJson } @@ -79,35 +79,35 @@ function getRawJson (moFile, outputFormat) { * @param outputFormat output format */ function getSimpleJson (moFile, parseMode, tempDir, parsedFile, outDir, prettyPrint, outputFormat) { - var outputFileName = ut.getOutputFile(moFile, 'json', outDir) + const outputFileName = ut.getOutputFile(moFile, 'json', outDir) // find the modelica file checksum - var moChecksum = ut.getMoChecksum(moFile) + const moChecksum = ut.getMoChecksum(moFile) // check if the file should be parsed - var needParsed = ut.checkIfParse(outputFileName, moChecksum, moFile) + const needParsed = ut.checkIfParse(outputFileName, moChecksum, moFile) // if the moFile has been parsed and the original moFile has no change if (!needParsed || parsedFile.includes(moFile)) { if (outputFormat === 'semantic') { - var jsonOp = JSON.parse(fs.readFileSync(outputFileName, 'utf8')) + const jsonOp = JSON.parse(fs.readFileSync(outputFileName, 'utf8')) generateAllObjectsJson(jsonOp, moFile, tempDir, prettyPrint) } return null } // get the raw-json output, this process will add relative and full modelica file path to the json output - var rawJson = getRawJson(moFile, 'json') - Object.assign(rawJson, {'checksum': moChecksum}) - var da = jq.simplifyModelicaJSON(rawJson, parseMode) + const rawJson = getRawJson(moFile, 'json') + Object.assign(rawJson, { checksum: moChecksum }) + const da = jq.simplifyModelicaJSON(rawJson, parseMode) // create temp directory to host the json output before adding the svg contents - var tempJsonPath = ut.getOutputFile(moFile, 'json', tempDir) + const tempJsonPath = ut.getOutputFile(moFile, 'json', tempDir) // write the simplified json output to file - var out = (prettyPrint === 'false') ? JSON.stringify(da) : JSON.stringify(da, null, 2) + const out = (prettyPrint === 'false') ? JSON.stringify(da) : JSON.stringify(da, null, 2) ut.writeFile(tempJsonPath, out) generateAllObjectsJson(da, moFile, tempDir, prettyPrint) // add the full path to the list - var parsedPath = da.fullMoFilePath + const parsedPath = da.fullMoFilePath parsedFile.push(parsedPath) // get list of mo files instantiated by current mo file - var instantiateClass = getInstantiatedFile(da, moFile) + const instantiateClass = getInstantiatedFile(da, moFile) if (instantiateClass.length > 0) { instantiateClass.forEach(function (obj) { if (!parsedFile.includes(obj)) { @@ -119,10 +119,10 @@ function getSimpleJson (moFile, parseMode, tempDir, parsedFile, outDir, prettyPr } function generateAllObjectsJson (jsonOutput, moFile, tempDir, prettyPrint) { - // instances and connections extraction - var allObjectsJson = oe.extractAllObjects(jsonOutput) - var allObjectsJsonPath = ut.getOutputFile(moFile, 'objects', tempDir) - var allObjectsJsonOut = (prettyPrint === 'false') ? JSON.stringify(allObjectsJson) : JSON.stringify(allObjectsJson, null, 2) + // instances and connections extraction + const allObjectsJson = oe.extractAllObjects(jsonOutput) + const allObjectsJsonPath = ut.getOutputFile(moFile, 'objects', tempDir) + const allObjectsJsonOut = (prettyPrint === 'false') ? JSON.stringify(allObjectsJson) : JSON.stringify(allObjectsJson, null, 2) ut.writeFile(allObjectsJsonPath, allObjectsJsonOut) } @@ -134,9 +134,9 @@ function generateAllObjectsJson (jsonOutput, moFile, tempDir, prettyPrint) { function getInstantiatedFile (data, moFile) { const within = data.within const claDef = data.class_definition - var insCla = [] + let insCla = [] claDef.forEach(function (obj) { - var claLis = instantiatedClass(within, obj, moFile) + const claLis = instantiatedClass(within, obj, moFile) if (claLis) { Array.prototype.push.apply(insCla, claLis) } @@ -186,7 +186,7 @@ function instantiatedClass (within, claDef, moFile) { // Find all instantiated classes file path const pubInstancesFile = pubInstances ? instanceFilePath(pubInstances, within, moFile) : [] const proInstancesFile = proInstances ? instanceFilePath(proInstances, within, moFile) : [] - var instantitatedFiles = pubInstancesFile.concat(proInstancesFile) + let instantitatedFiles = pubInstancesFile.concat(proInstancesFile) // iteratively remove duplicate elements if (instantitatedFiles.length > 0) { instantitatedFiles = instantitatedFiles.filter(function (item, pos) { return instantitatedFiles.indexOf(item) === pos }) @@ -206,7 +206,7 @@ function instantiatedClass (within, claDef, moFile) { * @param within value of within object */ function instanceFilePath (claObj, within, moFile) { - var fullList = [] + let fullList = [] const impCla = claObj.import_instance const extCla = claObj.extends_instance const conCla = claObj.constrained_instance @@ -263,11 +263,11 @@ function searchInstances (eleLis) { } }) return Object.assign( - {'import_instance': impEle}, - {'extends_instance': extEle}, - {'constrained_instance': conEle}, - {'component_instance': comEle}, - {'instance_in_modification': claModEle} + { import_instance: impEle }, + { extends_instance: extEle }, + { constrained_instance: conEle }, + { component_instance: comEle }, + { instance_in_modification: claModEle } ) } @@ -335,18 +335,18 @@ function elementReplaceable (eleRep) { * @returns string content of modelica file */ function convertToModelica (jsonFile, outDir, rawJson = false) { - var fileContent = fs.readFileSync(jsonFile, 'utf8') + const fileContent = fs.readFileSync(jsonFile, 'utf8') - var jsonOutput + let jsonOutput if (rawJson) { jsonOutput = JSON.parse(fileContent)[0] } else { jsonOutput = JSON.parse(fileContent) } - var moOutput = storedDefiniton.parse(jsonOutput, rawJson) + const moOutput = storedDefiniton.parse(jsonOutput, rawJson) // find the output file path - var outputFileName = ut.getOutputFile(jsonFile, 'modelica', outDir) + const outputFileName = ut.getOutputFile(jsonFile, 'modelica', outDir) ut.writeFile(outputFileName, moOutput) return moOutput } diff --git a/lib/semanticExtractor.js b/lib/semanticExtractor.js index cf99fc58..50068a6f 100644 --- a/lib/semanticExtractor.js +++ b/lib/semanticExtractor.js @@ -16,25 +16,25 @@ function getAllObjectsFilePathOfClass (className, moFile, outputDir) { } moFile = moFile.replaceAll('.', path.sep) - var modelicaPaths = ut.getMODELICAPATH() + const modelicaPaths = ut.getMODELICAPATH() for (let i = 0; i < modelicaPaths.length; i++) { - var modelicaPath = modelicaPaths[i] - var tempClassName = moFile + const modelicaPath = modelicaPaths[i] + let tempClassName = moFile if (tempClassName.startsWith(modelicaPath)) { tempClassName = tempClassName.split(modelicaPath)[1] } while (tempClassName !== undefined && tempClassName.length !== 0) { - var moFilePath = path.join(modelicaPath, tempClassName + '.mo') + const moFilePath = path.join(modelicaPath, tempClassName + '.mo') if (fs.existsSync(moFilePath)) { - var allObjectsFilePath = path.join(outputDir, 'objects', tempClassName + '.json') + const allObjectsFilePath = path.join(outputDir, 'objects', tempClassName + '.json') if (fs.existsSync(allObjectsFilePath)) { return allObjectsFilePath } } else { - // console.log("not exists ", moFilePath) + // console.log("not exists ", moFilePath) } - var tokens = tempClassName.split(path.sep) + const tokens = tempClassName.split(path.sep) tokens.pop() tempClassName = tokens.join(path.sep) } @@ -59,7 +59,7 @@ function updateInstancesKey (parent, instances) { if (instances === {} || instances === undefined || Object.keys(instances) === 0) { return instances } - var keys = Object.keys(instances) + const keys = Object.keys(instances) keys.forEach(instance => { instances[parent + '.' + instance] = instances[instance] delete instances[instance] @@ -76,11 +76,11 @@ function updateConnectionsIdentifiers (parent, connections) { if (connections === {} || connections === undefined || Object.keys(connections) === 0) { return connections } - var keys = Object.keys(connections) + const keys = Object.keys(connections) keys.forEach(connection => { - var toList = connections[connection] - var newConnection = parent + '.' + connection - var newToList = [] + const toList = connections[connection] + const newConnection = parent + '.' + connection + const newToList = [] toList.forEach(to => { newToList.push(parent + '.' + to) }) @@ -91,48 +91,48 @@ function updateConnectionsIdentifiers (parent, connections) { } function getRedeclarationsFromClassModification (classModifications) { - var redeclaredInstances = {} - var identifier + const redeclaredInstances = {} + let identifier classModifications.forEach(classModification => { - var elementRedeclaration = classModification.element_redeclaration + const elementRedeclaration = classModification.element_redeclaration if (elementRedeclaration !== undefined && elementRedeclaration !== null) { - var componentClause1 = elementRedeclaration.component_clause1 - var shortClassDefinition = elementRedeclaration.short_class_definition + const componentClause1 = elementRedeclaration.component_clause1 + const shortClassDefinition = elementRedeclaration.short_class_definition if (componentClause1 !== undefined && componentClause1 !== null) { // TODO: handle short class definition - var typePrefix = componentClause1.type_prefix - var typeSpecifier = componentClause1.type_specifier + const typePrefix = componentClause1.type_prefix + const typeSpecifier = componentClause1.type_specifier identifier = componentClause1.component_declaration1.declaration.identifier - var annotation = componentClause1.component_declaration1.declaration.annotation + const annotation = componentClause1.component_declaration1.declaration.annotation redeclaredInstances[identifier] = { - 'type_prefix': typePrefix, - 'type_specifier': typeSpecifier, - 'type': 'element', - 'annotation': annotation, - 'semantics': oe.extractSemanticsFromAnnotations(annotation, identifier) + type_prefix: typePrefix, + type_specifier: typeSpecifier, + type: 'element', + annotation, + semantics: oe.extractSemanticsFromAnnotations(annotation, identifier) } } if (shortClassDefinition !== undefined && shortClassDefinition !== null) { - var shortClassSpecifier = shortClassDefinition.short_class_specifier + const shortClassSpecifier = shortClassDefinition.short_class_specifier identifier = shortClassSpecifier.identifier - var shortClassSpecifierValue = shortClassSpecifier.value - var name = null + const shortClassSpecifierValue = shortClassSpecifier.value + let name = null if ('name' in shortClassSpecifierValue && shortClassSpecifierValue.name !== undefined) { name = shortClassSpecifierValue.name redeclaredInstances[identifier] = { - 'type': 'short_class_specifier', - 'type_specifier': name, - 'short_class_specifier_value': shortClassSpecifierValue + type: 'short_class_specifier', + type_specifier: name, + short_class_specifier_value: shortClassSpecifierValue } } else if ('enum_list' in shortClassSpecifierValue && shortClassSpecifierValue.enum_list !== undefined) { - var enumList = shortClassSpecifierValue.enum_list + const enumList = shortClassSpecifierValue.enum_list for (let j = 0; j < enumList.length; j++) { - var enumListIdentifier = enumList[j].identifier + const enumListIdentifier = enumList[j].identifier redeclaredInstances[enumListIdentifier] = { - 'type': 'enumeration', - 'enumeration_literal': enumList[j] + type: 'enumeration', + enumeration_literal: enumList[j] } } } @@ -143,23 +143,23 @@ function getRedeclarationsFromClassModification (classModifications) { } function updateAllObjectsWithExtendsImports (className, moFile, outputDir) { - var allObjectsPath = getAllObjectsFilePathOfClass(className, moFile, outputDir) + const allObjectsPath = getAllObjectsFilePathOfClass(className, moFile, outputDir) if (allObjectsPath === '') { // TODO: handle here - return {'instances': {}, 'requiredReferences': {}} + return { instances: {}, requiredReferences: {} } } - var allObjects = JSON.parse(fs.readFileSync(allObjectsPath, 'utf8')) - var instances = allObjects.instances + let allObjects = JSON.parse(fs.readFileSync(allObjectsPath, 'utf8')) + let instances = allObjects.instances - var allKeys = Object.keys(instances) + const allKeys = Object.keys(instances) allKeys.forEach(instanceIdentifier => { - var instanceInfo = instances[instanceIdentifier] + const instanceInfo = instances[instanceIdentifier] if (instanceInfo !== undefined && instanceInfo.type_specifier !== undefined) { // found instance of a class that has been defined within this mo clas if (instanceInfo.type_specifier in instances && instances[instanceInfo.type_specifier].type === 'long_class_specifier') { - var newClass = instanceInfo.type_specifier + const newClass = instanceInfo.type_specifier allKeys.forEach(instanceIdentifier2 => { if (instanceIdentifier2 in instances) { if (instances[instanceIdentifier2].long_class_specifier_identifier !== undefined && instances[instanceIdentifier2].long_class_specifier_identifier !== null) { @@ -173,37 +173,37 @@ function updateAllObjectsWithExtendsImports (className, moFile, outputDir) { } } }) - var requiredReferences = allObjects.requiredReferences + const requiredReferences = allObjects.requiredReferences - var connections = {} + let connections = {} if ('connections' in requiredReferences && requiredReferences.connections !== null && requiredReferences.connections !== undefined) { connections = requiredReferences.connections } - var importClauses = [] + let importClauses = [] if ('import_clause' in requiredReferences && requiredReferences.import_clause !== null && requiredReferences.import_clause !== undefined) { importClauses = importClauses.concat(requiredReferences.import_clause) } + let extendedInstances = {} + let extendedConnections = {} if ('extends_clause' in requiredReferences && requiredReferences.extends_clause !== undefined && requiredReferences.extends_clause !== null) { - var extendClauses = [] - var parsedExtendClauseNames = [] - var traversedExtendClauses = [] - var extendedInstances = {} - var extendedConnections = {} + let extendClauses = [] + const parsedExtendClauseNames = [] + const traversedExtendClauses = [] extendClauses = extendClauses.concat(requiredReferences.extends_clause) let i = 0 while (traversedExtendClauses.length !== extendClauses.length) { - var extendsClause = extendClauses[i] - var extendedClassName = extendsClause.name - var extendedClassModification = extendsClause.class_modification + const extendsClause = extendClauses[i] + const extendedClassName = extendsClause.name + const extendedClassModification = extendsClause.class_modification // TODO: handle annotations // var extendedAnnotation = extendClause.annotation parsedExtendClauseNames.push(extendedClassName) - var extendedJsonFilePath = getAllObjectsFilePathOfClass(extendedClassName, null, outputDir) - var extendedAllObjects = null + const extendedJsonFilePath = getAllObjectsFilePathOfClass(extendedClassName, null, outputDir) + let extendedAllObjects = null if (fs.existsSync(extendedJsonFilePath)) { extendedAllObjects = JSON.parse(fs.readFileSync(extendedJsonFilePath, 'utf8')) } else { @@ -213,13 +213,13 @@ function updateAllObjectsWithExtendsImports (className, moFile, outputDir) { } // below extracts the allObjects from the extended class and any extends classes - var newRequiredReferences = extendedAllObjects.requiredReferences + const newRequiredReferences = extendedAllObjects.requiredReferences if ('connections' in newRequiredReferences && newRequiredReferences.connections !== null && newRequiredReferences.connections !== undefined) { - var newConnections = newRequiredReferences.connections + const newConnections = newRequiredReferences.connections extendedConnections = oe.updateConnections(extendedConnections, newConnections) } if ('extends_clause' in newRequiredReferences && newRequiredReferences.extends_clause !== null && newRequiredReferences.extends_clause !== undefined) { - var extendsClause2 = newRequiredReferences.extends_clause + const extendsClause2 = newRequiredReferences.extends_clause if (!(extendsClause2.name in parsedExtendClauseNames)) { extendClauses = extendClauses.concat(extendsClause2) } @@ -227,15 +227,15 @@ function updateAllObjectsWithExtendsImports (className, moFile, outputDir) { if ('import_clause' in newRequiredReferences && newRequiredReferences.import_clause !== null && newRequiredReferences.import_clause !== undefined) { importClauses = importClauses.concat(newRequiredReferences.import_clause) } - var newInstances = extendedAllObjects.instances + const newInstances = extendedAllObjects.instances if (extendedClassModification !== null && extendedClassModification !== undefined) { - var redeclaredInstances = getRedeclarationsFromClassModification(extendedClassModification) + const redeclaredInstances = getRedeclarationsFromClassModification(extendedClassModification) if (Object.keys(redeclaredInstances).length !== 0) { - for (var key in redeclaredInstances) { + for (const key in redeclaredInstances) { if (key in newInstances) { - redeclaredInstances[key]['long_class_specifier_identifier'] = newInstances[key]['long_class_specifier_identifier'] - redeclaredInstances[key]['within'] = newInstances[key]['within'] + redeclaredInstances[key].long_class_specifier_identifier = newInstances[key].long_class_specifier_identifier + redeclaredInstances[key].within = newInstances[key].within delete newInstances[key] newInstances[key] = redeclaredInstances[key] } @@ -251,19 +251,19 @@ function updateAllObjectsWithExtendsImports (className, moFile, outputDir) { } } - var importedInstances = {} + const importedInstances = {} if (importClauses.length > 0) { - for (var importClause in importClauses) { - var importClauseIdentifier = importClause.identifier - var importClauseName = importClause.name + for (const importClause in importClauses) { + const importClauseIdentifier = importClause.identifier + const importClauseName = importClause.name // TODO: handle importList and dotStar // var dotStar = importClause.dot_star // var importList = importClause.import_list if (importClauseIdentifier !== null && importClauseIdentifier !== undefined) { importedInstances[importClauseIdentifier] = { - 'type_specifier': importClauseName, - 'type': 'import_clause' + type_specifier: importClauseName, + type: 'import_clause' } } } @@ -271,7 +271,7 @@ function updateAllObjectsWithExtendsImports (className, moFile, outputDir) { instances = Object.assign({}, instances, extendedInstances, importedInstances) connections = oe.updateConnections(connections, extendedConnections) - allObjects = {'instances': instances, 'requiredReferences': {'connections': connections}} + allObjects = { instances, requiredReferences: { connections } } return allObjects } @@ -280,8 +280,8 @@ function checkIfIdAndClassParsed (idAndClassesParsed, newIdentifier, newClass) { return false } for (let i = 0; i < idAndClassesParsed.length; i++) { - var identifier = idAndClassesParsed[i][0] - var currentClass = idAndClassesParsed[i][1] + const identifier = idAndClassesParsed[i][0] + const currentClass = idAndClassesParsed[i][1] if (newIdentifier === identifier && newClass === currentClass) { return true @@ -291,14 +291,14 @@ function checkIfIdAndClassParsed (idAndClassesParsed, newIdentifier, newClass) { } function getClassDefinitionSemantics (instances, className) { - var semantics = {} + let semantics = {} className = className.split('.mo')[0].replaceAll('.', path.sep).split(path.sep).slice(-1) - for (var instance in instances) { + for (const instance in instances) { if (instance.endsWith(className)) { - var instanceInfo = instances[instance] + const instanceInfo = instances[instance] if ('type' in instanceInfo) { if (instanceInfo.type === 'long_class_specifier' || instanceInfo.type === 'short_class_specifier') { - var annotation = instanceInfo.annotation + const annotation = instanceInfo.annotation if (annotation !== null || annotation !== undefined) { semantics = oe.extractSemanticsFromAnnotations(annotation, instance) } @@ -310,32 +310,32 @@ function getClassDefinitionSemantics (instances, className) { } function getSemanticInformation (className, outputDir) { // [parentInstanceIdentifier, className, moFile] - var idAndClassesToParse = [[0, className, null]] - var idAndClassesParsed = [] - var instances = {} - var requiredReferences = {} + const idAndClassesToParse = [[0, className, null]] + const idAndClassesParsed = [] + let instances = {} + let requiredReferences = {} - var i = 0 - var originalMoFile = className + let i = 0 + let originalMoFile = className while (idAndClassesToParse.length !== idAndClassesParsed.length) { - var parentInstanceIdentifier = idAndClassesToParse[i][0] - var parentClassName = idAndClassesToParse[i][1] - var moFile = idAndClassesToParse[i][2] + let parentInstanceIdentifier = idAndClassesToParse[i][0] + const parentClassName = idAndClassesToParse[i][1] + const moFile = idAndClassesToParse[i][2] - var newAllObjects = updateAllObjectsWithExtendsImports(parentClassName, moFile, outputDir) - var newInstances = newAllObjects.instances - var newConnections = newAllObjects.requiredReferences.connections + const newAllObjects = updateAllObjectsWithExtendsImports(parentClassName, moFile, outputDir) + let newInstances = newAllObjects.instances + let newConnections = newAllObjects.requiredReferences.connections // if no semantic information, replace with class definition semantic information - var classDefinitionSemantics = getClassDefinitionSemantics(newInstances, parentClassName) + const classDefinitionSemantics = getClassDefinitionSemantics(newInstances, parentClassName) if (parentInstanceIdentifier === 0 && typeof (parentInstanceIdentifier) === 'number') { parentInstanceIdentifier = '' originalMoFile = ut.getMoFiles(parentClassName)[0] } else { - var parentInstance = instances[parentInstanceIdentifier] + const parentInstance = instances[parentInstanceIdentifier] if ('semantics' in parentInstance) { if (Object.keys(parentInstance.semantics).length === 0) { - instances[parentInstanceIdentifier]['semantics'] = classDefinitionSemantics + instances[parentInstanceIdentifier].semantics = classDefinitionSemantics } } delete newInstances[parentClassName] @@ -343,12 +343,12 @@ function getSemanticInformation (className, outputDir) { newInstances = updateInstancesKey(parentInstanceIdentifier, newInstances) newConnections = updateConnectionsIdentifiers(parentInstanceIdentifier, newConnections) - for (var instanceIdentifier in newInstances) { - var instanceInformation = newInstances[instanceIdentifier] - var instanceType = instanceInformation.type - var instanceClassName - var within - var fullMoFilePath + let instanceClassName + for (const instanceIdentifier in newInstances) { + const instanceInformation = newInstances[instanceIdentifier] + const instanceType = instanceInformation.type + let within + let fullMoFilePath // TODO: handle enum_list, der_class_specifier if (instanceType === 'element') { @@ -385,15 +385,15 @@ function getSemanticInformation (className, outputDir) { } } instances = Object.assign({}, instances, newInstances) - requiredReferences = oe.updateRequiredReferences(requiredReferences, {'connections': newConnections}) + requiredReferences = oe.updateRequiredReferences(requiredReferences, { connections: newConnections }) i += 1 idAndClassesParsed.push([parentInstanceIdentifier, instanceClassName, moFile]) } - var content = {} - for (var id in instances) { - var semantics = instances[id].semantics - for (var language in semantics) { + const content = {} + for (const id in instances) { + const semantics = instances[id].semantics + for (const language in semantics) { if (language.split(' ').length === 3) { if (language.split(' ')[2] === 'text/turtle') { if (language in content) { @@ -411,21 +411,21 @@ function getSemanticInformation (className, outputDir) { } } } - for (language in content) { - var languageTokens = language.split(' ') - var outFolder - var resourceName - var outFileName - var outputContent + for (const language in content) { + const languageTokens = language.split(' ') + let outFolder + let resourceName + let outFileName + let outputContent if (languageTokens.length === 3) { - var metadataLanguage = languageTokens[0] - var version = languageTokens[1] - var format = languageTokens[2] + const metadataLanguage = languageTokens[0] + const version = languageTokens[1] + const format = languageTokens[2] if (format === 'text/turtle') { const resourceName = className.split('.mo')[0].split(path.sep).slice(-1)[0] - var uri = 'https://example.org/' + resourceName + '.ttl' - var body = content[language] - var store = rdflib.graph() + const uri = 'https://example.org/' + resourceName + '.ttl' + const body = content[language] + const store = rdflib.graph() try { rdflib.parse(body, store, uri, 'text/turtle') @@ -437,7 +437,7 @@ function getSemanticInformation (className, outputDir) { outputContent = store.serialize('turtle') } } else { - var naturalLanguage = languageTokens[0] + const naturalLanguage = languageTokens[0] resourceName = className.split('.mo')[0].split(path.sep).slice(-1)[0] outFolder = path.join(outputDir, 'objects', naturalLanguage, className.split('.mo')[0].split(path.sep).slice(0, -1).join(path.sep)) outFileName = path.join(outFolder, resourceName + '.txt') diff --git a/lib/util.js b/lib/util.js index b5f1805e..f475f1e2 100644 --- a/lib/util.js +++ b/lib/util.js @@ -22,7 +22,7 @@ function getMODELICAPATH () { * @param outputFormat output format, 'json' */ function createTempDir (outputFormat) { - var tmpDir + let tmpDir try { tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), outputFormat)) } catch (e) { @@ -67,11 +67,11 @@ function removeDir (directoryPath) { * @return array of the full path of the modelica file or the package */ function getMoFiles (files) { - var moFiles = [] + let moFiles = [] const MODELICAPATH = getMODELICAPATH() if (files.endsWith('.mo')) { - var tempPath - for (var j = 0; j < MODELICAPATH.length; j++) { + let tempPath + for (let j = 0; j < MODELICAPATH.length; j++) { tempPath = path.join(MODELICAPATH[j], files) if (fse.existsSync(tempPath)) { moFiles.push(tempPath) @@ -83,9 +83,9 @@ function getMoFiles (files) { } } else { // it is a package of mo files - var tempFolder = files + let tempFolder = files if (!fse.existsSync(tempFolder)) { - for (var i = 0; i < MODELICAPATH.length; i++) { + for (let i = 0; i < MODELICAPATH.length; i++) { tempFolder = path.join(MODELICAPATH[i], files) if (fse.existsSync(tempFolder)) break } @@ -94,7 +94,7 @@ function getMoFiles (files) { // the package is not on the MODELICAPATH, so it is a user specified package tempFolder = files } - var fileList = getFiles(tempFolder) + const fileList = getFiles(tempFolder) moFiles = fileList.filter(function (obj) { return obj.endsWith('.mo') }) @@ -109,10 +109,11 @@ function getMoFiles (files) { */ function getFiles (dir, fileList) { fileList = fileList || [] - var files = fs.readdirSync(dir) - for (var i in files) { - if (!files.hasOwnProperty(i)) continue - var name = dir + path.sep + files[i] + const files = fs.readdirSync(dir) + for (const i in files) { + // if (!files.hasOwnProperty(i)) continue + if (!Object.hasOwn(files, i)) continue + const name = dir + path.sep + files[i] if (fs.statSync(name).isDirectory()) { getFiles(name, fileList) } else { @@ -130,13 +131,13 @@ function getFiles (dir, fileList) { * @return relative file path to MODELICAPATH */ function relativePath (filePath) { - var paths = getMODELICAPATH() - var bases = [] + const paths = getMODELICAPATH() + const bases = [] paths.forEach(ele => { if (ele.length > 0) bases.push(ele) }) - var relPa = filePath - for (var i = 0; i < bases.length; i++) { + let relPa = filePath + for (let i = 0; i < bases.length; i++) { if (filePath.includes(bases[i])) { relPa = filePath.substring(filePath.indexOf(bases[i]) + bases[i].length + 1) } @@ -153,8 +154,8 @@ function relativePath (filePath) { */ function getOutputFile (inputFile, outputFormat, dir) { // get the modelica file path from the Json output, it is relative path - var relPat = relativePath(inputFile) - var outFile + const relPat = relativePath(inputFile) + let outFile if (outputFormat === 'json' || outputFormat === 'raw-json' || outputFormat === 'objects') { outFile = relPat.replace('.mo', '.json') } else if (outputFormat === 'html') { @@ -169,22 +170,22 @@ function getOutputFile (inputFile, outputFormat, dir) { // Get the full file path of the instantiated classes function searchPath (claLis, within, sourceMoFile) { - var MODELICAPATH = getMODELICAPATH() + const MODELICAPATH = getMODELICAPATH() const filePath = [] - for (var i = 0; i < claLis.length; i++) { + for (let i = 0; i < claLis.length; i++) { const ithCla = claLis[i] const claRelPath = joinedPathes(ithCla.split('.')) - var fulPat = searchFullPath(claRelPath.reverse(), MODELICAPATH, within) + const fulPat = searchFullPath(claRelPath.reverse(), MODELICAPATH, within) if (fulPat) { filePath.push(fulPat) } else { // check if its in the same folders as original moFile if (sourceMoFile !== undefined && sourceMoFile !== null) { - var folders = sourceMoFile.split('.mo')[0].split(path.sep) + const folders = sourceMoFile.split('.mo')[0].split(path.sep) let j = folders.length - 1 while (j > 0) { - var possiblePath = path.join(folders.slice(0, j).join(path.sep), ithCla + '.mo') + const possiblePath = path.join(folders.slice(0, j).join(path.sep), ithCla + '.mo') if (fs.existsSync(possiblePath)) { filePath.push(possiblePath) } @@ -195,12 +196,12 @@ function searchPath (claLis, within, sourceMoFile) { } return filePath } - // Get array of potential paths +// Get array of potential paths function joinedPathes (eleArr) { const pathes = [] const joinedPat = [] const pathSep = path.sep - for (var i = 0; i < eleArr.length; i++) { + for (let i = 0; i < eleArr.length; i++) { pathes.push(eleArr[i]) joinedPat.push(pathes.join(pathSep)) } @@ -210,7 +211,7 @@ function joinedPathes (eleArr) { // Search the full path function searchFullPath (claRelPath, MODELICAPATH, within) { const withEle = within ? within.split('.') : null - var fullPath = pathSearch(claRelPath, MODELICAPATH, withEle, false) + let fullPath = pathSearch(claRelPath, MODELICAPATH, withEle, false) if (!fullPath) { fullPath = pathSearch(claRelPath, MODELICAPATH, withEle, true) } @@ -227,14 +228,14 @@ function searchFullPath (claRelPath, MODELICAPATH, within) { * @param checkPackage flag to check if should check package.mo file */ function pathSearch (claRelPath, MODELICAPATH, withEle, checkPackage) { - var fullPath - for (var i = 0; i < MODELICAPATH.length; i++) { - var moPath = MODELICAPATH[i] + let fullPath + for (let i = 0; i < MODELICAPATH.length; i++) { + const moPath = MODELICAPATH[i] const tempPathes = withEle ? joinWithinPath(moPath, withEle) : [moPath] - var tempPath - for (var j = 0; j < tempPathes.length; j++) { - for (var k = 0; k < claRelPath.length; k++) { - var relPath = !checkPackage ? (claRelPath[k] + '.mo') : claRelPath[k] + let tempPath + for (let j = 0; j < tempPathes.length; j++) { + for (let k = 0; k < claRelPath.length; k++) { + const relPath = !checkPackage ? (claRelPath[k] + '.mo') : claRelPath[k] tempPath = path.join(tempPathes[j], relPath) if (!checkPackage) { if (fse.existsSync(tempPath)) { @@ -323,11 +324,11 @@ function copyFolderSync (from, to) { // Check if the modelica file should be parsed function checkIfParse (outputFile, checksum, moFile) { - var parseMo = false + let parseMo = false if (!fs.existsSync(outputFile)) { parseMo = true } else { - var checksumInJson = getChecksumFromJson(outputFile) + const checksumInJson = getChecksumFromJson(outputFile) if (!checksumInJson || (checksumInJson !== checksum)) { if (checksumInJson !== checksum) { console.log('There is change in: "' + moFile + '", regenerating the json output.') @@ -345,7 +346,7 @@ function checkIfParse (outputFile, checksum, moFile) { function getMoChecksum (moFile) { if (fs.existsSync(moFile)) { const input = fs.readFileSync(moFile) - var hash = crypto.createHash('md5') + const hash = crypto.createHash('md5') hash.update(input) return hash.digest('hex') } else { @@ -355,11 +356,11 @@ function getMoChecksum (moFile) { // Get the checksum from the stored json file function getChecksumFromJson (jsPath) { - var jsonChecksum = null + let jsonChecksum = null try { - var fileContent = fs.readFileSync(jsPath, 'utf8') - var jsonOutput = JSON.parse(fileContent) - jsonChecksum = jsonOutput['checksum'] + const fileContent = fs.readFileSync(jsPath, 'utf8') + const jsonOutput = JSON.parse(fileContent) + jsonChecksum = jsonOutput.checksum if (jsonChecksum == null) { return null } @@ -373,11 +374,12 @@ function getChecksumFromJson (jsPath) { // Validation of a json file against a schema function jsonSchemaValidation (mode, userData, output = 'json', userSchema) { if (output !== 'json') { + console.log('Json file will be validated against schema only when the output format is json.') } else { - var ajv = new Ajv({ allErrors: true, schemaId: '$id' }) - var schema = JSON.parse(fs.readFileSync(userSchema, 'utf8')) - var data = JSON.parse(fs.readFileSync(userData, 'utf8')) - var valid = ajv.validate(schema, data) + const ajv = new Ajv({ allErrors: true, schemaId: '$id' }) + const schema = JSON.parse(fs.readFileSync(userSchema, 'utf8')) + const data = JSON.parse(fs.readFileSync(userData, 'utf8')) + const valid = ajv.validate(schema, data) if (valid) { console.log('Json file is valid') return valid @@ -396,15 +398,15 @@ function jsonSchemaValidation (mode, userData, output = 'json', userSchema) { * @return Result files with path string in an array */ function findFilesInDir (startPath, filter) { - var results = [] + let results = [] if (!fs.existsSync(startPath)) { console.log('no dir ', startPath) return } - var files = fs.readdirSync(startPath) - for (var i = 0; i < files.length; i++) { - var filename = path.join(startPath, files[i]) - var stat = fs.lstatSync(filename) + const files = fs.readdirSync(startPath) + for (let i = 0; i < files.length; i++) { + const filename = path.join(startPath, files[i]) + const stat = fs.lstatSync(filename) if (stat.isDirectory()) { results = results.concat(findFilesInDir(filename, filter)) // recurse } else if (filename.indexOf(filter) >= 0) { diff --git a/package.json b/package.json index 97f00f65..346cc955 100644 --- a/package.json +++ b/package.json @@ -10,10 +10,9 @@ "author": "Michael Wetter", "license": "BSD-3-Clause", "dependencies": { - "ajv": "^6.9.1", + "ajv": "^8.12.0", "argparse": "^1.0.9", "array-unique": "^0.3.2", - "base64-img": "^1.0.1", "bluebird": "^3.5.1", "cheerio": "^1.0.0-rc.2", "express": "^4.16.2", @@ -23,22 +22,20 @@ "glob": "^7.1.2", "glob-promise": "^3.3.0", "help": "^3.0.2", - "html-docx-js": "^0.1.0", "load-json-file": "^4.0.0", "mathjs": "^11.5.0", "minimist": "^1.2.0", "mustache": "^2.3.0", - "npm": "^8.2.0", + "npm": "^9.8.1", "nyc": "^15.1.0", "promise-fs": "^1.3.0", "rdflib": "^2.2.32", - "svg-to-img": "^2.0.7", "winston": "2.4.5" }, "devDependencies": { "chai": "^4.1.2", "mocha": "^9.2.2", "sinon": "^15.0.0", - "standard": "^10.0.3" + "standard": "^17.1.0" } } diff --git a/test/reference/json/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.json b/test/reference/json/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.json index 7f8c68a6..4c775f0a 100644 --- a/test/reference/json/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.json +++ b/test/reference/json/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.json @@ -744,7 +744,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.PIDWithReset", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.PIDWithReset", "component_list": [ { "declaration": { @@ -951,7 +951,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Switch", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Switch", "component_list": [ { "declaration": { @@ -988,7 +988,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Sources.Constant", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Sources.Constant", "component_list": [ { "declaration": { @@ -1864,6 +1864,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo", - "checksum": "96564bd331e6f1fb2549fc3ec8f20ffe" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo", + "checksum": "5a6b45141ecae64279c8ff6592df112c" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Constants.json b/test/reference/json/Buildings/Controls/OBC/CDL/Constants.json index 13142a8f..b5865a43 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Constants.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Constants.json @@ -398,6 +398,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Constants.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Constants.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Constants.mo", "checksum": "d18e385511e96322440f6f561441b22c" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Abs.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Abs.json deleted file mode 100644 index 7935e4bc..00000000 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Abs.json +++ /dev/null @@ -1,426 +0,0 @@ -{ - "within": "Buildings.Controls.OBC.CDL.Continuous", - "class_definition": [ - { - "class_prefixes": "block", - "class_specifier": { - "long_class_specifier": { - "identifier": "Abs", - "description_string": "Output the absolute value of the input", - "composition": { - "element_list": [ - { - "component_clause": { - "type_specifier": "Interfaces.RealInput", - "component_list": [ - { - "declaration": { - "identifier": "u" - }, - "description": { - "description_string": "Connector of Real input signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -20 - }, - { - "x": -100, - "y": 20 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Interfaces.RealOutput", - "component_list": [ - { - "declaration": { - "identifier": "y" - }, - "description": { - "description_string": "Connector of Real output signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, - { - "x": 140, - "y": 20 - } - ] - } - } - } - } - } - ] - } - } - ] - } - } - ], - "element_sections": [ - { - "equation_section": { - "equation": [ - { - "assignment_equation": { - "lhs": "y", - "rhs": { - "simple_expression": { - "function_call": { - "name": "abs", - "arguments": [ - { - "name": "u" - } - ] - } - } - } - } - } - ] - } - } - ], - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "defaultComponentName", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"abs\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Icon", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "coordinateSystem": { - "extent": [ - { - "x": -100, - "y": -100 - }, - { - "x": 100, - "y": 100 - } - ], - "preserveAspectRatio": "true" - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "graphics": [ - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -150, - "y": 110 - }, - { - "x": 150, - "y": 150 - } - ], - "textString": "\"%name\"", - "textColor": { - "r": 0, - "g": 0, - "b": 255 - } - } - }, - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -100, - "y": -100 - }, - { - "x": 100, - "y": 100 - } - ], - "lineColor": { - "r": 0, - "g": 0, - "b": 127 - }, - "fillColor": { - "r": 255, - "g": 255, - "b": 255 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Polygon", - "attribute": { - "points": [ - { - "x": 92, - "y": 0 - }, - { - "x": 70, - "y": 8 - }, - { - "x": 70, - "y": -8 - }, - { - "x": 92, - "y": 0 - } - ], - "lineColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -80, - "y": 80 - }, - { - "x": 0, - "y": 0 - }, - { - "x": 80, - "y": 80 - } - ] - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": 0, - "y": -14 - }, - { - "x": 0, - "y": 68 - } - ], - "color": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Polygon", - "attribute": { - "points": [ - { - "x": 0, - "y": 90 - }, - { - "x": -8, - "y": 68 - }, - { - "x": 8, - "y": 68 - }, - { - "x": 0, - "y": 90 - } - ], - "lineColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -34, - "y": -28 - }, - { - "x": 38, - "y": -76 - } - ], - "textString": "\"abs\"", - "textColor": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -88, - "y": 0 - }, - { - "x": 76, - "y": 0 - } - ], - "color": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": 226, - "y": 60 - }, - { - "x": 106, - "y": 10 - } - ], - "textString": "DynamicSelect(\"\",String(y", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - } - } - } - ] - } - } - } - ] - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Documentation", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "info", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n

\nBlock that outputs y = abs(u),\nwhere\nu is an input.\n

\n\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "revisions", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n\n\"" - } - } - } - } - } - ] - } - } - } - } - ] - } - } - } - } - ], - "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Abs.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Abs.mo", - "checksum": "f98a5141c48b61f2ea968f49837b5812" -} \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Greater.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Greater.json deleted file mode 100644 index 677d69ab..00000000 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Greater.json +++ /dev/null @@ -1,1734 +0,0 @@ -{ - "within": "Buildings.Controls.OBC.CDL.Continuous", - "class_definition": [ - { - "class_prefixes": "block", - "class_specifier": { - "long_class_specifier": { - "identifier": "Greater", - "description_string": "Output y is true, if input u1 is greater than input u2", - "composition": { - "element_list": [ - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Real", - "component_list": [ - { - "declaration": { - "identifier": "h", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "min", - "modification": { - "equal": true, - "expression": { - "simple_expression": "0" - } - } - } - } - } - ], - "equal": true, - "expression": { - "simple_expression": "0" - } - } - }, - "description": { - "description_string": "Hysteresis", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Evaluate", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Boolean", - "component_list": [ - { - "declaration": { - "identifier": "pre_y_start", - "modification": { - "equal": true, - "expression": { - "simple_expression": "false" - } - } - }, - "description": { - "description_string": "Value of pre(y) at initial time", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "tab", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Advanced\"" - } - } - } - } - } - ] - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Interfaces.RealInput", - "component_list": [ - { - "declaration": { - "identifier": "u1" - }, - "description": { - "description_string": "Input u1", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -20 - }, - { - "x": -100, - "y": 20 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Interfaces.RealInput", - "component_list": [ - { - "declaration": { - "identifier": "u2" - }, - "description": { - "description_string": "Input u2", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -100 - }, - { - "x": -100, - "y": -60 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Interfaces.BooleanOutput", - "component_list": [ - { - "declaration": { - "identifier": "y" - }, - "description": { - "description_string": "Output y", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, - { - "x": 140, - "y": 20 - } - ] - } - } - } - } - } - ] - } - } - ] - } - } - ], - "element_sections": [ - { - "protected_element_list": [ - { - "final": true, - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Boolean", - "component_list": [ - { - "declaration": { - "identifier": "have_hysteresis", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "h" - }, - { - "name": "1e-10" - } - ], - "relation_operator": ">=" - } - ] - } - ] - } - } - } - } - }, - "description": { - "description_string": "True if the block has no hysteresis", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Evaluate", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "GreaterWithHysteresis", - "component_list": [ - { - "declaration": { - "identifier": "greHys", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "h", - "modification": { - "equal": true, - "expression": { - "simple_expression": "h" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "pre_y_start", - "modification": { - "equal": true, - "expression": { - "simple_expression": "pre_y_start" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "have_hysteresis" - } - }, - "description": { - "description_string": "Block with hysteresis", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -10, - "y": 20 - }, - { - "x": 10, - "y": 40 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "GreaterNoHysteresis", - "component_list": [ - { - "declaration": { - "identifier": "greNoHys" - }, - "condition_attribute": { - "expression": { - "simple_expression": "not have_hysteresis" - } - }, - "description": { - "description_string": "Block without hysteresis", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -10, - "y": -40 - }, - { - "x": 10, - "y": -20 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "class_definition": { - "class_prefixes": "block", - "class_specifier": { - "long_class_specifier": { - "identifier": "GreaterNoHysteresis", - "description_string": "Greater block without hysteresis", - "composition": { - "element_list": [ - { - "component_clause": { - "type_specifier": "Interfaces.RealInput", - "component_list": [ - { - "declaration": { - "identifier": "u1" - }, - "description": { - "description_string": "Input u1", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -20 - }, - { - "x": -100, - "y": 20 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Interfaces.RealInput", - "component_list": [ - { - "declaration": { - "identifier": "u2" - }, - "description": { - "description_string": "Input u2", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -100 - }, - { - "x": -100, - "y": -60 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Interfaces.BooleanOutput", - "component_list": [ - { - "declaration": { - "identifier": "y" - }, - "description": { - "description_string": "Output y", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, - { - "x": 140, - "y": 20 - } - ] - } - } - } - } - } - ] - } - } - ] - } - } - ], - "element_sections": [ - { - "equation_section": { - "equation": [ - { - "assignment_equation": { - "lhs": "y", - "rhs": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "u1" - }, - { - "name": "u2" - } - ], - "relation_operator": ">" - } - ] - } - ] - } - } - } - } - } - ] - } - } - ], - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Icon", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "graphics": [ - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -100, - "y": 100 - }, - { - "x": 100, - "y": -100 - } - ], - "borderPattern": "BorderPattern.Raised", - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 210, - "g": 210, - "b": 210 - }, - "fillPattern": "FillPattern.Solid", - "lineThickness": 5 - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -150, - "y": 150 - }, - { - "x": 150, - "y": 110 - } - ], - "textString": "\"%name\"", - "textColor": { - "r": 0, - "g": 0, - "b": 255 - } - } - } - ] - } - } - } - ] - } - } - } - } - ] - } - } - } - } - }, - { - "class_definition": { - "class_prefixes": "block", - "class_specifier": { - "long_class_specifier": { - "identifier": "GreaterWithHysteresis", - "description_string": "Greater block without hysteresis", - "composition": { - "element_list": [ - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Real", - "component_list": [ - { - "declaration": { - "identifier": "h", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "min", - "modification": { - "equal": true, - "expression": { - "simple_expression": "0" - } - } - } - } - } - ], - "equal": true, - "expression": { - "simple_expression": "0" - } - } - }, - "description": { - "description_string": "Hysteresis", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Evaluate", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Boolean", - "component_list": [ - { - "declaration": { - "identifier": "pre_y_start", - "modification": { - "equal": true, - "expression": { - "simple_expression": "false" - } - } - }, - "description": { - "description_string": "Value of pre(y) at initial time", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "tab", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Advanced\"" - } - } - } - } - } - ] - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Interfaces.RealInput", - "component_list": [ - { - "declaration": { - "identifier": "u1" - }, - "description": { - "description_string": "Input u1", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -20 - }, - { - "x": -100, - "y": 20 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Interfaces.RealInput", - "component_list": [ - { - "declaration": { - "identifier": "u2" - }, - "description": { - "description_string": "Input u2", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -100 - }, - { - "x": -100, - "y": -60 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Interfaces.BooleanOutput", - "component_list": [ - { - "declaration": { - "identifier": "y" - }, - "description": { - "description_string": "Output y", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, - { - "x": 140, - "y": 20 - } - ] - } - } - } - } - } - ] - } - } - ] - } - } - ], - "element_sections": [ - { - "equation_section": { - "initial": true, - "equation": [ - { - "function_call_equation": { - "function_name": "assert", - "function_call_args": { - "function_argument": { - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "h" - }, - { - "name": "0" - } - ], - "relation_operator": ">=" - } - ] - } - ] - } - } - } - }, - "function_arguments": { - "function_argument": { - "expression": { - "simple_expression": "\"Hysteresis must not be negative\"" - } - } - } - } - } - }, - { - "assignment_equation": { - "lhs": { - "function_call": { - "name": "pre", - "arguments": [ - { - "name": "y" - } - ] - } - }, - "rhs": { - "simple_expression": "pre_y_start" - } - } - } - ] - } - }, - { - "equation_section": { - "equation": [ - { - "assignment_equation": { - "lhs": "y", - "rhs": { - "simple_expression": "([object Object])" - } - } - } - ] - } - } - ], - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Icon", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "graphics": [ - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -100, - "y": 100 - }, - { - "x": 100, - "y": -100 - } - ], - "borderPattern": "BorderPattern.Raised", - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 210, - "g": 210, - "b": 210 - }, - "fillPattern": "FillPattern.Solid", - "lineThickness": 5 - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -150, - "y": 150 - }, - { - "x": 150, - "y": 110 - } - ], - "textString": "\"%name\"", - "textColor": { - "r": 0, - "g": 0, - "b": 255 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -64, - "y": 62 - }, - { - "x": 62, - "y": 92 - } - ], - "textString": ",textString=", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - } - } - } - ] - } - } - } - ] - } - } - } - } - ] - } - } - } - } - } - ] - }, - { - "equation_section": { - "equation": [ - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "u1" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "greHys" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u1" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -120, - "y": 0 - }, - { - "x": -66, - "y": 0 - }, - { - "x": -66, - "y": 30 - }, - { - "x": -12, - "y": 30 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "u2" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "greHys" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u2" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -120, - "y": -80 - }, - { - "x": -60, - "y": -80 - }, - { - "x": -60, - "y": 22 - }, - { - "x": -12, - "y": 22 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "greHys" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "y" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": 12, - "y": 30 - }, - { - "x": 60, - "y": 30 - }, - { - "x": 60, - "y": 0 - }, - { - "x": 120, - "y": 0 - } - ], - "color": { - "r": 255, - "g": 0, - "b": 255 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "u1" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "greNoHys" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u1" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -120, - "y": 0 - }, - { - "x": -66, - "y": 0 - }, - { - "x": -66, - "y": -30 - }, - { - "x": -12, - "y": -30 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "u2" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "greNoHys" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u2" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -120, - "y": -80 - }, - { - "x": -60, - "y": -80 - }, - { - "x": -60, - "y": -38 - }, - { - "x": -12, - "y": -38 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "greNoHys" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "y" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": 12, - "y": -30 - }, - { - "x": 60, - "y": -30 - }, - { - "x": 60, - "y": 0 - }, - { - "x": 120, - "y": 0 - } - ], - "color": { - "r": 255, - "g": 0, - "b": 255 - } - } - } - } - } - ] - } - } - ] - } - } - ], - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "defaultComponentName", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"gre\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Icon", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "coordinateSystem": { - "extent": [ - { - "x": -100, - "y": -100 - }, - { - "x": 100, - "y": 100 - } - ], - "preserveAspectRatio": "false" - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "graphics": [ - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -100, - "y": 100 - }, - { - "x": 100, - "y": -100 - } - ], - "borderPattern": "BorderPattern.Raised", - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 210, - "g": 210, - "b": 210 - }, - "fillPattern": "FillPattern.Solid", - "lineThickness": 5 - } - }, - { - "name": "Ellipse", - "attribute": { - "extent": [ - { - "x": 73, - "y": 7 - }, - { - "x": 87, - "y": -7 - } - ], - "lineColor": { - "r": 235, - "g": 235, - "b": null - }, - "fillColor": { - "r": 235, - "g": 235, - "b": null - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -100, - "y": -80 - }, - { - "x": 42, - "y": -80 - }, - { - "x": 42, - "y": -62 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -12, - "y": 14 - }, - { - "x": 18, - "y": 2 - }, - { - "x": -12, - "y": -8 - } - ], - "thickness": 0.5 - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -150, - "y": 150 - }, - { - "x": 150, - "y": 110 - } - ], - "textString": "\"%name\"", - "textColor": { - "r": 0, - "g": 0, - "b": 255 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -64, - "y": 62 - }, - { - "x": 62, - "y": 92 - } - ], - "textString": ",textString=", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -88, - "y": -18 - }, - { - "x": -21, - "y": 24 - } - ], - "textString": "DynamicSelect(\"\",String(u1", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -86, - "y": -76 - }, - { - "x": -19, - "y": -34 - } - ], - "textString": "DynamicSelect(\"\",String(u2", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": 22, - "y": 20 - }, - { - "x": 89, - "y": 62 - } - ], - "textString": "DynamicSelect(\"\",String(u2", - "textColor": { - "r": 235, - "g": 235, - "b": null - }, - "visible": ",visible=" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": 22, - "y": 20 - }, - { - "x": 89, - "y": 62 - } - ], - "textString": "DynamicSelect(\"\",String(u2", - "textColor": { - "r": 235, - "g": 235, - "b": null - }, - "visible": ",visible=" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": 20, - "y": -56 - }, - { - "x": 87, - "y": -14 - } - ], - "textString": "DynamicSelect(\"\",String(u2 -h", - "textColor": { - "r": 235, - "g": 235, - "b": null - }, - "visible": ",visible=" - } - } - ] - } - } - } - ] - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Documentation", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "info", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n

\nBlock that outputs true if the Real input u1\nis greater than the Real input u2, optionally within a hysteresis h.\n

\n

\nThe parameter h ≥ 0 is used to specify a hysteresis.\nFor any h ≥ 0, the output switches to true if u1 > u2,\nand it switches to false if u1 ≤ u2 - h.\nNote that in the special case of h = 0, this produces the output y=u1 > u2.\n

\n

\nTo disable hysteresis, set h=0.\n

\n

Usage

\n

\nEnabling hysteresis can avoid frequent switching.
\nIn simulation, adding hysteresis is recommended to guard against numerical noise.\nOtherwise, numerical noise from a nonlinear solver or from an\nimplicit time integration algorithm may cause the simulation to stall.\nNumerical noise can be present if an input depends\non a state variable or a quantity that requires an iterative solution,\nsuch as a temperature or a mass flow rate of an HVAC system.
\nIn real controllers, adding hysteresis is recommended to guard against measurement noise.\nOtherwise, measurement noise may cause the output to change frequently.\n

\n\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "revisions", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n\n\"" - } - } - } - } - } - ] - } - } - } - } - ] - } - } - } - } - ], - "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Greater.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Greater.mo", - "checksum": "323c778e971495a461755b36e08d76d6" -} \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Hysteresis.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Hysteresis.json deleted file mode 100644 index 0f36d3e0..00000000 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Hysteresis.json +++ /dev/null @@ -1,794 +0,0 @@ -{ - "within": "Buildings.Controls.OBC.CDL.Continuous", - "class_definition": [ - { - "class_prefixes": "block", - "class_specifier": { - "long_class_specifier": { - "identifier": "Hysteresis", - "description_string": "Transform Real to Boolean signal with Hysteresis", - "composition": { - "element_list": [ - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Real", - "component_list": [ - { - "declaration": { - "identifier": "uLow" - }, - "description": { - "description_string": "if y=true and uuHigh, switch to y=true" - } - } - ] - } - }, - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Boolean", - "component_list": [ - { - "declaration": { - "identifier": "pre_y_start", - "modification": { - "equal": true, - "expression": { - "simple_expression": "false" - } - } - }, - "description": { - "description_string": "Value of pre(y) at initial time" - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Interfaces.RealInput", - "component_list": [ - { - "declaration": { - "identifier": "u" - }, - "description": { - "description_string": "Real input signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -20 - }, - { - "x": -100, - "y": 20 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Interfaces.BooleanOutput", - "component_list": [ - { - "declaration": { - "identifier": "y" - }, - "description": { - "description_string": "Boolean output signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, - { - "x": 140, - "y": 20 - } - ] - } - } - } - } - } - ] - } - } - ] - } - } - ], - "element_sections": [ - { - "equation_section": { - "initial": true, - "equation": [ - { - "function_call_equation": { - "function_name": "assert", - "function_call_args": { - "function_argument": { - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "uHigh" - }, - { - "name": "uLow" - } - ], - "relation_operator": ">" - } - ] - } - ] - } - } - } - }, - "function_arguments": { - "function_argument": { - "expression": { - "simple_expression": "\"Hysteresis limits wrong. uHigh must be larger than uLow\"" - } - } - } - } - } - }, - { - "assignment_equation": { - "lhs": { - "function_call": { - "name": "pre", - "arguments": [ - { - "name": "y" - } - ] - } - }, - "rhs": { - "simple_expression": "pre_y_start" - } - } - } - ] - } - }, - { - "equation_section": { - "equation": [ - { - "assignment_equation": { - "lhs": "y", - "rhs": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "u" - }, - { - "name": "uHigh" - } - ], - "relation_operator": ">" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "u" - }, - { - "name": "uLow" - } - ], - "relation_operator": ">=" - } - ] - } - ] - } - } - } - } - } - ] - } - } - ], - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "defaultComponentName", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"hys\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Icon", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "coordinateSystem": { - "extent": [ - { - "x": -100, - "y": -100 - }, - { - "x": 100, - "y": 100 - } - ], - "preserveAspectRatio": "true" - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "graphics": [ - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -100, - "y": 100 - }, - { - "x": 100, - "y": -100 - } - ], - "borderPattern": "BorderPattern.Raised", - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 210, - "g": 210, - "b": 210 - }, - "fillPattern": "FillPattern.Solid", - "lineThickness": 5 - } - }, - { - "name": "Ellipse", - "attribute": { - "extent": [ - { - "x": 71, - "y": 7 - }, - { - "x": 85, - "y": -7 - } - ], - "lineColor": { - "r": 235, - "g": 235, - "b": null - }, - "fillColor": { - "r": 235, - "g": 235, - "b": null - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Polygon", - "attribute": { - "points": [ - { - "x": -80, - "y": 90 - }, - { - "x": -88, - "y": 68 - }, - { - "x": -72, - "y": 68 - }, - { - "x": -80, - "y": 90 - } - ], - "lineColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -80, - "y": 68 - }, - { - "x": -80, - "y": -29 - } - ], - "color": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Polygon", - "attribute": { - "points": [ - { - "x": 92, - "y": -29 - }, - { - "x": 70, - "y": -21 - }, - { - "x": 70, - "y": -37 - }, - { - "x": 92, - "y": -29 - } - ], - "lineColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -79, - "y": -29 - }, - { - "x": 84, - "y": -29 - } - ], - "color": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -79, - "y": -29 - }, - { - "x": 41, - "y": -29 - } - ] - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -15, - "y": -21 - }, - { - "x": 1, - "y": -29 - }, - { - "x": -15, - "y": -36 - } - ] - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": 41, - "y": 51 - }, - { - "x": 41, - "y": -29 - } - ] - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": 33, - "y": 3 - }, - { - "x": 41, - "y": 22 - }, - { - "x": 50, - "y": 3 - } - ] - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -49, - "y": 51 - }, - { - "x": 81, - "y": 51 - } - ] - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -4, - "y": 59 - }, - { - "x": -19, - "y": 51 - }, - { - "x": -4, - "y": 43 - } - ] - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -59, - "y": 29 - }, - { - "x": -49, - "y": 11 - }, - { - "x": -39, - "y": 29 - } - ] - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -49, - "y": 51 - }, - { - "x": -49, - "y": -29 - } - ] - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -92, - "y": -49 - }, - { - "x": -9, - "y": -92 - } - ], - "textString": "\"%uLow\"", - "textColor": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": 2, - "y": -49 - }, - { - "x": 91, - "y": -92 - } - ], - "textString": "\"%uHigh\"", - "textColor": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -91, - "y": -49 - }, - { - "x": -8, - "y": -92 - } - ], - "lineColor": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -49, - "y": -29 - }, - { - "x": -49, - "y": -49 - } - ], - "color": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": 2, - "y": -49 - }, - { - "x": 91, - "y": -92 - } - ], - "lineColor": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": 41, - "y": -29 - }, - { - "x": 41, - "y": -49 - } - ], - "color": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -150, - "y": 150 - }, - { - "x": 150, - "y": 110 - } - ], - "textString": "\"%name\"", - "textColor": { - "r": 0, - "g": 0, - "b": 255 - } - } - } - ] - } - } - } - ] - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Documentation", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "info", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n

\nBlock that transforms a Real input signal into a Boolean\noutput signal:\n

\n\n

\nThe start value of the output is defined via parameter\npre_y_start (= value of pre(y) at initial time).\nThe default value of this parameter is false.\n

\n

\n\\\"Hysteresis.png\\\"\n

\n\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "revisions", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n\n\"" - } - } - } - } - } - ] - } - } - } - } - ] - } - } - } - } - ], - "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Hysteresis.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Hysteresis.mo", - "checksum": "e3bb40d8e0a542b39b1310b7a889da12" -} \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Min.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Min.json deleted file mode 100644 index 7d7f164a..00000000 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Min.json +++ /dev/null @@ -1,339 +0,0 @@ -{ - "within": "Buildings.Controls.OBC.CDL.Continuous", - "class_definition": [ - { - "class_prefixes": "block", - "class_specifier": { - "long_class_specifier": { - "identifier": "Min", - "description_string": "Pass through the smallest signal", - "composition": { - "element_list": [ - { - "component_clause": { - "type_specifier": "Interfaces.RealInput", - "component_list": [ - { - "declaration": { - "identifier": "u1" - }, - "description": { - "description_string": "Connector of Real input signal 1", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": 40 - }, - { - "x": -100, - "y": 80 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Interfaces.RealInput", - "component_list": [ - { - "declaration": { - "identifier": "u2" - }, - "description": { - "description_string": "Connector of Real input signal 2", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -80 - }, - { - "x": -100, - "y": -40 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Interfaces.RealOutput", - "component_list": [ - { - "declaration": { - "identifier": "y" - }, - "description": { - "description_string": "Connector of Real output signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, - { - "x": 140, - "y": 20 - } - ] - } - } - } - } - } - ] - } - } - ] - } - } - ], - "element_sections": [ - { - "equation_section": { - "equation": [ - { - "assignment_equation": { - "lhs": "y", - "rhs": { - "simple_expression": { - "function_call": { - "name": "min", - "arguments": [ - { - "name": "u1" - }, - { - "name": "u2" - } - ] - } - } - } - } - } - ] - } - } - ], - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "defaultComponentName", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"min\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Documentation", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "info", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n

\nBlock that outputs y = min(u1, u2),\nwhere\nu1 and u2 are inputs.\n

\n\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "revisions", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n\n\"" - } - } - } - } - } - ] - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Icon", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "coordinateSystem": { - "extent": [ - { - "x": -100, - "y": -100 - }, - { - "x": 100, - "y": 100 - } - ], - "preserveAspectRatio": "true" - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "graphics": [ - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -100, - "y": -100 - }, - { - "x": 100, - "y": 100 - } - ], - "lineColor": { - "r": 0, - "g": 0, - "b": 127 - }, - "fillColor": { - "r": 255, - "g": 255, - "b": 255 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -150, - "y": 150 - }, - { - "x": 150, - "y": 110 - } - ], - "textString": "\"%name\"", - "textColor": { - "r": 0, - "g": 0, - "b": 255 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -90, - "y": 36 - }, - { - "x": 90, - "y": -36 - } - ], - "textString": "\"min()\"", - "textColor": { - "r": 160, - "g": 160, - "b": 164 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": 226, - "y": 60 - }, - { - "x": 106, - "y": 10 - } - ], - "textString": "DynamicSelect(\"\",String(y", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - } - } - } - ] - } - } - } - ] - } - } - } - } - ] - } - } - } - } - ], - "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Min.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Min.mo", - "checksum": "93166341093dbcde4c81c2ee516a295d" -} \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/PID.json b/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/PID.json deleted file mode 100644 index 3666a9b2..00000000 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/PID.json +++ /dev/null @@ -1,5127 +0,0 @@ -{ - "within": "Buildings.Controls.OBC.CDL.Continuous", - "class_definition": [ - { - "class_prefixes": "block", - "class_specifier": { - "long_class_specifier": { - "identifier": "PID", - "description_string": "P, PI, PD, and PID controller", - "composition": { - "element_list": [ - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Buildings.Controls.OBC.CDL.Types.SimpleController", - "component_list": [ - { - "declaration": { - "identifier": "controllerType", - "modification": { - "equal": true, - "expression": { - "simple_expression": "Buildings.Controls.OBC.CDL.Types.SimpleController.PI" - } - } - }, - "description": { - "description_string": "Type of controller" - } - } - ] - } - }, - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Real", - "component_list": [ - { - "declaration": { - "identifier": "k", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "min", - "modification": { - "equal": true, - "expression": { - "simple_expression": "100*Constants.eps" - } - } - } - } - } - ], - "equal": true, - "expression": { - "simple_expression": "1" - } - } - }, - "description": { - "description_string": "Gain of controller", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Control gains\"" - } - } - } - } - } - ] - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Real", - "component_list": [ - { - "declaration": { - "identifier": "Ti", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "quantity", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Time\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "unit", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"s\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "min", - "modification": { - "equal": true, - "expression": { - "simple_expression": "100*Constants.eps" - } - } - } - } - } - ], - "equal": true, - "expression": { - "simple_expression": "0.5" - } - } - }, - "description": { - "description_string": "Time constant of integrator block", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Control gains\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "enable", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PI" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Real", - "component_list": [ - { - "declaration": { - "identifier": "Td", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "quantity", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Time\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "unit", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"s\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "min", - "modification": { - "equal": true, - "expression": { - "simple_expression": "100*Constants.eps" - } - } - } - } - } - ], - "equal": true, - "expression": { - "simple_expression": "0.1" - } - } - }, - "description": { - "description_string": "Time constant of derivative block", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Control gains\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "enable", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PD" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Real", - "component_list": [ - { - "declaration": { - "identifier": "r", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "min", - "modification": { - "equal": true, - "expression": { - "simple_expression": "100*Constants.eps" - } - } - } - } - } - ], - "equal": true, - "expression": { - "simple_expression": "1" - } - } - }, - "description": { - "description_string": "Typical range of control error, used for scaling the control error" - } - } - ] - } - }, - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Real", - "component_list": [ - { - "declaration": { - "identifier": "yMax", - "modification": { - "equal": true, - "expression": { - "simple_expression": "1" - } - } - }, - "description": { - "description_string": "Upper limit of output", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Limits\"" - } - } - } - } - } - ] - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Real", - "component_list": [ - { - "declaration": { - "identifier": "yMin", - "modification": { - "equal": true, - "expression": { - "simple_expression": "0" - } - } - }, - "description": { - "description_string": "Lower limit of output", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Limits\"" - } - } - } - } - } - ] - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Real", - "component_list": [ - { - "declaration": { - "identifier": "Ni", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "min", - "modification": { - "equal": true, - "expression": { - "simple_expression": "100*Constants.eps" - } - } - } - } - } - ], - "equal": true, - "expression": { - "simple_expression": "0.9" - } - } - }, - "description": { - "description_string": "Ni*Ti is time constant of anti-windup compensation", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "tab", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Advanced\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Integrator anti-windup\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "enable", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PI" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Real", - "component_list": [ - { - "declaration": { - "identifier": "Nd", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "min", - "modification": { - "equal": true, - "expression": { - "simple_expression": "100*Constants.eps" - } - } - } - } - } - ], - "equal": true, - "expression": { - "simple_expression": "10" - } - } - }, - "description": { - "description_string": "The higher Nd, the more ideal the derivative block", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "tab", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Advanced\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Derivative block\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "enable", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PD" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Real", - "component_list": [ - { - "declaration": { - "identifier": "xi_start", - "modification": { - "equal": true, - "expression": { - "simple_expression": "0" - } - } - }, - "description": { - "description_string": "Initial value of integrator state", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "tab", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Advanced\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Initialization\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "enable", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PI" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Real", - "component_list": [ - { - "declaration": { - "identifier": "yd_start", - "modification": { - "equal": true, - "expression": { - "simple_expression": "0" - } - } - }, - "description": { - "description_string": "Initial value of derivative output", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "tab", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Advanced\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Initialization\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "enable", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PD" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Boolean", - "component_list": [ - { - "declaration": { - "identifier": "reverseActing", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - }, - "description": { - "description_string": "Set to true for reverse acting, or false for direct acting control action" - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealInput", - "component_list": [ - { - "declaration": { - "identifier": "u_s" - }, - "description": { - "description_string": "Connector of setpoint input signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -260, - "y": -20 - }, - { - "x": -220, - "y": 20 - } - ] - }, - "iconTransformation": { - "extent": [ - { - "x": -140, - "y": -20 - }, - { - "x": -100, - "y": 20 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealInput", - "component_list": [ - { - "declaration": { - "identifier": "u_m" - }, - "description": { - "description_string": "Connector of measurement input signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "origin": { - "x": 0, - "y": -220 - }, - "extent": [ - { - "x": 20, - "y": -20 - }, - { - "x": -20, - "y": 20 - } - ], - "rotation": 270 - }, - "iconTransformation": { - "origin": { - "x": 0, - "y": -120 - }, - "extent": [ - { - "x": 20, - "y": -20 - }, - { - "x": -20, - "y": 20 - } - ], - "rotation": 270 - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealOutput", - "component_list": [ - { - "declaration": { - "identifier": "y" - }, - "description": { - "description_string": "Connector of actuator output signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 220, - "y": -20 - }, - { - "x": 260, - "y": 20 - } - ] - }, - "iconTransformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, - { - "x": 140, - "y": 20 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", - "component_list": [ - { - "declaration": { - "identifier": "controlError" - }, - "description": { - "description_string": "Control error (set point - measurement)", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -200, - "y": -16 - }, - { - "x": -180, - "y": 4 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter", - "component_list": [ - { - "declaration": { - "identifier": "P", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "k" - } - } - } - } - } - ] - } - }, - "description": { - "description_string": "Gain for proportional control action", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -50, - "y": 130 - }, - { - "x": -30, - "y": 150 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.IntegratorWithReset", - "component_list": [ - { - "declaration": { - "identifier": "I", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "k/Ti" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "y_start", - "modification": { - "equal": true, - "expression": { - "simple_expression": "xi_start" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_I" - } - }, - "description": { - "description_string": "Integral term", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -50, - "y": -10 - }, - { - "x": -30, - "y": 10 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Derivative", - "component_list": [ - { - "declaration": { - "identifier": "D", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "y_start", - "modification": { - "equal": true, - "expression": { - "simple_expression": "yd_start" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_D" - } - }, - "description": { - "description_string": "Derivative term", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -50, - "y": 60 - }, - { - "x": -30, - "y": 80 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", - "component_list": [ - { - "declaration": { - "identifier": "errP" - }, - "description": { - "description_string": "P error", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": 130 - }, - { - "x": -120, - "y": 150 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", - "component_list": [ - { - "declaration": { - "identifier": "errD" - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_D" - } - }, - "description": { - "description_string": "D error", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": 60 - }, - { - "x": -120, - "y": 80 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", - "component_list": [ - { - "declaration": { - "identifier": "errI1" - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_I" - } - }, - "description": { - "description_string": "I error (before anti-windup compensation)", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -4 - }, - { - "x": -120, - "y": 16 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", - "component_list": [ - { - "declaration": { - "identifier": "errI2" - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_I" - } - }, - "description": { - "description_string": "I error (after anti-windup compensation)", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -100, - "y": -10 - }, - { - "x": -80, - "y": 10 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Limiter", - "component_list": [ - { - "declaration": { - "identifier": "lim", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "uMax", - "modification": { - "equal": true, - "expression": { - "simple_expression": "yMax" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "uMin", - "modification": { - "equal": true, - "expression": { - "simple_expression": "yMin" - } - } - } - } - } - ] - } - }, - "description": { - "description_string": "Limiter", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 120, - "y": 80 - }, - { - "x": 140, - "y": 100 - } - ] - } - } - } - } - } - ] - } - } - ] - } - } - ], - "element_sections": [ - { - "protected_element_list": [ - { - "final": true, - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Real", - "component_list": [ - { - "declaration": { - "identifier": "revAct", - "modification": { - "equal": true, - "expression": { - "if_expression": { - "if_elseif": [ - { - "condition": { - "simple_expression": "reverseActing" - }, - "then": { - "simple_expression": "1" - } - } - ], - "else_expression": { - "simple_expression": "-1" - } - } - } - } - }, - "description": { - "description_string": "Switch for sign for reverse or direct acting controller" - } - } - ] - } - }, - { - "final": true, - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Boolean", - "component_list": [ - { - "declaration": { - "identifier": "with_I", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "Buildings.Controls.OBC.CDL.Types.SimpleController.PI" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "Buildings.Controls.OBC.CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - }, - "description": { - "description_string": "Boolean flag to enable integral action", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Evaluate", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "HideResult", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - } - ] - } - } - ] - } - }, - { - "final": true, - "component_clause": { - "type_prefix": "parameter", - "type_specifier": "Boolean", - "component_list": [ - { - "declaration": { - "identifier": "with_D", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "Buildings.Controls.OBC.CDL.Types.SimpleController.PD" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "Buildings.Controls.OBC.CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - }, - "description": { - "description_string": "Boolean flag to enable derivative action", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Evaluate", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "HideResult", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Sources.Constant", - "component_list": [ - { - "declaration": { - "identifier": "kDer", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "k*Td" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_D" - } - }, - "description": { - "description_string": "Gain for derivative block", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -100, - "y": 110 - }, - { - "x": -80, - "y": 130 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Sources.Constant", - "component_list": [ - { - "declaration": { - "identifier": "TDer", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "Td/Nd" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_D" - } - }, - "description": { - "description_string": "Time constant for approximation in derivative block", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -100, - "y": 80 - }, - { - "x": -80, - "y": 100 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Sources.Constant", - "component_list": [ - { - "declaration": { - "identifier": "Dzero", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "0" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "not with_D" - } - }, - "description": { - "description_string": "Zero input signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Evaluate", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "HideResult", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -50, - "y": 90 - }, - { - "x": -30, - "y": 110 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter", - "component_list": [ - { - "declaration": { - "identifier": "uS_revAct", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "revAct/r" - } - } - } - } - } - ] - } - }, - "description": { - "description_string": "Set point multiplied by reverse action sign", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -200, - "y": 30 - }, - { - "x": -180, - "y": 50 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter", - "component_list": [ - { - "declaration": { - "identifier": "uMea_revAct", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "revAct/r" - } - } - } - } - } - ] - } - }, - "description": { - "description_string": "Set point multiplied by reverse action sign", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -200, - "y": -50 - }, - { - "x": -180, - "y": -30 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Add", - "component_list": [ - { - "declaration": { - "identifier": "addPD" - }, - "description": { - "description_string": "Outputs P and D gains added", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 20, - "y": 124 - }, - { - "x": 40, - "y": 144 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Add", - "component_list": [ - { - "declaration": { - "identifier": "addPID" - }, - "description": { - "description_string": "Outputs P, I and D gains added", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 80, - "y": 80 - }, - { - "x": 100, - "y": 100 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", - "component_list": [ - { - "declaration": { - "identifier": "antWinErr" - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_I" - } - }, - "description": { - "description_string": "Error for anti-windup compensation", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 160, - "y": 50 - }, - { - "x": 180, - "y": 70 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter", - "component_list": [ - { - "declaration": { - "identifier": "antWinGai", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "1/(k*Ni)" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_I" - } - }, - "description": { - "description_string": "Gain for anti-windup compensation", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 180, - "y": -30 - }, - { - "x": 160, - "y": -10 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Logical.Sources.Constant", - "component_list": [ - { - "declaration": { - "identifier": "cheYMinMax", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "yMin" - }, - { - "name": "yMax" - } - ], - "relation_operator": "<" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - }, - "description": { - "description_string": "Check for values of yMin and yMax", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 120, - "y": -160 - }, - { - "x": 140, - "y": -140 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Utilities.Assert", - "component_list": [ - { - "declaration": { - "identifier": "assMesYMinMax", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "message", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"LimPID: Limits must be yMin < yMax\"" - } - } - } - } - } - ] - } - }, - "description": { - "description_string": "Assertion on yMin and yMax", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 160, - "y": -160 - }, - { - "x": 180, - "y": -140 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Sources.Constant", - "component_list": [ - { - "declaration": { - "identifier": "Izero", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "0" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "not with_I" - } - }, - "description": { - "description_string": "Zero input signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -50, - "y": 20 - }, - { - "x": -30, - "y": 40 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Sources.Constant", - "component_list": [ - { - "declaration": { - "identifier": "con", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "0" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_I" - } - }, - "description": { - "description_string": "Constant zero", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -100, - "y": -50 - }, - { - "x": -80, - "y": -30 - } - ] - } - } - } - } - } - ] - } - } - ] - } - }, - { - "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Logical.Sources.Constant", - "component_list": [ - { - "declaration": { - "identifier": "con1", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "false" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_I" - } - }, - "description": { - "description_string": "Constant false", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -100, - "y": -90 - }, - { - "x": -80, - "y": -70 - } - ] - } - } - } - } - } - ] - } - } - ] - } - } - ] - }, - { - "equation_section": { - "equation": [ - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "u_s" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "uS_revAct" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -240, - "y": 0 - }, - { - "x": -210, - "y": 0 - }, - { - "x": -210, - "y": 40 - }, - { - "x": -202, - "y": 40 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "u_m" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "uMea_revAct" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": 0, - "y": -220 - }, - { - "x": 0, - "y": -160 - }, - { - "x": -210, - "y": -160 - }, - { - "x": -210, - "y": -40 - }, - { - "x": -202, - "y": -40 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "D" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "errD" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -52, - "y": 70 - }, - { - "x": -118, - "y": 70 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "errI1" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u1" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "uS_revAct" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -142, - "y": 12 - }, - { - "x": -170, - "y": 12 - }, - { - "x": -170, - "y": 40 - }, - { - "x": -178, - "y": 40 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "addPID" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u1" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "addPD" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": 78, - "y": 96 - }, - { - "x": 50, - "y": 96 - }, - { - "x": 50, - "y": 134 - }, - { - "x": 42, - "y": 134 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "lim" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "y" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": 142, - "y": 90 - }, - { - "x": 200, - "y": 90 - }, - { - "x": 200, - "y": 0 - }, - { - "x": 240, - "y": 0 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "antWinErr" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "antWinGai" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": 182, - "y": 60 - }, - { - "x": 190, - "y": 60 - }, - { - "x": 190, - "y": -20 - }, - { - "x": 182, - "y": -20 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "addPD" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u2" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "Dzero" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": 18, - "y": 128 - }, - { - "x": -10, - "y": 128 - }, - { - "x": -10, - "y": 100 - }, - { - "x": -28, - "y": 100 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "D" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "addPD" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u2" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -28, - "y": 70 - }, - { - "x": -10, - "y": 70 - }, - { - "x": -10, - "y": 128 - }, - { - "x": 18, - "y": 128 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "addPID" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u2" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "I" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": 78, - "y": 84 - }, - { - "x": 60, - "y": 84 - }, - { - "x": 60, - "y": 0 - }, - { - "x": -28, - "y": 0 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "antWinErr" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u2" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "lim" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": 158, - "y": 54 - }, - { - "x": 150, - "y": 54 - }, - { - "x": 150, - "y": 90 - }, - { - "x": 142, - "y": 90 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "I" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "errI2" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -52, - "y": 0 - }, - { - "x": -78, - "y": 0 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "errI1" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "errI2" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u1" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -118, - "y": 6 - }, - { - "x": -102, - "y": 6 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "cheYMinMax" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "assMesYMinMax" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": 142, - "y": -150 - }, - { - "x": 158, - "y": -150 - } - ], - "color": { - "r": 255, - "g": 0, - "b": 255 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "Izero" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "addPID" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u2" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -28, - "y": 30 - }, - { - "x": 60, - "y": 30 - }, - { - "x": 60, - "y": 84 - }, - { - "x": 78, - "y": 84 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "con" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "I" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y_reset_in" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -78, - "y": -40 - }, - { - "x": -60, - "y": -40 - }, - { - "x": -60, - "y": -8 - }, - { - "x": -52, - "y": -8 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "con1" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "I" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "trigger" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -78, - "y": -80 - }, - { - "x": -40, - "y": -80 - }, - { - "x": -40, - "y": -12 - } - ], - "color": { - "r": 255, - "g": 0, - "b": 255 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "uS_revAct" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "errP" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u1" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -178, - "y": 40 - }, - { - "x": -170, - "y": 40 - }, - { - "x": -170, - "y": 146 - }, - { - "x": -142, - "y": 146 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "errD" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u1" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "uS_revAct" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -142, - "y": 76 - }, - { - "x": -170, - "y": 76 - }, - { - "x": -170, - "y": 40 - }, - { - "x": -178, - "y": 40 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "addPD" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u1" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "P" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": 18, - "y": 140 - }, - { - "x": -28, - "y": 140 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "P" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "errP" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -52, - "y": 140 - }, - { - "x": -118, - "y": 140 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "addPID" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "lim" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": 102, - "y": 90 - }, - { - "x": 118, - "y": 90 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "addPID" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "antWinErr" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u1" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": 102, - "y": 90 - }, - { - "x": 114, - "y": 90 - }, - { - "x": 114, - "y": 66 - }, - { - "x": 158, - "y": 66 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "u_s" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "controlError" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u1" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -240, - "y": 0 - }, - { - "x": -202, - "y": 0 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "u_m" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "controlError" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u2" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": 0, - "y": -220 - }, - { - "x": 0, - "y": -160 - }, - { - "x": -210, - "y": -160 - }, - { - "x": -210, - "y": -12 - }, - { - "x": -202, - "y": -12 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "uMea_revAct" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "errP" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u2" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -178, - "y": -40 - }, - { - "x": -150, - "y": -40 - }, - { - "x": -150, - "y": 134 - }, - { - "x": -142, - "y": 134 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "uMea_revAct" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "errD" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u2" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -178, - "y": -40 - }, - { - "x": -150, - "y": -40 - }, - { - "x": -150, - "y": 64 - }, - { - "x": -142, - "y": 64 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "uMea_revAct" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "errI1" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u2" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -178, - "y": -40 - }, - { - "x": -150, - "y": -40 - }, - { - "x": -150, - "y": 0 - }, - { - "x": -142, - "y": 0 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "antWinGai" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "errI2" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "u2" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": 158, - "y": -20 - }, - { - "x": -110, - "y": -20 - }, - { - "x": -110, - "y": -6 - }, - { - "x": -102, - "y": -6 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "kDer" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "D" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "k" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -78, - "y": 120 - }, - { - "x": -58, - "y": 120 - }, - { - "x": -58, - "y": 78 - }, - { - "x": -52, - "y": 78 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - }, - { - "connect_clause": { - "from": [ - { - "dot_op": false, - "identifier": "TDer" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "y" - } - ], - "to": [ - { - "dot_op": false, - "identifier": "D" - }, - { - "dot_op": true - }, - { - "dot_op": false, - "identifier": "T" - } - ] - }, - "description": { - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Line": { - "points": [ - { - "x": -78, - "y": 90 - }, - { - "x": -60, - "y": 90 - }, - { - "x": -60, - "y": 74 - }, - { - "x": -52, - "y": 74 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - } - } - } - ] - } - } - ] - } - } - ], - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "defaultComponentName", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"conPID\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Icon", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "coordinateSystem": { - "extent": [ - { - "x": -100, - "y": -100 - }, - { - "x": 100, - "y": 100 - } - ] - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "graphics": [ - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -100, - "y": -100 - }, - { - "x": 100, - "y": 100 - } - ], - "lineColor": { - "r": 0, - "g": 0, - "b": 127 - }, - "fillColor": { - "r": 255, - "g": 255, - "b": 255 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -6, - "y": -20 - }, - { - "x": 66, - "y": -66 - } - ], - "lineColor": { - "r": 255, - "g": 255, - "b": 255 - }, - "fillColor": { - "r": 255, - "g": 255, - "b": 255 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -32, - "y": -22 - }, - { - "x": 68, - "y": -62 - } - ], - "textString": "\"P\"", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "visible": "([object Object])", - "fillColor": { - "r": 175, - "g": 175, - "b": 175 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -26, - "y": -22 - }, - { - "x": 74, - "y": -62 - } - ], - "textString": "\"PI\"", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "visible": "([object Object])", - "fillColor": { - "r": 175, - "g": 175, - "b": 175 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -16, - "y": -22 - }, - { - "x": 88, - "y": -62 - } - ], - "textString": "\"P D\"", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "visible": "([object Object])", - "fillColor": { - "r": 175, - "g": 175, - "b": 175 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -14, - "y": -22 - }, - { - "x": 86, - "y": -62 - } - ], - "textString": "\"PID\"", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "visible": "([object Object])", - "fillColor": { - "r": 175, - "g": 175, - "b": 175 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Polygon", - "attribute": { - "points": [ - { - "x": -80, - "y": 82 - }, - { - "x": -88, - "y": 60 - }, - { - "x": -72, - "y": 60 - }, - { - "x": -80, - "y": 82 - } - ], - "lineColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -80, - "y": 68 - }, - { - "x": -80, - "y": -100 - } - ], - "color": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -90, - "y": -80 - }, - { - "x": 70, - "y": -80 - } - ], - "color": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Polygon", - "attribute": { - "points": [ - { - "x": 74, - "y": -80 - }, - { - "x": 52, - "y": -72 - }, - { - "x": 52, - "y": -88 - }, - { - "x": 74, - "y": -80 - } - ], - "lineColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -150, - "y": 150 - }, - { - "x": 150, - "y": 110 - } - ], - "textString": "\"%name\"", - "textColor": { - "r": 0, - "g": 0, - "b": 255 - } - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -80, - "y": -80 - }, - { - "x": -80, - "y": -22 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 0 - } - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -80, - "y": -22 - }, - { - "x": 6, - "y": 56 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 0 - } - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": 6, - "y": 56 - }, - { - "x": 68, - "y": 56 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 0 - } - } - }, - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": 100, - "y": -100 - }, - { - "x": 84, - "y": -100 - }, - { - "x": null, - "y": null - }, - { - "x": 100, - "y": -100 - }, - { - "x": 84, - "y": null - } - ], - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 175, - "g": 175, - "b": 175 - }, - "pattern": "LinePattern.None", - "fillPattern": "FillPattern.Solid" - } - } - ] - } - } - } - ] - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Diagram", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "coordinateSystem": { - "extent": [ - { - "x": -220, - "y": -200 - }, - { - "x": 220, - "y": 200 - } - ] - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "graphics": [ - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -56, - "y": 180 - }, - { - "x": -24, - "y": -16 - } - ], - "fillColor": { - "r": 215, - "g": 215, - "b": 215 - }, - "pattern": "LinePattern.None", - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -52, - "y": 184 - }, - { - "x": -28, - "y": 156 - } - ], - "textString": "\"PID\"", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 215, - "g": 215, - "b": 215 - }, - "pattern": "LinePattern.None", - "fillPattern": "FillPattern.Solid" - } - } - ] - } - } - } - ] - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Documentation", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "info", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n

\nPID controller in the standard form\n

\n

\nyu = k/r   (e(t) + 1 ⁄ Ti   ∫ e(τ) dτ + Td d⁄dt e(t)),\n

\n

\nwhere\nyu is the control signal before output limitation,\ne(t) = us(t) - um(t) is the control error,\nwith us being the set point and um being\nthe measured quantity,\nk is the gain,\nTi is the time constant of the integral term,\nTd is the time constant of the derivative term,\nand\nr is a scaling factor, with default r=1.\nThe scaling factor should be set to the typical order of magnitude of the range of the error e.\nFor example, you may set r=100 to r=1000\nif the control input is a pressure of a heating water circulation pump in units of Pascal, or\nleave r=1 if the control input is a room temperature.\n

\n

\nNote that the units of k are the inverse of the units of the control error,\nwhile the units of Ti and Td are seconds.\n

\n

\nThe actual control output is\n

\n

\ny = min( ymax, max( ymin, y)),\n

\n

\nwhere ymin and ymax are limits for the control signal.\n

\n

P, PI, PD, or PID action

\n

\nThrough the parameter controllerType, the controller can be configured\nas P, PI, PD or PID controller. The default configuration is PI.\n

\n

Reverse or direct action

\n

\nThrough the parameter reverseActing, the controller can be configured to\nbe reverse or direct acting.\nThe above standard form is reverse acting, which is the default configuration.\nFor a reverse acting controller, for a constant set point,\nan increase in measurement signal u_m decreases the control output signal y\n(Montgomery and McDowall, 2008).\nThus,\n

\n\n

\nIf reverseAction=false, then the error e above is multiplied by -1.\n

\n

Anti-windup compensation

\n

\nThe controller anti-windup compensation is as follows:\nInstead of the above basic control law, the implementation is\n

\n

\nyu = k   (e(t) ⁄ r + 1 ⁄ Ti   ∫ (-Δy + e(τ) ⁄ r) dτ + Td ⁄ r d⁄dt e(t)),\n

\n

\nwhere the anti-windup compensation Δy is\n

\n

\nΔy = (yu - y) ⁄ (k Ni),\n

\n

\nwhere\nNi > 0 is the time constant for the anti-windup compensation.\nTo accelerate the anti-windup, decrease Ni.\n

\n

\nNote that the anti-windup term (-Δy + e(τ) ⁄ r) shows that the range of\nthe typical control error r should be set to a reasonable value so that\n

\n

\ne(τ) ⁄ r = (us(τ) - um(τ)) ⁄ r\n

\n

\nhas order of magnitude one, and hence the anti-windup compensation should work well.\n

\n

Reset of the controller output

\n

\nNote that this controller implements an integrator anti-windup. Therefore,\nfor most applications, the controller output does not need to be reset.\nHowever, if the controller is used in conjuction with equipment that is being\nswitched on, better control performance may be achieved by resetting the controller\noutput when the equipment is switched on. This is in particular the case in situations\nwhere the equipment control input should continuously increase as the equipment is\nswitched on, such as a light dimmer that may slowly increase the luminance, or\na variable speed drive of a motor that should continuously increase the speed. In\nthis case, the controller\n\nBuildings.Controls.OBC.CDL.Continuous.PIDWithReset\nthat can reset the output should be used.\n

\n

Approximation of the derivative term

\n

\nThe derivative of the control error d ⁄ dt e(t) is approximated using\n

\n

\nd⁄dt x(t) = (e(t)-x(t)) Nd ⁄ Td,\n

\n

\nand\n

\n

\nd⁄dt e(t) ≈ Nd (e(t)-x(t)),\n

\n

\nwhere x(t) is an internal state.\n

\n

Guidance for tuning the control gains

\n

\nThe parameters of the controller can be manually adjusted by performing\nclosed loop tests (= controller + plant connected\ntogether) and using the following strategy:\n

\n
    \n
  1. Set very large limits, e.g., set ymax = 1000.\n
  2. \n
  3. \nSelect a P-controller and manually enlarge the parameter k\n(the total gain of the controller) until the closed-loop response\ncannot be improved any more.\n
  4. \n
  5. \nSelect a PI-controller and manually adjust the parameters\nk and Ti (the time constant of the integrator).\nThe first value of Ti can be selected such that it is in the\norder of the time constant of the oscillations occurring with\nthe P-controller. If, e.g., oscillations in the order of 100 seconds\noccur in the previous step, start with Ti=1/100 seconds.\n
  6. \n
  7. \nIf you want to make the reaction of the control loop faster\n(but probably less robust against disturbances and measurement noise)\nselect a PID-controller and manually adjust parameters\nk, Ti, Td (time constant of derivative block).\n
  8. \n
  9. \nSet the limits yMax and yMin according to your specification.\n
  10. \n
  11. \nPerform simulations such that the output of the PID controller\ngoes in its limits. Tune Ni (Ni Ti is the time constant of\nthe anti-windup compensation) such that the input to the limiter\nblock (= lim.u) goes quickly enough back to its limits.\nIf Ni is decreased, this happens faster. If Ni is very large, the\nanti-windup compensation is not effective and the controller works bad.\n
  12. \n
\n

References

\n

\nR. Montgomery and R. McDowall (2008).\n\\\"Fundamentals of HVAC Control Systems.\\\"\nAmerican Society of Heating Refrigerating and Air-Conditioning Engineers Inc. Atlanta, GA.\n

\n\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "revisions", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n\n\"" - } - } - } - } - } - ] - } - } - } - } - ] - } - } - } - } - ], - "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/PID.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo", - "checksum": "b3012c697ff0a68eb89a7ed2a4fe3560" -} \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Integers/Equal.json b/test/reference/json/Buildings/Controls/OBC/CDL/Integers/Equal.json index c3774065..dd3253c9 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Integers/Equal.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Integers/Equal.json @@ -393,6 +393,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Integers/Equal.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Equal.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Equal.mo", "checksum": "6ed015e965db594da3ea7128c250435e" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.json b/test/reference/json/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.json index 00076acc..aa8c9df6 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.json @@ -353,6 +353,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Integers/Sources/Constant.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.mo", "checksum": "b6ddb71adcf641c588fbbbac670d26fb" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.json b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.json index e6aea6a2..134448a7 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.json @@ -233,6 +233,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.mo", "checksum": "60968b727525188ed9398920679cf1c0" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.json b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.json index ec85ab96..54db6ea9 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.json @@ -233,6 +233,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.mo", "checksum": "c78a9b5c56f73ed93e3f9540de58da55" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.json b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.json index e11983e7..f8912a97 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.json @@ -233,6 +233,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.mo", "checksum": "90e89432f618ecfdadb8b0a8f0519eef" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.json b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.json index ecb5cabf..59b1bff7 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.json @@ -233,6 +233,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.mo", "checksum": "ede894db694a80d4be6d85192821bb84" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/RealInput.json b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/RealInput.json index ed7eec5a..b4a175c7 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/RealInput.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/RealInput.json @@ -233,6 +233,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Interfaces/RealInput.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/RealInput.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/RealInput.mo", "checksum": "a30132f1d21aa2e2de2510da83ef73e5" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/RealOutput.json b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/RealOutput.json index 4956828b..956f68b1 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/RealOutput.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/RealOutput.json @@ -229,6 +229,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Interfaces/RealOutput.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/RealOutput.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/RealOutput.mo", "checksum": "406cab1b75e3627433076597d6aebd71" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/package.json b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/package.json index 22425437..635cc950 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/package.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Interfaces/package.json @@ -220,6 +220,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Interfaces/package.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/package.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/package.mo", "checksum": "14a2fca3933efe182b89261ed74bfe93" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/And.json b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/And.json index 426c371f..474fe1de 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/And.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/And.json @@ -376,6 +376,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Logical/And.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/And.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/And.mo", "checksum": "abb4a9c072fed007645ee9127a8371e1" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Not.json b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Not.json index f8483468..6e492102 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Not.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Not.json @@ -292,6 +292,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Logical/Not.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Not.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Not.mo", "checksum": "7dbcd7ef6c82dd1ea995367b1c5e1e6a" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Or.json b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Or.json index 9ae5c612..7221879f 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Or.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Or.json @@ -376,6 +376,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Logical/Or.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Or.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Or.mo", "checksum": "670ac5112525c56af6333d275885e875" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.json b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.json index d25d7d4b..3fba35bc 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.json @@ -376,6 +376,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Logical/Sources/Constant.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.mo", "checksum": "821d92c8b1c3a28aee8ea6c2bf037c7f" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueDelay.json b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueDelay.json index 13f897a2..a59c2fca 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueDelay.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueDelay.json @@ -730,6 +730,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo", "checksum": "4d4cddbe92a5451b488ada4eac810f92" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.json b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.json index 6c9c325f..b3fa4d31 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.json @@ -835,7 +835,13 @@ { "dot_op": false, "identifier": "outPort", - "array_subscripts": [] + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] } ], "to": [ @@ -951,7 +957,13 @@ { "dot_op": false, "identifier": "outPort", - "array_subscripts": [] + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] } ], "to": [ @@ -1026,7 +1038,13 @@ { "dot_op": false, "identifier": "inPort", - "array_subscripts": [] + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] } ] }, @@ -1569,7 +1587,13 @@ { "dot_op": false, "identifier": "inPort", - "array_subscripts": [] + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] } ] }, @@ -1635,7 +1659,13 @@ { "dot_op": false, "identifier": "inPort", - "array_subscripts": [] + "array_subscripts": [ + { + "expression": { + "simple_expression": "2" + } + } + ] } ] }, @@ -1697,7 +1727,13 @@ { "dot_op": false, "identifier": "inPort", - "array_subscripts": [] + "array_subscripts": [ + { + "expression": { + "simple_expression": "2" + } + } + ] } ] }, @@ -1758,7 +1794,13 @@ { "dot_op": false, "identifier": "outPort", - "array_subscripts": [] + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] } ], "to": [ @@ -1828,7 +1870,13 @@ { "dot_op": false, "identifier": "outPort", - "array_subscripts": [] + "array_subscripts": [ + { + "expression": { + "simple_expression": "2" + } + } + ] } ], "to": [ @@ -2513,6 +2561,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo", "checksum": "d3d500d5e52ce2d22a6b926b26115822" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.json b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.json index cb1acf2b..9500b144 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.json @@ -454,7 +454,13 @@ { "dot_op": false, "identifier": "outPort", - "array_subscripts": [] + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] } ], "to": [ @@ -633,7 +639,13 @@ { "dot_op": false, "identifier": "inPort", - "array_subscripts": [] + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] } ] }, @@ -768,7 +780,13 @@ { "dot_op": false, "identifier": "inPort", - "array_subscripts": [] + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] } ] }, @@ -813,7 +831,13 @@ { "dot_op": false, "identifier": "outPort", - "array_subscripts": [] + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] } ], "to": [ @@ -1184,6 +1208,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo", "checksum": "3f59d58e38a2801b2f79b0bcb847b674" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Add.json b/test/reference/json/Buildings/Controls/OBC/CDL/Reals/Add.json similarity index 98% rename from test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Add.json rename to test/reference/json/Buildings/Controls/OBC/CDL/Reals/Add.json index c47f6374..911a0710 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Add.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Reals/Add.json @@ -1,5 +1,5 @@ { - "within": "Buildings.Controls.OBC.CDL.Continuous", + "within": "Buildings.Controls.OBC.CDL.Reals", "class_definition": [ { "class_prefixes": "block", @@ -410,7 +410,7 @@ } } ], - "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Add.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Add.mo", - "checksum": "8821d8832a6cb126087d4c2f6d4b6306" + "modelicaFile": "Buildings/Controls/OBC/CDL/Reals/Add.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Add.mo", + "checksum": "8935beacbfae0ecbcb54890e5e52d0e3" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Derivative.json b/test/reference/json/Buildings/Controls/OBC/CDL/Reals/Derivative.json similarity index 99% rename from test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Derivative.json rename to test/reference/json/Buildings/Controls/OBC/CDL/Reals/Derivative.json index 6afae954..7122b33e 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Derivative.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Reals/Derivative.json @@ -1,5 +1,5 @@ { - "within": "Buildings.Controls.OBC.CDL.Continuous", + "within": "Buildings.Controls.OBC.CDL.Reals", "class_definition": [ { "class_prefixes": "block", @@ -776,7 +776,7 @@ } } ], - "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Derivative.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Derivative.mo", - "checksum": "09a6e1ca7dae22cfc4202a301eb3b638" + "modelicaFile": "Buildings/Controls/OBC/CDL/Reals/Derivative.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Derivative.mo", + "checksum": "02baea4c7904828cbd7f5e7d99b26c43" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.json b/test/reference/json/Buildings/Controls/OBC/CDL/Reals/IntegratorWithReset.json similarity index 98% rename from test/reference/json/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.json rename to test/reference/json/Buildings/Controls/OBC/CDL/Reals/IntegratorWithReset.json index b0f164bc..e28601c8 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Reals/IntegratorWithReset.json @@ -1,5 +1,5 @@ { - "within": "Buildings.Controls.OBC.CDL.Continuous", + "within": "Buildings.Controls.OBC.CDL.Reals", "class_definition": [ { "class_prefixes": "block", @@ -415,7 +415,7 @@ "y": 50 } ], - "fileName": "\"modelica://Buildings/Resources/Images/Controls/OBC/CDL/Continuous/int.png\"" + "fileName": "\"modelica://Buildings/Resources/Images/Controls/OBC/CDL/Reals/int.png\"" } }, { @@ -578,7 +578,7 @@ } } ], - "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.mo", - "checksum": "ab5f92089f8433dde642004a10b9f593" + "modelicaFile": "Buildings/Controls/OBC/CDL/Reals/IntegratorWithReset.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/IntegratorWithReset.mo", + "checksum": "89d7c69c235dcc9ebb07613b0d3a3077" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Limiter.json b/test/reference/json/Buildings/Controls/OBC/CDL/Reals/Limiter.json similarity index 98% rename from test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Limiter.json rename to test/reference/json/Buildings/Controls/OBC/CDL/Reals/Limiter.json index 93d4b99c..1c6aa024 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Limiter.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Reals/Limiter.json @@ -1,5 +1,5 @@ { - "within": "Buildings.Controls.OBC.CDL.Continuous", + "within": "Buildings.Controls.OBC.CDL.Reals", "class_definition": [ { "class_prefixes": "block", @@ -555,7 +555,7 @@ } } ], - "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Limiter.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Limiter.mo", - "checksum": "a9cbb98cfe8949e478e93ac296c2d928" + "modelicaFile": "Buildings/Controls/OBC/CDL/Reals/Limiter.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Limiter.mo", + "checksum": "1c4e972e729ef2669cf41617559278c8" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.json b/test/reference/json/Buildings/Controls/OBC/CDL/Reals/MultiplyByParameter.json similarity index 97% rename from test/reference/json/Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.json rename to test/reference/json/Buildings/Controls/OBC/CDL/Reals/MultiplyByParameter.json index 102bdb03..66bc7bfe 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Reals/MultiplyByParameter.json @@ -1,5 +1,5 @@ { - "within": "Buildings.Controls.OBC.CDL.Continuous", + "within": "Buildings.Controls.OBC.CDL.Reals", "class_definition": [ { "class_prefixes": "block", @@ -308,7 +308,7 @@ } } ], - "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.mo", - "checksum": "acfd19b67d5d6de2a573fc864d420d79" + "modelicaFile": "Buildings/Controls/OBC/CDL/Reals/MultiplyByParameter.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/MultiplyByParameter.mo", + "checksum": "b437136da7b6ca8036b2e38d776836e9" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.json b/test/reference/json/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.json similarity index 99% rename from test/reference/json/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.json rename to test/reference/json/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.json index d1423672..d20850a4 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.json @@ -1,5 +1,5 @@ { - "within": "Buildings.Controls.OBC.CDL.Continuous", + "within": "Buildings.Controls.OBC.CDL.Reals", "class_definition": [ { "class_prefixes": "block", @@ -1307,7 +1307,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Subtract", "component_list": [ { "declaration": { @@ -1344,7 +1344,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter", "component_list": [ { "declaration": { @@ -1399,7 +1399,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.IntegratorWithReset", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.IntegratorWithReset", "component_list": [ { "declaration": { @@ -1473,7 +1473,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Derivative", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Derivative", "component_list": [ { "declaration": { @@ -1533,7 +1533,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Subtract", "component_list": [ { "declaration": { @@ -1570,7 +1570,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Subtract", "component_list": [ { "declaration": { @@ -1612,7 +1612,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Subtract", "component_list": [ { "declaration": { @@ -1654,7 +1654,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Subtract", "component_list": [ { "declaration": { @@ -1696,7 +1696,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Limiter", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Limiter", "component_list": [ { "declaration": { @@ -2096,7 +2096,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Sources.Constant", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Sources.Constant", "component_list": [ { "declaration": { @@ -2182,7 +2182,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Sources.Constant", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Sources.Constant", "component_list": [ { "declaration": { @@ -2242,7 +2242,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter", "component_list": [ { "declaration": { @@ -2297,7 +2297,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter", "component_list": [ { "declaration": { @@ -2352,7 +2352,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Add", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Add", "component_list": [ { "declaration": { @@ -2389,7 +2389,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Add", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Add", "component_list": [ { "declaration": { @@ -2426,7 +2426,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Subtract", "component_list": [ { "declaration": { @@ -2468,7 +2468,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter", "component_list": [ { "declaration": { @@ -2527,7 +2527,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Sources.Constant", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Sources.Constant", "component_list": [ { "declaration": { @@ -2587,7 +2587,7 @@ }, { "component_clause": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Subtract", "component_list": [ { "declaration": { @@ -5385,7 +5385,7 @@ } } ], - "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo", - "checksum": "d0c4441c65a38db4440936d6dddcee1f" + "modelicaFile": "Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo", + "checksum": "40f9c903ceb35cd84af41063340a4076" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Sources/Constant.json b/test/reference/json/Buildings/Controls/OBC/CDL/Reals/Sources/Constant.json similarity index 97% rename from test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Sources/Constant.json rename to test/reference/json/Buildings/Controls/OBC/CDL/Reals/Sources/Constant.json index 45cee6eb..3372e3f1 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Sources/Constant.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Reals/Sources/Constant.json @@ -1,5 +1,5 @@ { - "within": "Buildings.Controls.OBC.CDL.Continuous.Sources", + "within": "Buildings.Controls.OBC.CDL.Reals.Sources", "class_definition": [ { "class_prefixes": "block", @@ -356,7 +356,7 @@ "modification": { "equal": true, "expression": { - "simple_expression": "\"\n

\nBlock that outputs a constant signal y = k,\nwhere k is a real-valued parameter.\n

\n

\n\\\"Constant.png\\\"\n

\n\"" + "simple_expression": "\"\n

\nBlock that outputs a constant signal y = k,\nwhere k is a real-valued parameter.\n

\n

\n\\\"Constant.png\\\"\n

\n\"" } } } @@ -386,7 +386,7 @@ } } ], - "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Sources/Constant.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Sources/Constant.mo", - "checksum": "4c2b726f0e9256ef8a977d61e097dc94" + "modelicaFile": "Buildings/Controls/OBC/CDL/Reals/Sources/Constant.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Sources/Constant.mo", + "checksum": "963f004099515bac4aafd5caef5d06e9" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Subtract.json b/test/reference/json/Buildings/Controls/OBC/CDL/Reals/Subtract.json similarity index 98% rename from test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Subtract.json rename to test/reference/json/Buildings/Controls/OBC/CDL/Reals/Subtract.json index f67eacc5..0f9dac77 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Subtract.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Reals/Subtract.json @@ -1,5 +1,5 @@ { - "within": "Buildings.Controls.OBC.CDL.Continuous", + "within": "Buildings.Controls.OBC.CDL.Reals", "class_definition": [ { "class_prefixes": "block", @@ -415,7 +415,7 @@ } } ], - "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Subtract.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Subtract.mo", - "checksum": "c58481fe88eb0dd9797c97b6f1ce6a35" + "modelicaFile": "Buildings/Controls/OBC/CDL/Reals/Subtract.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Subtract.mo", + "checksum": "704ee76cb193e3cc441ec5e59e454ee6" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Switch.json b/test/reference/json/Buildings/Controls/OBC/CDL/Reals/Switch.json similarity index 98% rename from test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Switch.json rename to test/reference/json/Buildings/Controls/OBC/CDL/Reals/Switch.json index 5d0dd06a..7ab4697c 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Continuous/Switch.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Reals/Switch.json @@ -1,5 +1,5 @@ { - "within": "Buildings.Controls.OBC.CDL.Continuous", + "within": "Buildings.Controls.OBC.CDL.Reals", "class_definition": [ { "class_prefixes": "block", @@ -556,7 +556,7 @@ } } ], - "modelicaFile": "Buildings/Controls/OBC/CDL/Continuous/Switch.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Switch.mo", - "checksum": "c1537dd689440d3a19faad3a211fdab1" + "modelicaFile": "Buildings/Controls/OBC/CDL/Reals/Switch.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Switch.mo", + "checksum": "e1a8e8bf86041c305c355af896a29ade" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Types/SimpleController.json b/test/reference/json/Buildings/Controls/OBC/CDL/Types/SimpleController.json index f6135b44..c3b69080 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Types/SimpleController.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Types/SimpleController.json @@ -61,39 +61,13 @@ } } ] - }, - "enum_list": [ - { - "identifier": "P", - "description": { - "description_string": "P controller" - } - }, - { - "identifier": "PI", - "description": { - "description_string": "PI controller" - } - }, - { - "identifier": "PD", - "description": { - "description_string": "PD controller" - } - }, - { - "identifier": "PID", - "description": { - "description_string": "PID controller" - } - } - ] + } } } } } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Types/SimpleController.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Types/SimpleController.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Types/SimpleController.mo", "checksum": "364ff20803d823cd1fd1233fcbb7a478" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/Utilities/Assert.json b/test/reference/json/Buildings/Controls/OBC/CDL/Utilities/Assert.json index 1ecaeae0..78713d7d 100644 --- a/test/reference/json/Buildings/Controls/OBC/CDL/Utilities/Assert.json +++ b/test/reference/json/Buildings/Controls/OBC/CDL/Utilities/Assert.json @@ -334,6 +334,6 @@ } ], "modelicaFile": "Buildings/Controls/OBC/CDL/Utilities/Assert.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Utilities/Assert.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Utilities/Assert.mo", "checksum": "bcd142f74409ef17549d475796277044" } \ No newline at end of file diff --git a/test/reference/json/Buildings/Controls/OBC/CDL/package.json b/test/reference/json/Buildings/Controls/OBC/CDL/package.json new file mode 100644 index 00000000..47cbd489 --- /dev/null +++ b/test/reference/json/Buildings/Controls/OBC/CDL/package.json @@ -0,0 +1,228 @@ +{ + "within": "Buildings.Controls.OBC", + "class_definition": [ + { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "CDL", + "description_string": "Package with blocks, examples and validation tests for control description language", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nPackage that has elementary input-output blocks\nthat form the Control Description Language (CDL).\nThe implementation is structured into sub-packages.\nThe packages Validation and Examples\ncontain validation and example models.\nThese are not part of the CDL specification, but rather\nimplemented to provide reference responses computed by the CDL blocks.\nFor a specification of CDL, see\n\nhttps://obc.lbl.gov/specification/cdl.html.\n

\n\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "revisions", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 200, + "g": 200, + "b": 200 + }, + "fillColor": { + "r": 248, + "g": 248, + "b": 248 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + } + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -80, + "y": -80 + }, + { + "x": -20, + "y": -20 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "fillColor": { + "r": 76, + "g": 76, + "b": 76 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 0, + "y": -80 + }, + { + "x": 60, + "y": -20 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 60 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -80, + "y": 0 + }, + { + "x": -20, + "y": 60 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ], + "modelicaFile": "Buildings/Controls/OBC/CDL/package.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/package.mo", + "checksum": "9d29b1fb921cf0ca0342b4e8c73cbd56" +} \ No newline at end of file diff --git a/test/reference/json/Modelica/Icons.json b/test/reference/json/Modelica/Icons.json new file mode 100644 index 00000000..be73785d --- /dev/null +++ b/test/reference/json/Modelica/Icons.json @@ -0,0 +1,7187 @@ +{ + "within": "Modelica", + "class_definition": [ + { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "Icons", + "description_string": "Library of icons", + "composition": { + "element_list": [ + { + "class_definition": { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "Information", + "description_string": "Icon for general information packages", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "lineColor": { + "r": 75, + "g": 138, + "b": 73 + }, + "fillColor": { + "r": 75, + "g": 138, + "b": 73 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -15.833, + "y": 20 + }, + { + "x": -15.833, + "y": 30 + }, + { + "x": 14.167, + "y": 40 + }, + { + "x": 24.167, + "y": 20 + }, + { + "x": 4.167, + "y": -30 + }, + { + "x": 14.167, + "y": -30 + }, + { + "x": 24.167, + "y": -30 + }, + { + "x": 24.167, + "y": -40 + }, + { + "x": -5.833, + "y": -50 + }, + { + "x": -15.833, + "y": -30 + }, + { + "x": 4.167, + "y": 20 + }, + { + "x": -5.833, + "y": 20 + } + ], + "smooth": "Smooth.Bezier", + "origin": { + "x": -4.167, + "y": -15 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -12.5, + "y": -12.5 + }, + { + "x": 12.5, + "y": 12.5 + } + ], + "origin": { + "x": 7.5, + "y": 56.5 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates classes containing only documentation, intended for general description of, e.g., concepts and features of a package.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "extends_clause": { + "name": "Icons.Package" + } + }, + { + "class_definition": { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "Contact", + "description_string": "Icon for contact information", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 70 + }, + { + "x": 100, + "y": -72 + } + ], + "fillColor": { + "r": 235, + "g": 235, + "b": 235 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": -72 + }, + { + "x": 100, + "y": -72 + }, + { + "x": 0, + "y": 20 + }, + { + "x": -100, + "y": -72 + } + ], + "fillColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 22, + "y": 0 + }, + { + "x": 100, + "y": 70 + }, + { + "x": 100, + "y": -72 + }, + { + "x": 22, + "y": 0 + } + ], + "fillColor": { + "r": 235, + "g": 235, + "b": 235 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": 70 + }, + { + "x": 100, + "y": 70 + }, + { + "x": 0, + "y": -20 + }, + { + "x": -100, + "y": 70 + } + ], + "fillColor": { + "r": 241, + "g": 241, + "b": 241 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon shall be used for the contact information of the library developers.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "ReleaseNotes", + "description_string": "Icon for release notes in documentation", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -80, + "y": -100 + }, + { + "x": -80, + "y": 100 + }, + { + "x": 0, + "y": 100 + }, + { + "x": 0, + "y": 20 + }, + { + "x": 80, + "y": 20 + }, + { + "x": 80, + "y": -100 + }, + { + "x": -80, + "y": -100 + } + ], + "fillColor": { + "r": 245, + "g": 245, + "b": 245 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 0, + "y": 100 + }, + { + "x": 80, + "y": 20 + }, + { + "x": 0, + "y": 20 + }, + { + "x": 0, + "y": 100 + } + ], + "fillColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 2, + "y": -12 + }, + { + "x": 50, + "y": -12 + } + ] + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -56, + "y": 2 + }, + { + "x": -28, + "y": -26 + } + ], + "fillColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 2, + "y": -60 + }, + { + "x": 50, + "y": -60 + } + ] + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -56, + "y": -46 + }, + { + "x": -28, + "y": -74 + } + ], + "fillColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates release notes and the revision history of a library.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "References", + "description_string": "Icon for external references", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": -80 + }, + { + "x": -100, + "y": 60 + }, + { + "x": -80, + "y": 54 + }, + { + "x": -80, + "y": 80 + }, + { + "x": -40, + "y": 58 + }, + { + "x": -40, + "y": 100 + }, + { + "x": -10, + "y": 60 + }, + { + "x": 90, + "y": 60 + }, + { + "x": 100, + "y": 40 + }, + { + "x": 100, + "y": -100 + }, + { + "x": -20, + "y": -100 + }, + { + "x": -100, + "y": -80 + } + ], + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + }, + "fillColor": { + "r": 245, + "g": 245, + "b": 245 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -20, + "y": -100 + }, + { + "x": -10, + "y": -80 + }, + { + "x": 90, + "y": -80 + }, + { + "x": 100, + "y": -100 + }, + { + "x": -20, + "y": -100 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 90, + "y": -80 + }, + { + "x": 90, + "y": 60 + }, + { + "x": 100, + "y": 40 + }, + { + "x": 100, + "y": -100 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 90, + "y": 60 + }, + { + "x": -10, + "y": 60 + }, + { + "x": -10, + "y": -80 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -10, + "y": 60 + }, + { + "x": -40, + "y": 100 + }, + { + "x": -40, + "y": -40 + }, + { + "x": -10, + "y": -80 + }, + { + "x": -10, + "y": 60 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -20, + "y": -88 + }, + { + "x": -80, + "y": -60 + }, + { + "x": -80, + "y": 80 + }, + { + "x": -40, + "y": 58 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -20, + "y": -100 + }, + { + "x": -100, + "y": -80 + }, + { + "x": -100, + "y": 60 + }, + { + "x": -80, + "y": 54 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 10, + "y": 30 + }, + { + "x": 72, + "y": 30 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 10, + "y": -10 + }, + { + "x": 70, + "y": -10 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 10, + "y": -50 + }, + { + "x": 70, + "y": -50 + } + ] + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates a documentation class containing references to external documentation and literature.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "ExamplesPackage", + "description_string": "Icon for packages containing runnable examples", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -58, + "y": 46 + }, + { + "x": 42, + "y": -14 + }, + { + "x": -58, + "y": -74 + }, + { + "x": -58, + "y": 46 + } + ], + "origin": { + "x": 8, + "y": 14 + }, + "lineColor": { + "r": 78, + "g": 138, + "b": 73 + }, + "fillColor": { + "r": 78, + "g": 138, + "b": 73 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates a package that contains executable examples.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial model", + "class_specifier": { + "long_class_specifier": { + "identifier": "Example", + "description_string": "Icon for runnable examples", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "lineColor": { + "r": 75, + "g": 138, + "b": 73 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -36, + "y": 60 + }, + { + "x": 64, + "y": 0 + }, + { + "x": -36, + "y": -60 + }, + { + "x": -36, + "y": 60 + } + ], + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + }, + "fillColor": { + "r": 75, + "g": 138, + "b": 73 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates an example. The play button suggests that the example can be executed.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "Package", + "description_string": "Icon for standard packages", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 200, + "g": 200, + "b": 200 + }, + "fillColor": { + "r": 248, + "g": 248, + "b": 248 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

Standard package icon.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "BasesPackage", + "description_string": "Icon for packages containing base classes", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -30, + "y": -30 + }, + { + "x": 30, + "y": 30 + } + ], + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon shall be used for a package/library that contains base models and classes, respectively.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "VariantsPackage", + "description_string": "Icon for package containing variants", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -80, + "y": -80 + }, + { + "x": -20, + "y": -20 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "fillColor": { + "r": 76, + "g": 76, + "b": 76 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 0, + "y": -80 + }, + { + "x": 60, + "y": -20 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 60 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -80, + "y": 0 + }, + { + "x": -20, + "y": 60 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon shall be used for a package/library that contains several variants of one component.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "InterfacesPackage", + "description_string": "Icon for packages containing interfaces", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -10, + "y": 70 + }, + { + "x": 10, + "y": 70 + }, + { + "x": 40, + "y": 20 + }, + { + "x": 80, + "y": 20 + }, + { + "x": 80, + "y": -20 + }, + { + "x": 40, + "y": -20 + }, + { + "x": 10, + "y": -70 + }, + { + "x": -10, + "y": -70 + } + ], + "origin": { + "x": 20, + "y": 0 + }, + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": 20 + }, + { + "x": -60, + "y": 20 + }, + { + "x": -30, + "y": 70 + }, + { + "x": -10, + "y": 70 + }, + { + "x": -10, + "y": -70 + }, + { + "x": -30, + "y": -70 + }, + { + "x": -60, + "y": -20 + }, + { + "x": -100, + "y": -20 + } + ], + "fillColor": { + "r": 102, + "g": 102, + "b": 102 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates packages containing interfaces.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "SourcesPackage", + "description_string": "Icon for packages containing sources", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -23.333, + "y": 30 + }, + { + "x": 46.667, + "y": 0 + }, + { + "x": -23.333, + "y": -30 + } + ], + "origin": { + "x": 23.3333, + "y": 0 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -70, + "y": -4.5 + }, + { + "x": 0, + "y": 4.5 + } + ], + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates a package which contains sources.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "SensorsPackage", + "description_string": "Icon for packages containing sensors", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -90, + "y": -90 + }, + { + "x": 90, + "y": 90 + } + ], + "startAngle": 20, + "endAngle": 160, + "origin": { + "x": 0, + "y": -30 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -20, + "y": -20 + }, + { + "x": 20, + "y": 20 + } + ], + "origin": { + "x": 0, + "y": -30 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 60 + }, + { + "x": 0, + "y": 90 + } + ] + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -10, + "y": -10 + }, + { + "x": 10, + "y": 10 + } + ], + "origin": { + "x": 0, + "y": -30 + }, + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -7, + "y": 0 + }, + { + "x": -3, + "y": 85 + }, + { + "x": 0, + "y": 90 + }, + { + "x": 3, + "y": 85 + }, + { + "x": 7, + "y": 0 + } + ], + "origin": { + "x": 0, + "y": -30 + }, + "rotation": -35, + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates a package containing sensors.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "UtilitiesPackage", + "description_string": "Icon for utility packages", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -15, + "y": 93.333 + }, + { + "x": -15, + "y": 68.333 + }, + { + "x": 0, + "y": 58.333 + }, + { + "x": 15, + "y": 68.333 + }, + { + "x": 15, + "y": 93.333 + }, + { + "x": 20, + "y": 93.333 + }, + { + "x": 25, + "y": 83.333 + }, + { + "x": 25, + "y": 58.333 + }, + { + "x": 10, + "y": 43.333 + }, + { + "x": 10, + "y": -41.667 + }, + { + "x": 25, + "y": -56.667 + }, + { + "x": 25, + "y": -76.667 + }, + { + "x": 10, + "y": -91.667 + }, + { + "x": 0, + "y": -91.667 + }, + { + "x": 0, + "y": -81.667 + }, + { + "x": 5, + "y": -81.667 + }, + { + "x": 15, + "y": -71.667 + }, + { + "x": 15, + "y": -61.667 + }, + { + "x": 5, + "y": -51.667 + }, + { + "x": -5, + "y": -51.667 + }, + { + "x": -15, + "y": -61.667 + }, + { + "x": -15, + "y": -71.667 + }, + { + "x": -5, + "y": -81.667 + }, + { + "x": 0, + "y": -81.667 + }, + { + "x": 0, + "y": -91.667 + }, + { + "x": -10, + "y": -91.667 + }, + { + "x": -25, + "y": -76.667 + }, + { + "x": -25, + "y": -56.667 + }, + { + "x": -10, + "y": -41.667 + }, + { + "x": -10, + "y": 43.333 + }, + { + "x": -25, + "y": 58.333 + }, + { + "x": -25, + "y": 83.333 + }, + { + "x": -20, + "y": 93.333 + } + ], + "origin": { + "x": 1.3835, + "y": -4.1418 + }, + "rotation": 45, + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -15, + "y": 87.273 + }, + { + "x": 15, + "y": 87.273 + }, + { + "x": 20, + "y": 82.273 + }, + { + "x": 20, + "y": 27.273 + }, + { + "x": 10, + "y": 17.273 + }, + { + "x": 10, + "y": 7.273 + }, + { + "x": 20, + "y": 2.273 + }, + { + "x": 20, + "y": -2.727 + }, + { + "x": 5, + "y": -2.727 + }, + { + "x": 5, + "y": -77.727 + }, + { + "x": 10, + "y": -87.727 + }, + { + "x": 5, + "y": -112.727 + }, + { + "x": -5, + "y": -112.727 + }, + { + "x": -10, + "y": -87.727 + }, + { + "x": -5, + "y": -77.727 + }, + { + "x": -5, + "y": -2.727 + }, + { + "x": -20, + "y": -2.727 + }, + { + "x": -20, + "y": 2.273 + }, + { + "x": -10, + "y": 7.273 + }, + { + "x": -10, + "y": 17.273 + }, + { + "x": -20, + "y": 27.273 + }, + { + "x": -20, + "y": 82.273 + } + ], + "origin": { + "x": 10.1018, + "y": 5.218 + }, + "rotation": -45, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates a package containing utility classes.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "TypesPackage", + "description_string": "Icon for packages containing type definitions", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 12.167, + "y": 65 + }, + { + "x": 14.167, + "y": 93 + }, + { + "x": 36.167, + "y": 89 + }, + { + "x": 24.167, + "y": 20 + }, + { + "x": 4.167, + "y": -30 + }, + { + "x": 14.167, + "y": -30 + }, + { + "x": 24.167, + "y": -30 + }, + { + "x": 24.167, + "y": -40 + }, + { + "x": -5.833, + "y": -50 + }, + { + "x": -15.833, + "y": -30 + }, + { + "x": 4.167, + "y": 20 + }, + { + "x": 12.167, + "y": 65 + } + ], + "smooth": "Smooth.Bezier", + "origin": { + "x": -12.167, + "y": -23 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 49.2597, + "y": 22.3327 + }, + { + "x": 31.2597, + "y": 24.3327 + }, + { + "x": 7.2597, + "y": 18.3327 + }, + { + "x": -26.7403, + "y": 10.3327 + }, + { + "x": -46.7403, + "y": 14.3327 + }, + { + "x": -48.7403, + "y": 6.3327 + }, + { + "x": -32.7403, + "y": 0.3327 + }, + { + "x": -6.7403, + "y": 4.3327 + }, + { + "x": 33.2597, + "y": 14.3327 + }, + { + "x": 49.2597, + "y": 14.3327 + }, + { + "x": 49.2597, + "y": 22.3327 + } + ], + "smooth": "Smooth.Bezier", + "origin": { + "x": 2.7403, + "y": 1.6673 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "FunctionsPackage", + "description_string": "Icon for packages containing functions", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -90 + }, + { + "x": 90, + "y": 90 + } + ], + "textString": "\"f\"", + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + } + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "IconsPackage", + "description_string": "Icon for packages containing icons", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -15.833, + "y": 20 + }, + { + "x": -15.833, + "y": 30 + }, + { + "x": 14.167, + "y": 40 + }, + { + "x": 24.167, + "y": 20 + }, + { + "x": 4.167, + "y": -30 + }, + { + "x": 14.167, + "y": -30 + }, + { + "x": 24.167, + "y": -30 + }, + { + "x": 24.167, + "y": -40 + }, + { + "x": -5.833, + "y": -50 + }, + { + "x": -15.833, + "y": -30 + }, + { + "x": 4.167, + "y": 20 + }, + { + "x": -5.833, + "y": 20 + } + ], + "smooth": "Smooth.Bezier", + "origin": { + "x": -8.167, + "y": -17 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -12.5, + "y": -12.5 + }, + { + "x": 12.5, + "y": 12.5 + } + ], + "origin": { + "x": -0.5, + "y": 56.5 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "InternalPackage", + "description_string": "Icon for an internal package (indicating that the package should not be directly utilized by user)", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 215, + "g": 215, + "b": 215 + } + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -80, + "y": 80 + }, + { + "x": 80, + "y": -80 + } + ], + "lineColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -55, + "y": 55 + }, + { + "x": 55, + "y": -55 + } + ], + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -60, + "y": 14 + }, + { + "x": 60, + "y": -14 + } + ], + "rotation": 45, + "lineColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\n

\nThis icon shall be used for a package that contains internal classes not to be\ndirectly utilized by a user.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "MaterialPropertiesPackage", + "description_string": "Icon for package containing property classes", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -60, + "y": -60 + }, + { + "x": 60, + "y": 60 + } + ], + "lineColor": { + "r": 102, + "g": 102, + "b": 102 + }, + "fillColor": { + "r": 204, + "g": 204, + "b": 204 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Sphere" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates a package that contains properties

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "RecordsPackage", + "description_string": "Icon for package containing records", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -80, + "y": -60 + }, + { + "x": 80, + "y": 60 + } + ], + "radius": 25, + "origin": { + "x": 0, + "y": -20 + }, + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 215, + "b": 136 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -80, + "y": 0 + }, + { + "x": 80, + "y": 0 + } + ], + "color": { + "r": 64, + "g": 64, + "b": 64 + } + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -80, + "y": 0 + }, + { + "x": 80, + "y": 0 + } + ], + "color": { + "r": 64, + "g": 64, + "b": 64 + } + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 45 + }, + { + "x": 0, + "y": -75 + } + ], + "color": { + "r": 64, + "g": 64, + "b": 64 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates a package that contains records

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "MaterialProperty", + "description_string": "Icon for property classes", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "lineColor": { + "r": 102, + "g": 102, + "b": 102 + }, + "fillColor": { + "r": 204, + "g": 204, + "b": 204 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Sphere" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates a property class.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "RotationalSensor", + "description_string": "Icon representing a round measurement device", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -70, + "y": -70 + }, + { + "x": 70, + "y": 70 + } + ], + "fillColor": { + "r": 245, + "g": 245, + "b": 245 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 70 + }, + { + "x": 0, + "y": 40 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 22.9, + "y": 32.8 + }, + { + "x": 40.2, + "y": 57.3 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -22.9, + "y": 32.8 + }, + { + "x": -40.2, + "y": 57.3 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 37.6, + "y": 13.7 + }, + { + "x": 65.8, + "y": 23.9 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -37.6, + "y": 13.7 + }, + { + "x": -65.8, + "y": 23.9 + } + ] + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -12, + "y": -12 + }, + { + "x": 12, + "y": 12 + } + ], + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -5, + "y": 0 + }, + { + "x": -2, + "y": 60 + }, + { + "x": 0, + "y": 65 + }, + { + "x": 2, + "y": 60 + }, + { + "x": 5, + "y": 0 + } + ], + "rotation": -17.5, + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -7, + "y": -7 + }, + { + "x": 7, + "y": 7 + } + ], + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon is designed for a rotational sensor model.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "TranslationalSensor", + "description_string": "Icon representing a linear measurement device", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -70, + "y": -60 + }, + { + "x": 70, + "y": 20 + } + ], + "fillColor": { + "r": 245, + "g": 245, + "b": 245 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 0, + "y": -40 + }, + { + "x": -10, + "y": -16 + }, + { + "x": 10, + "y": -16 + }, + { + "x": 0, + "y": -40 + } + ], + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": -16 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -70, + "y": 0 + }, + { + "x": 0, + "y": 0 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -50, + "y": -40 + }, + { + "x": -50, + "y": -60 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -30, + "y": -40 + }, + { + "x": -30, + "y": -60 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -10, + "y": -40 + }, + { + "x": -10, + "y": -60 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 10, + "y": -40 + }, + { + "x": 10, + "y": -60 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 30, + "y": -40 + }, + { + "x": 30, + "y": -60 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 50, + "y": -40 + }, + { + "x": 50, + "y": -60 + } + ] + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon is designed for a translational sensor model.\n

\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial function", + "class_specifier": { + "long_class_specifier": { + "identifier": "Function", + "description_string": "Icon for functions", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -150, + "y": 105 + }, + { + "x": 150, + "y": 145 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "lineColor": { + "r": 108, + "g": 88, + "b": 49 + }, + "fillColor": { + "r": 255, + "g": 215, + "b": 136 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -90 + }, + { + "x": 90, + "y": 90 + } + ], + "textString": "\"f\"", + "lineColor": { + "r": 108, + "g": 88, + "b": 49 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates Modelica functions.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial record", + "class_specifier": { + "long_class_specifier": { + "identifier": "Record", + "description_string": "Icon for records", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -150, + "y": 60 + }, + { + "x": 150, + "y": 100 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -75 + }, + { + "x": 100, + "y": 75 + } + ], + "radius": 25, + "origin": { + "x": 0, + "y": -25 + }, + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 215, + "b": 136 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -100, + "y": 0 + }, + { + "x": 100, + "y": 0 + } + ], + "color": { + "r": 64, + "g": 64, + "b": 64 + } + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -100, + "y": 0 + }, + { + "x": 100, + "y": 0 + } + ], + "color": { + "r": 64, + "g": 64, + "b": 64 + } + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 75 + }, + { + "x": 0, + "y": -75 + } + ], + "color": { + "r": 64, + "g": 64, + "b": 64 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon is indicates a record.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "TypeComplex", + "value": { + "name": "Complex", + "description": { + "description_string": "Obsolete class kept only for backwards compatibility (use Complex instead)", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -50 + }, + { + "x": 90, + "y": 50 + } + ], + "textString": "\"C\"", + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nObsolete class, only kept for backwards compatibility.\nThe type classes TypeReal, TypeInteger etc. have been introduced to associate an icon to the\nbuilt-in base classes Real, Integer etc. Instead for Complex, an icon is already introduced in its\ndefinition (which is not possible for the built-in classes). Therefore, TypeComplex is just an alias\nto Complex and is therefore superfluous.\n

\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete operator record - use Complex instead\"" + } + } + } + } + } + ] + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "long_class_specifier": { + "identifier": "TypeReal", + "description_string": "Icon for Real types", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Real" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -50 + }, + { + "x": 90, + "y": 50 + } + ], + "textString": "\"R\"", + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon is designed for a Real type.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "long_class_specifier": { + "identifier": "TypeInteger", + "description_string": "Icon for Integer types", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Integer" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -50 + }, + { + "x": 90, + "y": 50 + } + ], + "textString": "\"I\"", + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon is designed for an Integer type.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "long_class_specifier": { + "identifier": "TypeBoolean", + "description_string": "Icon for Boolean types", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Boolean" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -50 + }, + { + "x": 90, + "y": 50 + } + ], + "textString": "\"B\"", + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon is designed for a Boolean type.\n

\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "long_class_specifier": { + "identifier": "TypeString", + "description_string": "Icon for String types", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "String" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -50 + }, + { + "x": 90, + "y": 50 + } + ], + "textString": "\"S\"", + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon is designed for a String type.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "expandable connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "SignalBus", + "description_string": "Icon for signal bus", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false", + "initialScale": 0.2 + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -20, + "y": -2 + }, + { + "x": 20, + "y": 2 + } + ], + "lineColor": { + "r": 255, + "g": 204, + "b": 51 + }, + "lineThickness": 0.5 + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -80, + "y": 50 + }, + { + "x": 80, + "y": 50 + }, + { + "x": 100, + "y": 30 + }, + { + "x": 80, + "y": -40 + }, + { + "x": 60, + "y": -50 + }, + { + "x": -60, + "y": -50 + }, + { + "x": -80, + "y": -40 + }, + { + "x": -100, + "y": 30 + } + ], + "smooth": "Smooth.Bezier", + "fillColor": { + "r": 255, + "g": 215, + "b": 136 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -65, + "y": 15 + }, + { + "x": -55, + "y": 25 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -5, + "y": 15 + }, + { + "x": 5, + "y": 25 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 55, + "y": 15 + }, + { + "x": 65, + "y": 25 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -35, + "y": -25 + }, + { + "x": -25, + "y": -15 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 25, + "y": -25 + }, + { + "x": 35, + "y": -15 + } + ], + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false", + "initialScale": 0.2 + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -40, + "y": 25 + }, + { + "x": 40, + "y": 25 + }, + { + "x": 50, + "y": 15 + }, + { + "x": 40, + "y": -20 + }, + { + "x": 30, + "y": -25 + }, + { + "x": -30, + "y": -25 + }, + { + "x": -40, + "y": -20 + }, + { + "x": -50, + "y": 15 + } + ], + "smooth": "Smooth.Bezier", + "fillColor": { + "r": 255, + "g": 204, + "b": 51 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -32.5, + "y": 7.5 + }, + { + "x": -27.5, + "y": 12.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -2.5, + "y": 12.5 + }, + { + "x": 2.5, + "y": 7.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 27.5, + "y": 12.5 + }, + { + "x": 32.5, + "y": 7.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -17.5, + "y": -7.5 + }, + { + "x": -12.5, + "y": -12.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 12.5, + "y": -7.5 + }, + { + "x": 17.5, + "y": -12.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -150, + "y": 70 + }, + { + "x": 150, + "y": 40 + } + ], + "textString": "\"%name\"" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon is designed for a signal bus connector.\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "expandable connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "SignalSubBus", + "description_string": "Icon for signal sub-bus", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -16, + "y": 2 + }, + { + "x": 16, + "y": 2 + } + ], + "color": { + "r": 255, + "g": 204, + "b": 51 + }, + "thickness": 0.5 + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -10, + "y": 0 + }, + { + "x": 8, + "y": 8 + } + ], + "lineColor": { + "r": 255, + "g": 204, + "b": 51 + }, + "lineThickness": 0.5 + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -80, + "y": 50 + }, + { + "x": 80, + "y": 50 + }, + { + "x": 100, + "y": 30 + }, + { + "x": 80, + "y": -40 + }, + { + "x": 60, + "y": -50 + }, + { + "x": -60, + "y": -50 + }, + { + "x": -80, + "y": -40 + }, + { + "x": -100, + "y": 30 + } + ], + "smooth": "Smooth.Bezier", + "fillColor": { + "r": 255, + "g": 215, + "b": 136 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -55, + "y": 15 + }, + { + "x": -45, + "y": 25 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 45, + "y": 15 + }, + { + "x": 55, + "y": 25 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -5, + "y": -25 + }, + { + "x": 5, + "y": -15 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -20, + "y": 0 + }, + { + "x": 20, + "y": 4 + } + ], + "lineColor": { + "r": 255, + "g": 215, + "b": 136 + }, + "lineThickness": 0.5 + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -40, + "y": 25 + }, + { + "x": 40, + "y": 25 + }, + { + "x": 50, + "y": 15 + }, + { + "x": 40, + "y": -20 + }, + { + "x": 30, + "y": -25 + }, + { + "x": -30, + "y": -25 + }, + { + "x": -40, + "y": -20 + }, + { + "x": -50, + "y": 15 + } + ], + "smooth": "Smooth.Bezier", + "fillColor": { + "r": 255, + "g": 204, + "b": 51 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -22.5, + "y": 7.5 + }, + { + "x": -17.5, + "y": 12.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 17.5, + "y": 12.5 + }, + { + "x": 22.5, + "y": 7.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -2.5, + "y": -7.5 + }, + { + "x": 2.5, + "y": -12.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -150, + "y": 70 + }, + { + "x": 150, + "y": 40 + } + ], + "textString": "\"%name\"" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon is designed for a sub-bus in a signal connector.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "UnderConstruction", + "description_string": "Icon for classes that are still under construction", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": -100 + }, + { + "x": 0, + "y": 80 + }, + { + "x": 100, + "y": -100 + }, + { + "x": -100, + "y": -100 + } + ], + "lineColor": { + "r": 255, + "g": 0, + "b": 0 + }, + "lineThickness": 0.5 + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

Library developers can use this icon to indicate that the respective model is under construction.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "ObsoleteModel", + "description_string": "Icon for classes that are obsolete and will be removed in later versions", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -102, + "y": 102 + }, + { + "x": 102, + "y": -102 + } + ], + "lineColor": { + "r": 255, + "g": 0, + "b": 0 + }, + "pattern": "LinePattern.Dash", + "lineThickness": 0.5 + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis partial class is intended to provide a default icon\nfor an obsolete model that will be removed from the\ncorresponding library in a future release.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "Library", + "description_string": "This icon will be removed in future Modelica versions, use Package instead", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 200, + "g": 200, + "b": 200 + }, + "fillColor": { + "r": 248, + "g": 248, + "b": 248 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon of a package will be removed in future versions of the library.

\n
Note
\n

This icon will be removed in future versions of the Modelica Standard Library. Instead the icon Package shall be used.

\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete package - use Modelica.Icons.Package instead\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial package", + "class_specifier": { + "long_class_specifier": { + "identifier": "Library2", + "description_string": "This icon will be removed in future Modelica versions, use Package instead", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 200, + "g": 200, + "b": 200 + }, + "fillColor": { + "r": 248, + "g": 248, + "b": 248 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon of a package will be removed in future versions of the library.

\n
Note
\n

This icon will be removed in future versions of the Modelica Standard Library. Instead the icon Package shall be used.

\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete package - use Modelica.Icons.Package instead\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "GearIcon", + "description_string": "This icon will be removed in future Modelica versions", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -90, + "y": -10 + }, + { + "x": -60, + "y": 10 + } + ], + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -60, + "y": 10 + }, + { + "x": -60, + "y": 20 + }, + { + "x": -40, + "y": 40 + }, + { + "x": -40, + "y": -40 + }, + { + "x": -60, + "y": -20 + }, + { + "x": -60, + "y": 10 + } + ], + "fillColor": { + "r": 192, + "g": 192, + "b": 192 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -40, + "y": -60 + }, + { + "x": 40, + "y": 60 + } + ], + "radius": 10, + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 60, + "y": 20 + }, + { + "x": 40, + "y": 40 + }, + { + "x": 40, + "y": -40 + }, + { + "x": 60, + "y": -20 + }, + { + "x": 60, + "y": 20 + } + ], + "fillColor": { + "r": 192, + "g": 192, + "b": 192 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": 60, + "y": -10 + }, + { + "x": 90, + "y": 10 + } + ], + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -60, + "y": -90 + }, + { + "x": -50, + "y": -90 + }, + { + "x": -20, + "y": -30 + }, + { + "x": 20, + "y": -30 + }, + { + "x": 48, + "y": -90 + }, + { + "x": 60, + "y": -90 + }, + { + "x": 60, + "y": -100 + }, + { + "x": -60, + "y": -100 + }, + { + "x": -60, + "y": -90 + } + ], + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon of a gearbox will be removed in future versions of the library. Please use one of the icons of Mechanics.Rotational.Icons instead.\n

\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete class - use Modelica.Mechanics.Rotational.Icons instead\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "MotorIcon", + "description_string": "This icon will be removed in future Modelica versions.", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -50 + }, + { + "x": 30, + "y": 50 + } + ], + "radius": 10, + "lineColor": { + "r": 82, + "g": 0, + "b": 2 + }, + "fillColor": { + "r": 252, + "g": 37, + "b": 57 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": -90 + }, + { + "x": -90, + "y": -90 + }, + { + "x": -60, + "y": -20 + }, + { + "x": -10, + "y": -20 + }, + { + "x": 20, + "y": -90 + }, + { + "x": 30, + "y": -90 + }, + { + "x": 30, + "y": -100 + }, + { + "x": -100, + "y": -100 + }, + { + "x": -100, + "y": -90 + } + ], + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": 30, + "y": -10 + }, + { + "x": 90, + "y": 10 + } + ], + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon of an electrical motor model will be removed in future versions of the library. Please use a locally defined icon in your user defined libraries and applications.\n

\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete class\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial class", + "class_specifier": { + "long_class_specifier": { + "identifier": "Info", + "description_string": "This icon will be removed in future Modelica versions.", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "lineColor": { + "r": 75, + "g": 138, + "b": 73 + }, + "fillColor": { + "r": 75, + "g": 138, + "b": 73 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -15.833, + "y": 20 + }, + { + "x": -15.833, + "y": 30 + }, + { + "x": 14.167, + "y": 40 + }, + { + "x": 24.167, + "y": 20 + }, + { + "x": 4.167, + "y": -30 + }, + { + "x": 14.167, + "y": -30 + }, + { + "x": 24.167, + "y": -30 + }, + { + "x": 24.167, + "y": -40 + }, + { + "x": -5.833, + "y": -50 + }, + { + "x": -15.833, + "y": -30 + }, + { + "x": 4.167, + "y": 20 + }, + { + "x": -5.833, + "y": 20 + } + ], + "smooth": "Smooth.Bezier", + "origin": { + "x": -4.167, + "y": -15 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -12.5, + "y": -12.5 + }, + { + "x": 12.5, + "y": 12.5 + } + ], + "origin": { + "x": 7.5, + "y": 56.5 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicate classes containing only documentation, intended for general description of e.g., concepts and features of a package.

\n
Note
\n

This icon will be removed in future versions of the Modelica Standard Library. Instead the icon Information shall be used.

\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete class - use Modelica.Icons.Information instead\"" + } + } + } + } + } + ] + } + } + } + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -15.833, + "y": 20 + }, + { + "x": -15.833, + "y": 30 + }, + { + "x": 14.167, + "y": 40 + }, + { + "x": 24.167, + "y": 20 + }, + { + "x": 4.167, + "y": -30 + }, + { + "x": 14.167, + "y": -30 + }, + { + "x": 24.167, + "y": -30 + }, + { + "x": 24.167, + "y": -40 + }, + { + "x": -5.833, + "y": -50 + }, + { + "x": -15.833, + "y": -30 + }, + { + "x": 4.167, + "y": 20 + }, + { + "x": -5.833, + "y": 20 + } + ], + "smooth": "Smooth.Bezier", + "origin": { + "x": -8.167, + "y": -17 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -12.5, + "y": -12.5 + }, + { + "x": 12.5, + "y": 12.5 + } + ], + "origin": { + "x": -0.5, + "y": 56.5 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This package contains definitions for the graphical layout of components which may be used in different libraries. The icons can be utilized by inheriting them in the desired class using "extends" or by directly copying the "icon" layer.

\n\n

Main Authors:

\n\n
\n
Martin Otter
\n
Deutsches Zentrum fuer Luft und Raumfahrt e.V. (DLR)
\n
Oberpfaffenhofen
\n
Postfach 1116
\n
D-82230 Wessling
\n
email: Martin.Otter@dlr.de
\n
Christian Kral
\n\n
Electric Machines, Drives and Systems
\n
\n
1060 Vienna, Austria
\n
email: dr.christian.kral@gmail.com
\n
Johan Andreasson
\n
Modelon AB
\n
Ideon Science Park
\n
22370 Lund, Sweden
\n
email: johan.andreasson@modelon.se
\n
\n\n

\nCopyright © 1998-2019, Modelica Association and contributors\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ], + "modelicaFile": "Modelica/Icons.mo", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "checksum": "4ae2d96649622e3bb48c8ef317657524" +} \ No newline at end of file diff --git a/test/reference/json/Modelica/SIunits.json b/test/reference/json/Modelica/SIunits.json new file mode 100644 index 00000000..9cf2d6be --- /dev/null +++ b/test/reference/json/Modelica/SIunits.json @@ -0,0 +1,28557 @@ +{ + "within": "Modelica", + "class_definition": [ + { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "SIunits", + "description_string": "Library of type and unit definitions based on SI units according to ISO 31-1992", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + }, + { + "class_definition": { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "UsersGuide", + "description_string": "User's Guide of SIunits Library", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Information" + } + }, + { + "class_definition": { + "class_prefixes": "class", + "class_specifier": { + "long_class_specifier": { + "identifier": "HowToUseSIunits", + "description_string": "How to use SIunits", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Information" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "DocumentationClass", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nWhen implementing a Modelica model, every variable needs to\nbe declared. Physical variables should be declared with a unit.\nThe basic approach in Modelica is that the unit attribute of\na variable is the unit in which the equations are written,\nfor example:\n

\n\n
   model MassOnGround\n     parameter Real m(quantity=\\\"Mass\\\", unit=\\\"kg\\\") \\\"Mass\\\";\n     parameter Real f(quantity=\\\"Force\\\", unit=\\\"N\\\") \\\"Driving force\\\";\n     Real s(unit=\\\"m\\\") \\\"Position of mass\\\";\n     Real v(unit=\\\"m/s\\\") \\\"Velocity of mass\\\";\n   equation\n     der(s) = v;\n     m*der(v) = f;\n   end MassOnGround;\n
\n\n

\nThis means that the equations in the equation section are only correct\nfor the specified units. A different issue is the user interface, i.e.,\nin which unit the variable is presented to the user in graphical\nuser interfaces, both for input (e.g., parameter menu), as well as\nfor output (e.g., in the plot window). Preferably, the Modelica tool\nshould provide a list of units from which the user can select, e.g.,\n\\\"m\\\", \\\"cm\\\", \\\"km\\\", \\\"inch\\\" for quantity \\\"Length\\\". When storing the value in\nthe model as a Modelica modifier, it has to be converted to the unit defined\nin the declaration. Additionally, the unit used in the graphical\nuser interface has to be stored. In order to have a standardized way\nof doing this, Modelica provides the following three attributes\nfor a variable of type Real:\n

\n\n\n\n

\nNote, a unit, such as \\\"N.m\\\", is not sufficient to define uniquely the\nphysical quantity, since, e.g., \\\"N.m\\\" might be either \\\"torque\\\" or\n\\\"energy\\\". The \\\"quantity\\\" attribute might therefore be used by a tool\nto select the corresponding menu from which the user can select\na unit for the corresponding variable.\n

\n\n

\nFor example, after providing a value for \\\"m\\\" and \\\"f\\\" in a parameter\nmenu of an instance of MassOnGround, a tool might generate the following code:\n

\n\n
\n   MassOnGround myObject(m(displayUnit=\\\"g\\\")=2, f=3);\n
\n\n

\nThe meaning is that in the equations a value of \\\"2\\\" is used\nand that in the graphical user interface a value of \\\"2000\\\" should be used,\ntogether with the unit \\\"g\\\" from the unit set \\\"Mass\\\" (= the quantity name).\nNote, according to the Modelica specification\na tool might ignore the \\\"displayUnit\\\" attribute.\n

\n\n

\nIn order to help the Modelica model developer, the Modelica.SIunits\nlibrary provides about 450 predefined type names,\ntogether with values for the attributes quantity, unit and sometimes\ndisplayUnit and min. The unit is always selected as SI-unit according to the\nISO standard. The type and the quantity names are the\nquantity names used in the ISO standard. \\\"quantity\\\" and \\\"unit\\\" are defined\nas \\\"final\\\" in order that they cannot be modified. Attributes \\\"displayUnit\\\"\nand \\\"min\\\" can, however, be changed in a model via a modification. The example above,\nmight therefore be alternatively also defined as:\n

\n\n
   model MassOnGround\n     parameter Modelica.SIunits.Mass  m \\\"Mass\\\";\n     parameter Modelica.SIunits.Force f \\\"Driving force\\\";\n     ...\n   end MassOnGround;\n
\n\n

\nor in a short hand notation as\n

\n\n
\n   model MassOnGround\n     import SI = Modelica.SIunits;\n     parameter SI.Mass  m \\\"Mass\\\";\n     parameter SI.Force f \\\"Driving force\\\";\n     ...\n   end MassOnGround;\n
\n\n

\nFor some often\nused Non SI-units (like hour), some additional type definitions are\npresent as Modelica.SIunits.Conversions.NonSIunits. If this is not sufficient,\nthe user has to define its own types or use the attributes directly\nin the declaration as in the example at the beginning.\n

\n\n

\nComplex units are also included in Modelica.SIunits. A complex unit is declared as:\n

\n
\n  model QuasiStationaryMachine\n    parameter Modelica.SIunits.ComplexPower SNominal = Complex(10000,4400)\n       \\\"Nominal complex power\\\";\n   ...\n   end QuasiStationaryMachine;\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "class", + "class_specifier": { + "long_class_specifier": { + "identifier": "Conventions", + "description_string": "Conventions", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Information" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "DocumentationClass", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

The following conventions are used in package SIunits:

\n\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "class", + "class_specifier": { + "long_class_specifier": { + "identifier": "Literature", + "description_string": "Literature", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.References" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This package is based on the following references\n

\n\n
\n
ISO 31-1992:
\n
General principles concerning\n quantities, units and symbols.
 
\n\n
ISO 1000-1992:
\n
SI units and recommendations for the use\n of their multiples and of certain other units.
 
\n\n
Cardarelli F.:
\n
Scientific Unit Conversion - A Practical\n Guide to Metrication. Springer 1997.
\n
\n\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "class", + "class_specifier": { + "long_class_specifier": { + "identifier": "Contact", + "description_string": "Contact", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Contact" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

Main author

\n\n

\nMartin Otter
\nDeutsches Zentrum für Luft- und Raumfahrt e.V. (DLR)
\nInstitut für Systemdynamik und Regelungstechnik (DLR-SR)
\nForschungszentrum Oberpfaffenhofen
\nD-82234 Wessling
\nGermany
\nemail: Martin.Otter@dlr.de\n

\n\n

Acknowledgements

\n\n

\nAstrid Jaschinski, Hubertus Tummescheit and Christian Schweiger\ncontributed to the implementation of this package.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "DocumentationClass", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nLibrary SIunits is a free Modelica package providing\npredefined types, such as Mass,\nLength, Time, based on the international standard\non units.

\n\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "Icons", + "description_string": "Icons for SIunits", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.IconsPackage" + } + }, + { + "class_definition": { + "class_prefixes": "partial function", + "class_specifier": { + "long_class_specifier": { + "identifier": "Conversion", + "description_string": "Base icon for conversion functions", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "lineColor": { + "r": 191, + "g": 0, + "b": 0 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -90, + "y": 0 + }, + { + "x": 30, + "y": 0 + } + ], + "color": { + "r": 191, + "g": 0, + "b": 0 + } + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 90, + "y": 0 + }, + { + "x": 30, + "y": 20 + }, + { + "x": 30, + "y": -20 + }, + { + "x": 90, + "y": 0 + } + ], + "lineColor": { + "r": 191, + "g": 0, + "b": 0 + }, + "fillColor": { + "r": 191, + "g": 0, + "b": 0 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -115, + "y": 155 + }, + { + "x": 115, + "y": 105 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "Conversions", + "description_string": "Conversion functions to/from non SI units and type definitions of non SI units", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + }, + { + "class_definition": { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "NonSIunits", + "description_string": "Type definitions of non SI units", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Temperature_degC", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermodynamicTemperature\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"degC\"" + } + } + } + } + } + ], + "description": { + "description_string": "Absolute temperature in degree Celsius (for relative temperature use SIunits.TemperatureDifference)", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "absoluteValue", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Temperature_degF", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermodynamicTemperature\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"degF\"" + } + } + } + } + } + ], + "description": { + "description_string": "Absolute temperature in degree Fahrenheit (for relative temperature use SIunits.TemperatureDifference)", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "absoluteValue", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Temperature_degRk", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermodynamicTemperature\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"degRk\"" + } + } + } + } + } + ], + "description": { + "description_string": "Absolute temperature in degree Rankine (for relative temperature use SIunits.TemperatureDifference)", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "absoluteValue", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Angle_deg", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Angle\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"deg\"" + } + } + } + } + } + ], + "description": { + "description_string": "Angle in degree" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AngularVelocity_rpm", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularVelocity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"rev/min\"" + } + } + } + } + } + ], + "description": { + "description_string": "Angular velocity in revolutions per minute. Alias unit names that are outside of the SI system: rpm, r/min, rev/min" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Velocity_kmh", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Velocity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"km/h\"" + } + } + } + } + } + ], + "description": { + "description_string": "Velocity in kilometres per hour" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Time_day", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"d\"" + } + } + } + } + } + ], + "description": { + "description_string": "Time in days" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Time_hour", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"h\"" + } + } + } + } + } + ], + "description": { + "description_string": "Time in hours" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Time_minute", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"min\"" + } + } + } + } + } + ], + "description": { + "description_string": "Time in minutes" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Volume_litre", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Volume\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"l\"" + } + } + } + } + } + ], + "description": { + "description_string": "Volume in litres" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricCharge_Ah", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricCharge\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A.h\"" + } + } + } + } + } + ], + "description": { + "description_string": "Electric charge in Ampere hours" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Energy_Wh", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W.h\"" + } + } + } + } + } + ], + "description": { + "description_string": "Energy in Watt hours" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Energy_kWh", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kW.h\"" + } + } + } + } + } + ], + "description": { + "description_string": "Energy in kilo watt hours" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Pressure_bar", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pressure\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"bar\"" + } + } + } + } + } + ], + "description": { + "description_string": "Absolute pressure in bar" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassFlowRate_gps", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MassFlowRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"g/s\"" + } + } + } + } + } + ], + "description": { + "description_string": "Mass flow rate in gram per second" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FirstOrderTemperaturCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"FirstOrderTemperatureCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Ohm/degC\"" + } + } + } + } + } + ], + "description": { + "description_string": "Obsolete type, use LinearTemperatureCoefficientResistance instead!", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "absoluteValue", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete type - use Modelica.SIunits.LinearTemperatureCoefficientResistance instead\"" + } + } + } + } + } + ] + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SecondOrderTemperaturCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SecondOrderTemperatureCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Ohm/degC2\"" + } + } + } + } + } + ], + "description": { + "description_string": "Obsolete type, use QuadraticTemperatureCoefficientResistance instead!", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "absoluteValue", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete type - use Modelica.SIunits.QuadraticTemperatureCoefficientResistance instead\"" + } + } + } + } + } + ] + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Area_cm", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Area\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"cm2\"" + } + } + } + } + } + ], + "description": { + "description_string": "Area in cm" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PerArea_cm", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PerArea\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/cm2\"" + } + } + } + } + } + ], + "description": { + "description_string": "Per Area in cm" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Area_cmPerVoltageSecond", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AreaPerVoltageSecond\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"cm2/(V.s)\"" + } + } + } + } + } + ], + "description": { + "description_string": "Area in cm per voltage second" + } + } + } + } + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis package provides predefined types, such as Angle_deg (angle in\ndegree), AngularVelocity_rpm (angular velocity in revolutions per\nminute) or Temperature_degF (temperature in degree Fahrenheit),\nwhich are in common use but are not part of the international standard on\nunits according to ISO 31-1992 \\\"General principles concerning quantities,\nunits and symbols\\\" and ISO 1000-1992 \\\"SI units and recommendations for\nthe use of their multiples and of certain other units\\\".

\n

If possible, the types in this package should not be used. Use instead\ntypes of package Modelica.SIunits. For more information on units, see also\nthe book of Francois Cardarelli Scientific Unit Conversion - A\nPractical Guide to Metrication (Springer 1997).

\n

Some units, such as Temperature_degC/Temp_C are both defined in\nModelica.SIunits and in Modelica.Conversions.NonSIunits. The reason is that these\ndefinitions have been placed erroneously in Modelica.SIunits although they\nare not SIunits. For backward compatibility, these type definitions are\nstill kept in Modelica.SIunits.

\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -105, + "y": -86.8518 + }, + { + "x": 75, + "y": -16.8518 + } + ], + "textString": "\"[km/h]\"", + "origin": { + "x": 15, + "y": 51.8518 + } + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_unit1", + "description_string": "Change the unit of a Real number to unit=\\\"1\\\"", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Real", + "component_list": [ + { + "declaration": { + "identifier": "r" + }, + "description": { + "description_string": "Real number" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Real", + "component_list": [ + { + "declaration": { + "identifier": "result", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + }, + "description": { + "description_string": "Real number r with unit=\\\"1\\\"" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "result" + } + ], + "value": { + "simple_expression": "r" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

Syntax

\n
\nSIunits.Conversions.to_unit1(r);\n
\n

Description

\n

\nThe function call \\\"Conversions.to_unit1(r)\\\" returns r with unit=\\\"1\\\".\n

\n

Example

\n
\n  Modelica.SIunits.Velocity v = {3,2,1};\n  Real direction[3](unit=\\\"1\\\") = to_unit1(v);   // Automatically vectorized call of to_unit1\n
\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": 86 + }, + { + "x": 32, + "y": 50 + } + ], + "textString": "\"any\"", + "horizontalAlignment": "TextAlignment.Left" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -36, + "y": -52 + }, + { + "x": 86, + "y": -88 + } + ], + "textString": "\"1\"", + "horizontalAlignment": "TextAlignment.Right" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_degC", + "description_string": "Convert from Kelvin to degCelsius", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Temperature", + "component_list": [ + { + "declaration": { + "identifier": "Kelvin" + }, + "description": { + "description_string": "Kelvin value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Temperature_degC", + "component_list": [ + { + "declaration": { + "identifier": "Celsius" + }, + "description": { + "description_string": "Celsius value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "Celsius" + } + ], + "value": { + "simple_expression": "Kelvin +Modelica.Constants.T_zero" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -20, + "y": 100 + }, + { + "x": -100, + "y": 20 + } + ], + "textString": "\"K\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -20 + }, + { + "x": 20, + "y": -100 + } + ], + "textString": "\"degC\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_degC", + "description_string": "Convert from degCelsius to Kelvin", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Temperature_degC", + "component_list": [ + { + "declaration": { + "identifier": "Celsius" + }, + "description": { + "description_string": "Celsius value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Temperature", + "component_list": [ + { + "declaration": { + "identifier": "Kelvin" + }, + "description": { + "description_string": "Kelvin value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "Kelvin" + } + ], + "value": { + "simple_expression": "Celsius -Modelica.Constants.T_zero" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -20, + "y": 100 + }, + { + "x": -100, + "y": 20 + } + ], + "textString": "\"degC\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -20 + }, + { + "x": 20, + "y": -100 + } + ], + "textString": "\"K\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_degF", + "description_string": "Convert from Kelvin to degFahrenheit", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Temperature", + "component_list": [ + { + "declaration": { + "identifier": "Kelvin" + }, + "description": { + "description_string": "Kelvin value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Temperature_degF", + "component_list": [ + { + "declaration": { + "identifier": "Fahrenheit" + }, + "description": { + "description_string": "Fahrenheit value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "Fahrenheit" + } + ], + "value": { + "simple_expression": "(Kelvin +Modelica.Constants.T_zero)*(9/5) +32" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -20, + "y": 100 + }, + { + "x": -100, + "y": 20 + } + ], + "textString": "\"K\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -20 + }, + { + "x": 20, + "y": -100 + } + ], + "textString": "\"degF\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_degF", + "description_string": "Convert from degFahrenheit to Kelvin", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Temperature_degF", + "component_list": [ + { + "declaration": { + "identifier": "Fahrenheit" + }, + "description": { + "description_string": "Fahrenheit value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Temperature", + "component_list": [ + { + "declaration": { + "identifier": "Kelvin" + }, + "description": { + "description_string": "Kelvin value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "Kelvin" + } + ], + "value": { + "simple_expression": "(Fahrenheit -32)*(5/9) -Modelica.Constants.T_zero" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -20, + "y": 100 + }, + { + "x": -100, + "y": 20 + } + ], + "textString": "\"degF\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -20 + }, + { + "x": 20, + "y": -100 + } + ], + "textString": "\"K\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -20, + "y": 100 + }, + { + "x": -100, + "y": 20 + } + ], + "textString": "\"degF\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_degRk", + "description_string": "Convert from Kelvin to degRankine", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Temperature", + "component_list": [ + { + "declaration": { + "identifier": "Kelvin" + }, + "description": { + "description_string": "Kelvin value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Temperature_degRk", + "component_list": [ + { + "declaration": { + "identifier": "Rankine" + }, + "description": { + "description_string": "Rankine value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "Rankine" + } + ], + "value": { + "simple_expression": "(9/5)*Kelvin" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -20, + "y": 100 + }, + { + "x": -100, + "y": 20 + } + ], + "textString": "\"K\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -32 + }, + { + "x": -18, + "y": -100 + } + ], + "textString": "\"degRk\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_degRk", + "description_string": "Convert from degRankine to Kelvin", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Temperature_degRk", + "component_list": [ + { + "declaration": { + "identifier": "Rankine" + }, + "description": { + "description_string": "Rankine value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Temperature", + "component_list": [ + { + "declaration": { + "identifier": "Kelvin" + }, + "description": { + "description_string": "Kelvin value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "Kelvin" + } + ], + "value": { + "simple_expression": "(5/9)*Rankine" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -8, + "y": 100 + }, + { + "x": -100, + "y": 42 + } + ], + "textString": "\"degRk\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -20 + }, + { + "x": 20, + "y": -100 + } + ], + "textString": "\"K\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_deg", + "description_string": "Convert from radian to degree", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Angle", + "component_list": [ + { + "declaration": { + "identifier": "radian" + }, + "description": { + "description_string": "radian value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Angle_deg", + "component_list": [ + { + "declaration": { + "identifier": "degree" + }, + "description": { + "description_string": "degree value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "degree" + } + ], + "value": { + "simple_expression": "(180/Modelica.Constants.pi)*radian" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 10, + "y": 100 + }, + { + "x": -100, + "y": 46 + } + ], + "textString": "\"rad\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -44 + }, + { + "x": -10, + "y": -100 + } + ], + "textString": "\"deg\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_deg", + "description_string": "Convert from degree to radian", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Angle_deg", + "component_list": [ + { + "declaration": { + "identifier": "degree" + }, + "description": { + "description_string": "degree value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Angle", + "component_list": [ + { + "declaration": { + "identifier": "radian" + }, + "description": { + "description_string": "radian value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "radian" + } + ], + "value": { + "simple_expression": "(Modelica.Constants.pi/180)*degree" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 4, + "y": 100 + }, + { + "x": -102, + "y": 46 + } + ], + "textString": "\"deg\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -32 + }, + { + "x": -18, + "y": -100 + } + ], + "textString": "\"rad\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_rpm", + "description_string": "Convert from radian per second to revolutions per minute", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "AngularVelocity", + "component_list": [ + { + "declaration": { + "identifier": "rs" + }, + "description": { + "description_string": "radian per second value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.AngularVelocity_rpm", + "component_list": [ + { + "declaration": { + "identifier": "rpm" + }, + "description": { + "description_string": "revolutions per minute value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "rpm" + } + ], + "value": { + "simple_expression": "(30/Modelica.Constants.pi)*rs" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 30, + "y": 100 + }, + { + "x": -100, + "y": 50 + } + ], + "textString": "\"rad/s\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -52 + }, + { + "x": -40, + "y": -98 + } + ], + "textString": "\"rev/min\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_rpm", + "description_string": "Convert from revolutions per minute to radian per second", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.AngularVelocity_rpm", + "component_list": [ + { + "declaration": { + "identifier": "rpm" + }, + "description": { + "description_string": "revolutions per minute value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "AngularVelocity", + "component_list": [ + { + "declaration": { + "identifier": "rs" + }, + "description": { + "description_string": "radian per second value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "rs" + } + ], + "value": { + "simple_expression": "(Modelica.Constants.pi/30)*rpm" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 14, + "y": 100 + }, + { + "x": -102, + "y": 56 + } + ], + "textString": "\"rev/min\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -56 + }, + { + "x": -32, + "y": -102 + } + ], + "textString": "\"rad/s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_kmh", + "description_string": "Convert from metre per second to kilometre per hour", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Velocity", + "component_list": [ + { + "declaration": { + "identifier": "ms" + }, + "description": { + "description_string": "metre per second value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Velocity_kmh", + "component_list": [ + { + "declaration": { + "identifier": "kmh" + }, + "description": { + "description_string": "kilometre per hour value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "kmh" + } + ], + "value": { + "simple_expression": "3.6*ms" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 8, + "y": 100 + }, + { + "x": -100, + "y": 58 + } + ], + "textString": "\"m/s\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -56 + }, + { + "x": -16, + "y": -100 + } + ], + "textString": "\"km/h\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_kmh", + "description_string": "Convert from kilometre per hour to metre per second", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Velocity_kmh", + "component_list": [ + { + "declaration": { + "identifier": "kmh" + }, + "description": { + "description_string": "kilometre per hour value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Velocity", + "component_list": [ + { + "declaration": { + "identifier": "ms" + }, + "description": { + "description_string": "metre per second value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "ms" + } + ], + "value": { + "simple_expression": "kmh/3.6" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 10, + "y": 100 + }, + { + "x": -100, + "y": 56 + } + ], + "textString": "\"km/h\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -50 + }, + { + "x": -20, + "y": -100 + } + ], + "textString": "\"m/s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_day", + "description_string": "Convert from second to day", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Time", + "component_list": [ + { + "declaration": { + "identifier": "s" + }, + "description": { + "description_string": "second value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Time_day", + "component_list": [ + { + "declaration": { + "identifier": "day" + }, + "description": { + "description_string": "day value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "day" + } + ], + "value": { + "simple_expression": "s/86400" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -6, + "y": 100 + }, + { + "x": -100, + "y": 48 + } + ], + "textString": "\"s\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -48 + }, + { + "x": -10, + "y": -98 + } + ], + "textString": "\"day\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_day", + "description_string": "Convert from day to second", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Time_day", + "component_list": [ + { + "declaration": { + "identifier": "day" + }, + "description": { + "description_string": "day value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Time", + "component_list": [ + { + "declaration": { + "identifier": "s" + }, + "description": { + "description_string": "second value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "s" + } + ], + "value": { + "simple_expression": "86400*day" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 10, + "y": 100 + }, + { + "x": -100, + "y": 52 + } + ], + "textString": "\"day\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -54 + }, + { + "x": 20, + "y": -100 + } + ], + "textString": "\"s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_hour", + "description_string": "Convert from second to hour", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Time", + "component_list": [ + { + "declaration": { + "identifier": "s" + }, + "description": { + "description_string": "second value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Time_hour", + "component_list": [ + { + "declaration": { + "identifier": "hour" + }, + "description": { + "description_string": "hour value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "hour" + } + ], + "value": { + "simple_expression": "s/3600" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 12, + "y": 100 + }, + { + "x": -100, + "y": 50 + } + ], + "textString": "\"s\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -56 + }, + { + "x": -20, + "y": -100 + } + ], + "textString": "\"hour\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_hour", + "description_string": "Convert from hour to second", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Time_hour", + "component_list": [ + { + "declaration": { + "identifier": "hour" + }, + "description": { + "description_string": "hour value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Time", + "component_list": [ + { + "declaration": { + "identifier": "s" + }, + "description": { + "description_string": "second value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "s" + } + ], + "value": { + "simple_expression": "3600*hour" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 12, + "y": 100 + }, + { + "x": -100, + "y": 58 + } + ], + "textString": "\"hour\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -50 + }, + { + "x": 16, + "y": -100 + } + ], + "textString": "\"s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_minute", + "description_string": "Convert from second to minute", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Time", + "component_list": [ + { + "declaration": { + "identifier": "s" + }, + "description": { + "description_string": "second value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Time_minute", + "component_list": [ + { + "declaration": { + "identifier": "minute" + }, + "description": { + "description_string": "minute value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "minute" + } + ], + "value": { + "simple_expression": "s/60" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -26, + "y": 100 + }, + { + "x": -100, + "y": 52 + } + ], + "textString": "\"s\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -54 + }, + { + "x": -20, + "y": -100 + } + ], + "textString": "\"min\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_minute", + "description_string": "Convert from minute to second", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Time_minute", + "component_list": [ + { + "declaration": { + "identifier": "minute" + }, + "description": { + "description_string": "minute value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Time", + "component_list": [ + { + "declaration": { + "identifier": "s" + }, + "description": { + "description_string": "second value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "s" + } + ], + "value": { + "simple_expression": "60*minute" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 26, + "y": 100 + }, + { + "x": -100, + "y": 48 + } + ], + "textString": "\"min\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -46 + }, + { + "x": 0, + "y": -100 + } + ], + "textString": "\"s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_litre", + "description_string": "Convert from cubic metre to litre", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Volume", + "component_list": [ + { + "declaration": { + "identifier": "m3" + }, + "description": { + "description_string": "cubic metre value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Volume_litre", + "component_list": [ + { + "declaration": { + "identifier": "litre" + }, + "description": { + "description_string": "litre value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "litre" + } + ], + "value": { + "simple_expression": "1000*m3" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -56 + }, + { + "x": 0, + "y": -100 + } + ], + "textString": "\"litre\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 6, + "y": 100 + }, + { + "x": -100, + "y": 56 + } + ], + "textString": "\"m3\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_litre", + "description_string": "Convert from litre to cubic metre", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Volume_litre", + "component_list": [ + { + "declaration": { + "identifier": "litre" + }, + "description": { + "description_string": "litre value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Volume", + "component_list": [ + { + "declaration": { + "identifier": "m3" + }, + "description": { + "description_string": "cubic metre value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "m3" + } + ], + "value": { + "simple_expression": "litre/1000" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -4, + "y": 100 + }, + { + "x": -100, + "y": 62 + } + ], + "textString": "\"litre\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -56 + }, + { + "x": -6, + "y": -100 + } + ], + "textString": "\"m3\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_Ah", + "description_string": "Convert from Ampere hours to Coulomb", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Modelica.SIunits.Conversions.NonSIunits.ElectricCharge_Ah", + "component_list": [ + { + "declaration": { + "identifier": "AmpereHour" + }, + "description": { + "description_string": "Ampere hours" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Modelica.SIunits.ElectricCharge", + "component_list": [ + { + "declaration": { + "identifier": "Coulomb" + }, + "description": { + "description_string": "Coulomb" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "Coulomb" + } + ], + "value": { + "simple_expression": "AmpereHour*3600" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -2, + "y": 100 + }, + { + "x": -100, + "y": 48 + } + ], + "textString": "\"Ah\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -46 + }, + { + "x": 0, + "y": -100 + } + ], + "textString": "\"C\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_Ah", + "description_string": "Convert from Coulomb to Ampere hours", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Modelica.SIunits.ElectricCharge", + "component_list": [ + { + "declaration": { + "identifier": "Coulomb" + }, + "description": { + "description_string": "Coulomb" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Modelica.SIunits.Conversions.NonSIunits.ElectricCharge_Ah", + "component_list": [ + { + "declaration": { + "identifier": "AmpereHour" + }, + "description": { + "description_string": "Ampere hours" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "AmpereHour" + } + ], + "value": { + "simple_expression": "Coulomb/3600" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -18, + "y": 100 + }, + { + "x": -100, + "y": 48 + } + ], + "textString": "\"C\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -48 + }, + { + "x": 2, + "y": -100 + } + ], + "textString": "\"Ah\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_Wh", + "description_string": "Convert from Watt hour to Joule", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Energy_Wh", + "component_list": [ + { + "declaration": { + "identifier": "WattHour" + }, + "description": { + "description_string": "Watt hour" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Modelica.SIunits.Energy", + "component_list": [ + { + "declaration": { + "identifier": "Joule" + }, + "description": { + "description_string": "Joule" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "Joule" + } + ], + "value": { + "simple_expression": "WattHour*3600" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -20, + "y": 100 + }, + { + "x": -100, + "y": 54 + } + ], + "textString": "\"Wh\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -38 + }, + { + "x": 4, + "y": -100 + } + ], + "textString": "\"J\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_Wh", + "description_string": "Convert from Joule to Watt hour", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Modelica.SIunits.Energy", + "component_list": [ + { + "declaration": { + "identifier": "Joule" + }, + "description": { + "description_string": "Joule" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Energy_Wh", + "component_list": [ + { + "declaration": { + "identifier": "WattHour" + }, + "description": { + "description_string": "Watt hour" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "WattHour" + } + ], + "value": { + "simple_expression": "Joule/3600" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -30, + "y": 100 + }, + { + "x": -100, + "y": 48 + } + ], + "textString": "\"J\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -46 + }, + { + "x": -14, + "y": -100 + } + ], + "textString": "\"Wh\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_kWh", + "description_string": "Convert from Joule to kilo Watt hour", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Energy", + "component_list": [ + { + "declaration": { + "identifier": "J" + }, + "description": { + "description_string": "Joule value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Energy_kWh", + "component_list": [ + { + "declaration": { + "identifier": "kWh" + }, + "description": { + "description_string": "kWh value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "kWh" + } + ], + "value": { + "simple_expression": "J/3600000" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -20, + "y": 100 + }, + { + "x": -100, + "y": 54 + } + ], + "textString": "\"J\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -50 + }, + { + "x": -10, + "y": -100 + } + ], + "textString": "\"kWh\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_kWh", + "description_string": "Convert from kilo Watt hour to Joule", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Energy_kWh", + "component_list": [ + { + "declaration": { + "identifier": "kWh" + }, + "description": { + "description_string": "kWh value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Energy", + "component_list": [ + { + "declaration": { + "identifier": "J" + }, + "description": { + "description_string": "Joule value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "J" + } + ], + "value": { + "simple_expression": "3600000*kWh" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 12, + "y": 100 + }, + { + "x": -100, + "y": 52 + } + ], + "textString": "\"kWh\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -44 + }, + { + "x": 12, + "y": -100 + } + ], + "textString": "\"J\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_bar", + "description_string": "Convert from Pascal to bar", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Pressure", + "component_list": [ + { + "declaration": { + "identifier": "Pa" + }, + "description": { + "description_string": "Pascal value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Pressure_bar", + "component_list": [ + { + "declaration": { + "identifier": "bar" + }, + "description": { + "description_string": "bar value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "bar" + } + ], + "value": { + "simple_expression": "Pa/100000" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -12, + "y": 100 + }, + { + "x": -100, + "y": 56 + } + ], + "textString": "\"Pa\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 98, + "y": -52 + }, + { + "x": -4, + "y": -100 + } + ], + "textString": "\"bar\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_bar", + "description_string": "Convert from bar to Pascal", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Pressure_bar", + "component_list": [ + { + "declaration": { + "identifier": "bar" + }, + "description": { + "description_string": "bar value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Pressure", + "component_list": [ + { + "declaration": { + "identifier": "Pa" + }, + "description": { + "description_string": "Pascal value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "Pa" + } + ], + "value": { + "simple_expression": "100000*bar" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -56 + }, + { + "x": 12, + "y": -100 + } + ], + "textString": "\"Pa\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 2, + "y": 100 + }, + { + "x": -100, + "y": 52 + } + ], + "textString": "\"bar\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_gps", + "description_string": "Convert from kilogram per second to gram per second", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "MassFlowRate", + "component_list": [ + { + "declaration": { + "identifier": "kgps" + }, + "description": { + "description_string": "kg/s value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.MassFlowRate_gps", + "component_list": [ + { + "declaration": { + "identifier": "gps" + }, + "description": { + "description_string": "g/s value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "gps" + } + ], + "value": { + "simple_expression": "1000*kgps" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -12, + "y": 100 + }, + { + "x": -100, + "y": 60 + } + ], + "textString": "\"kg/s\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -46 + }, + { + "x": -6, + "y": -100 + } + ], + "textString": "\"g/s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_gps", + "description_string": "Convert from gram per second to kilogram per second", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.MassFlowRate_gps", + "component_list": [ + { + "declaration": { + "identifier": "gps" + }, + "description": { + "description_string": "g/s value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "MassFlowRate", + "component_list": [ + { + "declaration": { + "identifier": "kgps" + }, + "description": { + "description_string": "kg/s value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "kgps" + } + ], + "value": { + "simple_expression": "gps/1000" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -8, + "y": 100 + }, + { + "x": -100, + "y": 54 + } + ], + "textString": "\"g/s\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -44 + }, + { + "x": -10, + "y": -100 + } + ], + "textString": "\"kg/s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_Hz", + "description_string": "Convert from Hz to rad/s", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "SIunits.Frequency", + "component_list": [ + { + "declaration": { + "identifier": "f" + }, + "description": { + "description_string": "frequency" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "SIunits.AngularVelocity", + "component_list": [ + { + "declaration": { + "identifier": "w" + }, + "description": { + "description_string": "angular velocity" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "w" + } + ], + "value": { + "simple_expression": "2*Modelica.Constants.pi*f" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 2, + "y": 100 + }, + { + "x": -100, + "y": 52 + } + ], + "textString": "\"Hz\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -56 + }, + { + "x": 12, + "y": -100 + } + ], + "textString": "\"1/s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_Hz", + "description_string": "Convert from rad/s to Hz", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "SIunits.AngularVelocity", + "component_list": [ + { + "declaration": { + "identifier": "w" + }, + "description": { + "description_string": "angular velocity" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "SIunits.Frequency", + "component_list": [ + { + "declaration": { + "identifier": "f" + }, + "description": { + "description_string": "frequency" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "f" + } + ], + "value": { + "simple_expression": "w/(2*Modelica.Constants.pi)" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -52 + }, + { + "x": -2, + "y": -100 + } + ], + "textString": "\"Hz\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -12, + "y": 100 + }, + { + "x": -100, + "y": 56 + } + ], + "textString": "\"1/s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "to_cm2", + "description_string": "Convert from square metre to square centimetre", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Area", + "component_list": [ + { + "declaration": { + "identifier": "m2" + }, + "description": { + "description_string": "square metre value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "NonSIunits.Area_cm", + "component_list": [ + { + "declaration": { + "identifier": "cm2" + }, + "description": { + "description_string": "square centimetre value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "cm2" + } + ], + "value": { + "simple_expression": "10000*m2" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -20, + "y": 100 + }, + { + "x": -100, + "y": 58 + } + ], + "textString": "\"m/s\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -50 + }, + { + "x": -18, + "y": -100 + } + ], + "textString": "\"cm2\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "from_cm2", + "description_string": "Convert from square centimetre to square metre", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.SIunits.Icons.Conversion" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "NonSIunits.Area_cm", + "component_list": [ + { + "declaration": { + "identifier": "cm2" + }, + "description": { + "description_string": "square centimetre value" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Area", + "component_list": [ + { + "declaration": { + "identifier": "m2" + }, + "description": { + "description_string": "square metre value" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "m2" + } + ], + "value": { + "simple_expression": "0.0001*cm2" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Inline", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 2, + "y": 100 + }, + { + "x": -100, + "y": 58 + } + ], + "textString": "\"cm2\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 100, + "y": -50 + }, + { + "x": -16, + "y": -98 + } + ], + "textString": "\"m/s\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial function", + "class_specifier": { + "long_class_specifier": { + "identifier": "ConversionIcon", + "description_string": "This icon will be removed in future Modelica versions.", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "lineColor": { + "r": 191, + "g": 0, + "b": 0 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -90, + "y": 0 + }, + { + "x": 30, + "y": 0 + } + ], + "color": { + "r": 191, + "g": 0, + "b": 0 + } + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 90, + "y": 0 + }, + { + "x": 30, + "y": 20 + }, + { + "x": 30, + "y": -20 + }, + { + "x": 90, + "y": 0 + } + ], + "lineColor": { + "r": 191, + "g": 0, + "b": 0 + }, + "fillColor": { + "r": 191, + "g": 0, + "b": 0 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -115, + "y": 155 + }, + { + "x": 115, + "y": 105 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon of a conversion symbol will be removed in future versions of the library. Instead the icon Modelica.SIunits.Icons.Conversion shall be used.\n

\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete function - use Modelica.SIunits.Icons.Conversion instead\"" + } + } + } + } + } + ] + } + } + } + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This package provides conversion functions from the non SI Units\ndefined in package Modelica.SIunits.Conversions.NonSIunits to the\ncorresponding SI Units defined in package Modelica.SIunits and vice\nversa. It is recommended to use these functions in the following\nway (note, that all functions have one Real input and one Real output\nargument):

\n
\n  import SI = Modelica.SIunits;\n  import Modelica.SIunits.Conversions.*;\n     ...\n  parameter SI.Temperature     T   = from_degC(25);   // convert 25 degree Celsius to Kelvin\n  parameter SI.Angle           phi = from_deg(180);   // convert 180 degree to radian\n  parameter SI.AngularVelocity w   = from_rpm(3600);  // convert 3600 revolutions per minutes\n                                                      // to radian per seconds\n
\n\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Angle", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Angle\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"rad\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "displayUnit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"deg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SolidAngle", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SolidAngle\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"sr\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Length", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Length\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PathLength", + "value": { + "name": "Length" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Position", + "value": { + "name": "Length" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Distance", + "value": { + "name": "Length", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Breadth", + "value": { + "name": "Length", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Height", + "value": { + "name": "Length", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Thickness", + "value": { + "name": "Length", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Radius", + "value": { + "name": "Length", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Diameter", + "value": { + "name": "Length", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Area", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Area\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Volume", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Volume\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Time", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Duration", + "value": { + "name": "Time" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AngularVelocity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularVelocity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"rad/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AngularAcceleration", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularAcceleration\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"rad/s2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Velocity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Velocity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Acceleration", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Acceleration\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m/s2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Period", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Frequency", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Frequency\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Hz\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AngularFrequency", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularFrequency\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"rad/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Wavelength", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Wavelength\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Wavelenght", + "value": { + "name": "Wavelength" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "WaveNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"WaveNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CircularWaveNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CircularWaveNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"rad/m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AmplitudeLevelDifference", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AmplitudeLevelDifference\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"dB\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PowerLevelDifference", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PowerLevelDifference\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"dB\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DampingCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DampingCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LogarithmicDecrement", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LogarithmicDecrement\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/S\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AttenuationCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AttenuationCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PhaseCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PhaseCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PropagationCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PropagationCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Damping", + "value": { + "name": "DampingCoefficient" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Mass", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Mass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Density", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Density\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg/m3\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "displayUnit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"g/cm3\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RelativeDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RelativeDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificVolume", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpecificVolume\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m3/kg\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LinearDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg/m\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SurfaceDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SurfaceDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg/m2\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Momentum", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Momentum\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg.m/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Impulse", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Impulse\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AngularMomentum", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularMomentum\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg.m2/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AngularImpulse", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularImpulse\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.m.s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MomentOfInertia", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MomentOfInertia\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg.m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Inertia", + "value": { + "name": "MomentOfInertia" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Force", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Force\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TranslationalSpringConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TranslationalSpringConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N/m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TranslationalDampingConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TranslationalDampingConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.s/m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Weight", + "value": { + "name": "Force" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Torque", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Torque\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricalTorqueConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricalTorqueConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.m/A\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MomentOfForce", + "value": { + "name": "Torque" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ImpulseFlowRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ImpulseFlowRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AngularImpulseFlowRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularImpulseFlowRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RotationalSpringConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RotationalSpringConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.m/rad\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RotationalDampingConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RotationalDampingConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.m.s/rad\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Pressure", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pressure\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "displayUnit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"bar\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AbsolutePressure", + "value": { + "name": "Pressure", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "nominal", + "modification": { + "equal": true, + "expression": { + "simple_expression": "100000" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PressureDifference", + "value": { + "name": "Pressure" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "BulkModulus", + "value": { + "name": "AbsolutePressure" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Stress", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NormalStress", + "value": { + "name": "Stress" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ShearStress", + "value": { + "name": "Stress" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Strain", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Strain\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearStrain", + "value": { + "name": "Strain" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ShearStrain", + "value": { + "name": "Strain" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "VolumeStrain", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"VolumeStrain\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PoissonNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PoissonNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ModulusOfElasticity", + "value": { + "name": "Stress" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ShearModulus", + "value": { + "name": "Stress" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SecondMomentOfArea", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SecondMomentOfArea\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m4\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SecondPolarMomentOfArea", + "value": { + "name": "SecondMomentOfArea" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SectionModulus", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SectionModulus\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CoefficientOfFriction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CoefficientOfFriction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DynamicViscosity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DynamicViscosity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa.s\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "KinematicViscosity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"KinematicViscosity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/s\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SurfaceTension", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SurfaceTension\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N/m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Work", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Work\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Energy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EnergyDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"EnergyDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/m3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PotentialEnergy", + "value": { + "name": "Energy" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "KineticEnergy", + "value": { + "name": "Energy" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Power", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Power\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EnergyFlowRate", + "value": { + "name": "Power" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EnthalpyFlowRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"EnthalpyFlowRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Efficiency", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Efficiency\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassFlowRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MassFlowRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "VolumeFlowRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"VolumeFlowRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m3/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MomentumFlux", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MomentumFlux\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AngularMomentumFlux", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularMomentumFlux\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermodynamicTemperature", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermodynamicTemperature\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"K\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "start", + "modification": { + "equal": true, + "expression": { + "simple_expression": "288.15" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "nominal", + "modification": { + "equal": true, + "expression": { + "simple_expression": "300" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "displayUnit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"degC\"" + } + } + } + } + } + ], + "description": { + "description_string": "Absolute temperature (use type TemperatureDifference for relative temperatures)", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "absoluteValue", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Temp_K", + "value": { + "name": "ThermodynamicTemperature" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Temperature", + "value": { + "name": "ThermodynamicTemperature" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TemperatureDifference", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermodynamicTemperature\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"K\"" + } + } + } + } + } + ], + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "absoluteValue", + "modification": { + "equal": true, + "expression": { + "simple_expression": "false" + } + } + } + } + } + ] + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Temp_C", + "value": { + "name": "SIunits.Conversions.NonSIunits.Temperature_degC" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TemperatureSlope", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TemperatureSlope\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"K/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearTemperatureCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LinearTemperatureCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/K\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "QuadraticTemperatureCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"QuadraticTemperatureCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/K2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearExpansionCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LinearExpansionCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/K\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CubicExpansionCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CubicExpansionCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/K\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RelativePressureCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RelativePressureCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/K\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PressureCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PressureCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa/K\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Compressibility", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Compressibility\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/Pa\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "IsothermalCompressibility", + "value": { + "name": "Compressibility" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "IsentropicCompressibility", + "value": { + "name": "Compressibility" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Heat", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HeatFlowRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Power\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HeatFlux", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"HeatFlux\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DensityOfHeatFlowRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DensityOfHeatFlowRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermalConductivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermalConductivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/(m.K)\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CoefficientOfHeatTransfer", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CoefficientOfHeatTransfer\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/(m2.K)\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SurfaceCoefficientOfHeatTransfer", + "value": { + "name": "CoefficientOfHeatTransfer" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermalInsulance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermalInsulance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2.K/W\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermalResistance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermalResistance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"K/W\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermalConductance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermalConductance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/K\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermalDiffusivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermalDiffusivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HeatCapacity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"HeatCapacity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/K\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificHeatCapacity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpecificHeatCapacity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/(kg.K)\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificHeatCapacityAtConstantPressure", + "value": { + "name": "SpecificHeatCapacity" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificHeatCapacityAtConstantVolume", + "value": { + "name": "SpecificHeatCapacity" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificHeatCapacityAtSaturation", + "value": { + "name": "SpecificHeatCapacity" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RatioOfSpecificHeatCapacities", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RatioOfSpecificHeatCapacities\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "IsentropicExponent", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"IsentropicExponent\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Entropy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Entropy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/K\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EntropyFlowRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"EntropyFlowRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/(K.s)\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificEntropy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpecificEntropy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/(kg.K)\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "InternalEnergy", + "value": { + "name": "Heat" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Enthalpy", + "value": { + "name": "Heat" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HelmholtzFreeEnergy", + "value": { + "name": "Heat" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "GibbsFreeEnergy", + "value": { + "name": "Heat" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpecificEnergy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/kg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificInternalEnergy", + "value": { + "name": "SpecificEnergy" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificEnthalpy", + "value": { + "name": "SpecificEnergy" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificHelmholtzFreeEnergy", + "value": { + "name": "SpecificEnergy" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificGibbsFreeEnergy", + "value": { + "name": "SpecificEnergy" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassieuFunction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MassieuFunction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/K\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PlanckFunction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PlanckFunction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/K\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DerDensityByEnthalpy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg.s2/m5\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DerDensityByPressure", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s2/m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DerDensityByTemperature", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg/(m3.K)\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DerEnthalpyByPressure", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J.m.s2/kg2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DerEnergyByDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J.m3/kg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DerEnergyByPressure", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J.m.s2/kg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DerPressureByDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa.m3/kg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DerPressureByTemperature", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa/K\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricCurrent", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricCurrent\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Current", + "value": { + "name": "ElectricCurrent" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CurrentSlope", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CurrentSlope\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricCharge", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricCharge\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Charge", + "value": { + "name": "ElectricCharge" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "VolumeDensityOfCharge", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"VolumeDensityOfCharge\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C/m3\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SurfaceDensityOfCharge", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SurfaceDensityOfCharge\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C/m2\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricFieldStrength", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricFieldStrength\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V/m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricPotential", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricPotential\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Voltage", + "value": { + "name": "ElectricPotential" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PotentialDifference", + "value": { + "name": "ElectricPotential" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectromotiveForce", + "value": { + "name": "ElectricPotential" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "VoltageSecond", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"VoltageSecond\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V.s\"" + } + } + } + } + } + ], + "description": { + "description_string": "Voltage second" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "VoltageSlope", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"VoltageSlope\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricFluxDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricFluxDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C/m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricFlux", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricFlux\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Capacitance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Capacitance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"F\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CapacitancePerArea", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CapacitancePerArea\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"F/m2\"" + } + } + } + } + } + ], + "description": { + "description_string": "Capacitance per area" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Permittivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Permittivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"F/m\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PermittivityOfVacuum", + "value": { + "name": "Permittivity" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RelativePermittivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RelativePermittivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricSusceptibility", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricSusceptibility\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricPolarization", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricPolarization\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C/m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Electrization", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Electrization\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V/m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricDipoleMoment", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricDipoleMoment\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C.m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CurrentDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CurrentDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A/m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearCurrentDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LinearCurrentDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A/m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticFieldStrength", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticFieldStrength\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A/m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticPotential", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticPotential\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticPotentialDifference", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticPotential\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagnetomotiveForce", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagnetomotiveForce\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CurrentLinkage", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CurrentLinkage\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticFluxDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticFluxDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"T\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticFlux", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticFlux\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Wb\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticVectorPotential", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticVectorPotential\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Wb/m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Inductance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Inductance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"H\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SelfInductance", + "value": { + "name": "Inductance", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MutualInductance", + "value": { + "name": "Inductance" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CouplingCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CouplingCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LeakageCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LeakageCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Permeability", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Permeability\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"H/m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PermeabilityOfVacuum", + "value": { + "name": "Permeability" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RelativePermeability", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RelativePermeability\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticSusceptibility", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticSusceptibility\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectromagneticMoment", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectromagneticMoment\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A.m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticDipoleMoment", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticDipoleMoment\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Wb.m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Magnetization", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Magnetization\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A/m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticPolarization", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticPolarization\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"T\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectromagneticEnergyDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"EnergyDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/m3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PoyntingVector", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PoyntingVector\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Resistance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Resistance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Ohm\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Resistivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Resistivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Ohm.m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Conductivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Conductivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"S/m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Reluctance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Reluctance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"H-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Permeance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Permeance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"H\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PhaseDifference", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Angle\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"rad\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "displayUnit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"deg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Impedance", + "value": { + "name": "Resistance" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ModulusOfImpedance", + "value": { + "name": "Resistance" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Reactance", + "value": { + "name": "Resistance" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "QualityFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"QualityFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LossAngle", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Angle\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"rad\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "displayUnit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"deg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Conductance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Conductance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"S\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Admittance", + "value": { + "name": "Conductance" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ModulusOfAdmittance", + "value": { + "name": "Conductance" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Susceptance", + "value": { + "name": "Conductance" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "InstantaneousPower", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Power\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ActivePower", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Power\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ApparentPower", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Power\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V.A\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ReactivePower", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Power\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"var\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PowerFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PowerFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearTemperatureCoefficientResistance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LinearTemperatureCoefficientResistance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Ohm/K\"" + } + } + } + } + } + ], + "description": { + "description_string": "First Order Temperature Coefficient" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "QuadraticTemperatureCoefficientResistance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"QuadraticTemperatureCoefficientResistance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Ohm/K2\"" + } + } + } + } + } + ], + "description": { + "description_string": "Second Order Temperature Coefficient" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Transconductance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Transconductance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A/V2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "InversePotential", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"InversePotential\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/V\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricalForceConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricalForceConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N/A\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RadiantEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RadiantEnergyDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"EnergyDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/m3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralRadiantEnergyDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralRadiantEnergyDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/m4\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RadiantPower", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Power\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RadiantEnergyFluenceRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RadiantEnergyFluenceRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RadiantIntensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RadiantIntensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/sr\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Radiance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Radiance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/(sr.m2)\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RadiantExtiance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RadiantExtiance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Irradiance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Irradiance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Emissivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Emissivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralEmissivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralEmissivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DirectionalSpectralEmissivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DirectionalSpectralEmissivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LuminousIntensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LuminousIntensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"cd\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LuminousFlux", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LuminousFlux\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"lm\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "QuantityOfLight", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"QuantityOfLight\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"lm.s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Luminance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Luminance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"cd/m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LuminousExitance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LuminousExitance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"lm/m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Illuminance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Illuminance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"lx\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LightExposure", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LightExposure\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"lx.s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LuminousEfficacy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LuminousEfficacy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"lm/W\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralLuminousEfficacy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralLuminousEfficacy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"lm/W\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LuminousEfficiency", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LuminousEfficiency\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralLuminousEfficiency", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralLuminousEfficiency\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CIESpectralTristimulusValues", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CIESpectralTristimulusValues\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ChromaticityCoordinates", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CromaticityCoordinates\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralAbsorptionFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralAbsorptionFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralReflectionFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralReflectionFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralTransmissionFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralTransmissionFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralRadianceFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralRadianceFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearAttenuationCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AttenuationCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearAbsorptionCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LinearAbsorptionCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarAbsorptionCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarAbsorptionCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/mol\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RefractiveIndex", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RefractiveIndex\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "StaticPressure", + "value": { + "name": "AbsolutePressure" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundPressure", + "value": { + "name": "StaticPressure" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundParticleDisplacement", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Length\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundParticleVelocity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Velocity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundParticleAcceleration", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Acceleration\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m/s2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "VelocityOfSound", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Velocity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundEnergyDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"EnergyDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/m3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundPower", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Power\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundIntensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SoundIntensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AcousticImpedance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AcousticImpedance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa.s/m3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificAcousticImpedance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpecificAcousticImpedance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa.s/m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MechanicalImpedance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MechanicalImpedance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"N.s/m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundPressureLevel", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SoundPressureLevel\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"dB\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundPowerLevel", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SoundPowerLevel\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"dB\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DissipationCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DissipationCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ReflectionCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ReflectionCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TransmissionCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TransmissionCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AcousticAbsorptionCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AcousticAbsorptionCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SoundReductionIndex", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SoundReductionIndex\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"dB\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EquivalentAbsorptionArea", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Area\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ReverberationTime", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LoudnessLevel", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LoudnessLevel\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"phon\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Loudness", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Loudness\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"sone\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LoundnessLevel", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LoundnessLevel\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"phon\"" + } + } + } + } + } + ], + "description": { + "description_string": "Obsolete type, use LoudnessLevel instead!", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete type - use Modelica.SIunits.LoudnessLevel instead\"" + } + } + } + } + } + ] + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Loundness", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Loundness\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"sone\"" + } + } + } + } + } + ], + "description": { + "description_string": "Obsolete type, use Loudness instead!", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete type - use Modelica.SIunits.Loudness instead\"" + } + } + } + } + } + ] + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RelativeAtomicMass", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RelativeAtomicMass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RelativeMolecularMass", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RelativeMolecularMass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NumberOfMolecules", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NumberOfMolecules\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AmountOfSubstance", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AmountOfSubstance\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"mol\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarMass", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarMass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg/mol\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarVolume", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarVolume\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m3/mol\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"mol/m3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarEnergy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/mol\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "nominal", + "modification": { + "equal": true, + "expression": { + "simple_expression": "20000" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarInternalEnergy", + "value": { + "name": "MolarEnergy" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarHeatCapacity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarHeatCapacity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/(mol.K)\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarEntropy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarEntropy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/(mol.K)\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarEnthalpy", + "value": { + "name": "MolarEnergy" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarFlowRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarFlowRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"mol/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NumberDensityOfMolecules", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NumberDensityOfMolecules\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolecularConcentration", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolecularConcentration\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassConcentration", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MassConcentration\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg/m3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassFraction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MassFraction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "max", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Concentration", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Concentration\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"mol/m3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "VolumeFraction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"VolumeFraction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MoleFraction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MoleFraction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "max", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ChemicalPotential", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ChemicalPotential\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/mol\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AbsoluteActivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AbsoluteActivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PartialPressure", + "value": { + "name": "AbsolutePressure" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Fugacity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Fugacity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "StandardAbsoluteActivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"StandardAbsoluteActivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ActivityCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ActivityCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ActivityOfSolute", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ActivityOfSolute\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ActivityCoefficientOfSolute", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ActivityCoefficientOfSolute\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "StandardAbsoluteActivityOfSolute", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"StandardAbsoluteActivityOfSolute\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ActivityOfSolvent", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ActivityOfSolvent\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "OsmoticCoefficientOfSolvent", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"OsmoticCoefficientOfSolvent\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "StandardAbsoluteActivityOfSolvent", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"StandardAbsoluteActivityOfSolvent\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "OsmoticPressure", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pressure\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Pa\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "displayUnit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"bar\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "StoichiometricNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"StoichiometricNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Affinity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Affinity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/mol\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassOfMolecule", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Mass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricDipoleMomentOfMolecule", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricDipoleMomentOfMolecule\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C.m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectricPolarizabilityOfAMolecule", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectricPolarizabilityOfAMolecule\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C.m2/V\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MicrocanonicalPartitionFunction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MicrocanonicalPartitionFunction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CanonicalPartitionFunction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CanonicalPartitionFunction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "GrandCanonicalPartitionFunction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"GrandCanonicalPartitionFunction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolecularPartitionFunction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolecularPartitionFunction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "StatisticalWeight", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"StatisticalWeight\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MeanFreePath", + "value": { + "name": "Length" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DiffusionCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DiffusionCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermalDiffusionRatio", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermalDiffusionRatio\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermalDiffusionFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermalDiffusionFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermalDiffusionCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermalDiffusionCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElementaryCharge", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElementaryCharge\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ChargeNumberOfIon", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ChargeNumberOfIon\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FaradayConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"FaradayConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C/mol\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "IonicStrength", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"IonicStrength\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"mol/kg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DegreeOfDissociation", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DegreeOfDissociation\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectrolyticConductivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectrolyticConductivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"S/m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarConductivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarConductivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"S.m2/mol\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TransportNumberOfIonic", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TransportNumberOfIonic\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ProtonNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ProtonNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NeutronNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NeutronNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NucleonNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NucleonNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AtomicMassConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Mass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassOfElectron", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Mass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassOfProton", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Mass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassOfNeutron", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Mass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HartreeEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticMomentOfParticle", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticMomentOfParticle\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A.m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "BohrMagneton", + "value": { + "name": "MagneticMomentOfParticle" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NuclearMagneton", + "value": { + "name": "MagneticMomentOfParticle" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "GyromagneticCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"GyromagneticCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A.m2/(J.s)\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "GFactorOfAtom", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"GFactorOfAtom\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "GFactorOfNucleus", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"GFactorOfNucleus\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LarmorAngularFrequency", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularFrequency\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NuclearPrecessionAngularFrequency", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularFrequency\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CyclotronAngularFrequency", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularFrequency\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NuclearQuadrupoleMoment", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NuclearQuadrupoleMoment\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NuclearRadius", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Length\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectronRadius", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Length\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComptonWavelength", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Length\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassExcess", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Mass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassDefect", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Mass\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RelativeMassExcess", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RelativeMassExcess\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RelativeMassDefect", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RelativeMassDefect\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PackingFraction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PackingFraction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "BindingFraction", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"BindingFraction\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MeanLife", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LevelWidth", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LevelWidth\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Activity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Activity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Bq\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificActivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpecificActivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Bq/kg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DecayConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DecayConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HalfLife", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AlphaDisintegrationEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MaximumBetaParticleEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "BetaDisintegrationEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ReactionEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ResonanceEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CrossSection", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Area\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TotalCrossSection", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Area\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AngularCrossSection", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularCrossSection\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/sr\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralCrossSection", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralCrossSection\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/J\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralAngularCrossSection", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralAngularCrossSection\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/(sr.J)\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MacroscopicCrossSection", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MacroscopicCrossSection\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TotalMacroscopicCrossSection", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TotalMacroscopicCrossSection\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ParticleFluence", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ParticleFluence\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ParticleFluenceRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ParticleFluenceRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1.m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EnergyFluence", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"EnergyFluence\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EnergyFluenceRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"EnergyFluenceRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"W/m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CurrentDensityOfParticles", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CurrentDensityOfParticles\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-2.s-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassAttenuationCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MassAttenuationCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/kg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MolarAttenuationCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MolarAttenuationCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/mol\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AtomicAttenuationCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AtomicAttenuationCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HalfThickness", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Length\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TotalLinearStoppingPower", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TotalLinearStoppingPower\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TotalAtomicStoppingPower", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TotalAtomicStoppingPower\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J.m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TotalMassStoppingPower", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TotalMassStoppingPower\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J.m2/kg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MeanLinearRange", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Length\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MeanMassRange", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MeanMassRange\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"kg/m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearIonization", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LinearIonization\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TotalIonization", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TotalIonization\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Mobility", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Mobility\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/(V.s)\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "IonNumberDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"IonNumberDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RecombinationCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RecombinationCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m3/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NeutronNumberDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NeutronNumberDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NeutronSpeed", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Velocity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NeutronFluenceRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NeutronFluenceRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1.m-2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TotalNeutronSourceDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"TotalNeutronSourceDesity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1.m-3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SlowingDownDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SlowingDownDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1.m-3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ResonanceEscapeProbability", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ResonanceEscapeProbability\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Lethargy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Lethargy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SlowingDownArea", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Area\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DiffusionArea", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Area\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MigrationArea", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Area\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SlowingDownLength", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SLength\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DiffusionLength", + "value": { + "name": "Length" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MigrationLength", + "value": { + "name": "Length" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NeutronYieldPerFission", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NeutronYieldPerFission\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NeutronYieldPerAbsorption", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NeutronYieldPerAbsorption\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FastFissionFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"FastFissionFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermalUtilizationFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermalUtilizationFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NonLeakageProbability", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NonLeakageProbability\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Reactivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Reactivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ReactorTimeConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EnergyImparted", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MeanEnergyImparted", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpecificEnergyImparted", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpecificEnergy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Gy\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AbsorbedDose", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AbsorbedDose\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Gy\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DoseEquivalent", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DoseEquivalent\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Sv\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AbsorbedDoseRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AbsorbedDoseRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Gy/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LinearEnergyTransfer", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LinearEnergyTransfer\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J/m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Kerma", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Kerma\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Gy\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "KermaRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"KermaRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Gy/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MassEnergyTransferCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MassEnergyTransferCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m2/kg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "Exposure", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Exposure\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C/kg\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ExposureRate", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ExposureRate\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"C/(kg.s)\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ReynoldsNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ReynoldsNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EulerNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"EulerNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FroudeNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"FroudeNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "GrashofNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"GrashofNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "WeberNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"WeberNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MachNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MachNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "KnudsenNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"KnudsenNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "StrouhalNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"StrouhalNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FourierNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"FourierNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PecletNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PecletNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RayleighNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RayleighNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NusseltNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NusseltNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "BiotNumber", + "value": { + "name": "NusseltNumber" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "StantonNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"StantonNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FourierNumberOfMassTransfer", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"FourierNumberOfMassTransfer\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PecletNumberOfMassTransfer", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PecletNumberOfMassTransfer\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "GrashofNumberOfMassTransfer", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"GrashofNumberOfMassTransfer\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NusseltNumberOfMassTransfer", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"NusseltNumberOfMassTransfer\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "StantonNumberOfMassTransfer", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"StantonNumberOfMassTransfer\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PrandtlNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PrandtlNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SchmidtNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SchmidtNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LewisNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LewisNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MagneticReynoldsNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MagneticReynoldsNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AlfvenNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AlfvenNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HartmannNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"HartmannNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CowlingNumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CowlingNumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "BraggAngle", + "value": { + "name": "Angle" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "OrderOfReflexion", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"OrderOfReflexion\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ShortRangeOrderParameter", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RangeOrderParameter\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LongRangeOrderParameter", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RangeOrderParameter\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DebyeWallerFactor", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DebyeWallerFactor\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CircularWavenumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"CircularWavenumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FermiCircularWavenumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"FermiCircularWavenumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DebyeCircularWavenumber", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DebyeCircularWavenumber\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DebyeCircularFrequency", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AngularFrequency\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s-1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DebyeTemperature", + "value": { + "name": "ThermodynamicTemperature" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SpectralConcentration", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SpectralConcentration\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"s/m3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "GrueneisenParameter", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"GrueneisenParameter\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MadelungConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MadelungConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DensityOfStates", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DensityOfStates\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"J-1/m-3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ResidualResistivity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ResidualResistivity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Ohm.m\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LorenzCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LorenzCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V2/K2\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HallCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"HallCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m3/C\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThermoelectromotiveForce", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThermoelectromotiveForce\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SeebeckCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"SeebeckCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V/K\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PeltierCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"PeltierCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ThomsonCoefficient", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ThomsonCoefficient\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"V/K\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RichardsonConstant", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"RichardsonConstant\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A/(m2.K2)\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FermiEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"eV\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "GapEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"eV\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DonorIonizationEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"eV\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AcceptorIonizationEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"eV\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ActivationEnergy", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"eV\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FermiTemperature", + "value": { + "name": "ThermodynamicTemperature" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ElectronNumberDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"ElectronNumberDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "HoleNumberDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"HoleNumberDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "IntrinsicNumberDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"IntrinsicNumberDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DonorNumberDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"DonorNumberDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "AcceptorNumberDensity", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"AcceptorNumberDensity\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"m-3\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "EffectiveMass", + "value": { + "name": "Mass" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "MobilityRatio", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"MobilityRatio\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "RelaxationTime", + "value": { + "name": "Time" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CarrierLifeTime", + "value": { + "name": "Time" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ExchangeIntegral", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Energy\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"eV\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CurieTemperature", + "value": { + "name": "ThermodynamicTemperature" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "NeelTemperature", + "value": { + "name": "ThermodynamicTemperature" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LondonPenetrationDepth", + "value": { + "name": "Length" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "CoherenceLength", + "value": { + "name": "Length" + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "LandauGinzburgParameter", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"LandauGinzburgParameter\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "FluxiodQuantum", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"FluxiodQuantum\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Wb\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "TimeAging", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/Modelica.SIunits.Time\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/s\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "ChargeAging", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "quantity", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/Modelica.SIunits.ElectricCharge\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1/(A.s)\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "PerUnit", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "DimensionlessRatio", + "value": { + "name": "Real", + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "unit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"1\"" + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexCurrent", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.Current", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex current" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.Current", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex current" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electrical current" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexCurrentSlope", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.CurrentSlope", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex current slope" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.CurrentSlope", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex current slope" + } + } + } + } + } + ], + "description": { + "description_string": "Complex current slope" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexCurrentDensity", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.CurrentDensity", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex current density" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.CurrentDensity", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex current density" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electrical current density" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexElectricPotential", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.ElectricPotential", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Imaginary part of complex electric potential" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.ElectricPotential", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Real part of complex electrical potential" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electric potential" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexPotentialDifference", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.PotentialDifference", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex potential difference" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.PotentialDifference", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex potential difference" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electric potential difference" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexVoltage", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.Voltage", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Imaginary part of complex voltage" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.Voltage", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Real part of complex voltage" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electrical voltage" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexVoltageSlope", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.VoltageSlope", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex voltage slope" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.VoltageSlope", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex voltage slope" + } + } + } + } + } + ], + "description": { + "description_string": "Complex voltage slope" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexElectricFieldStrength", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.ElectricFieldStrength", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex electric field strength" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.ElectricFieldStrength", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex electric field strength" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electric field strength" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexElectricFluxDensity", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.ElectricFluxDensity", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex electric flux density" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.ElectricFluxDensity", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex electric flux density" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electric flux density" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexElectricFlux", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.ElectricFlux", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex electric flux" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.ElectricFlux", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex electric flux" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electric flux" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexMagneticFieldStrength", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticFieldStrength", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex magnetic field strength" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticFieldStrength", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex magnetic field strength" + } + } + } + } + } + ], + "description": { + "description_string": "Complex magnetic field strength" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexMagneticPotential", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticPotential", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex magnetic potential" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticPotential", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex magnetic potential" + } + } + } + } + } + ], + "description": { + "description_string": "Complex magnetic potential" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexMagneticPotentialDifference", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticPotentialDifference", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex magnetic potential difference" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticPotentialDifference", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex magnetic potential difference" + } + } + } + } + } + ], + "description": { + "description_string": "Complex magnetic potential difference" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexMagnetomotiveForce", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagnetomotiveForce", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex magnetomotive force" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagnetomotiveForce", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex magnetomotive force" + } + } + } + } + } + ], + "description": { + "description_string": "Complex magnetomotive force" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexMagneticFluxDensity", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticFluxDensity", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex magnetic flux density" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticFluxDensity", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex magnetic flux density" + } + } + } + } + } + ], + "description": { + "description_string": "Complex magnetic flux density" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexMagneticFlux", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticFlux", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex magnetic flux" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.MagneticFlux", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex magnetic flux" + } + } + } + } + } + ], + "description": { + "description_string": "Complex magnetic flux" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexReluctance", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.Reluctance", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex reluctance" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Modelica.SIunits.Reluctance", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex reluctance" + } + } + } + } + } + ], + "description": { + "description_string": "Complex reluctance", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nSince magnetic material properties like reluctance and permeance often are anisotropic resp. salient,\na special operator instead of multiplication (compare: tensor vs. vector) is required.\nModelica.Magnetic.FundamentalWave uses a\nspecial record Salient\nwhich is only valid in the rotor-fixed coordinate system.\n

\n

\nNote: To avoid confusion, no magnetic material properties should be defined as Complex units.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexImpedance", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Resistance", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex impedance (resistance)" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Reactance", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex impedance (reactance)" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electrical impedance" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexAdmittance", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Conductance", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex admittance (conductance)" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "Susceptance", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex admittance (susceptance)" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electrical admittance" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexPower", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "ActivePower", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex power (active power)" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "ReactivePower", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex power (reactive power)" + } + } + } + } + } + ], + "description": { + "description_string": "Complex electrical power" + } + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "operator record", + "class_specifier": { + "short_class_specifier": { + "identifier": "ComplexPerUnit", + "value": { + "name": "Complex", + "class_modification": [ + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "PerUnit", + "component_declaration1": { + "declaration": { + "identifier": "re" + }, + "description": { + "description_string": "Real part of complex per unit quantity" + } + } + } + } + }, + { + "element_redeclaration": { + "component_clause1": { + "type_specifier": "PerUnit", + "component_declaration1": { + "declaration": { + "identifier": "im" + }, + "description": { + "description_string": "Imaginary part of complex per unit quantity" + } + } + } + } + } + ], + "description": { + "description_string": "Complex per unit" + } + } + } + } + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -80, + "y": -40 + }, + { + "x": -80, + "y": -40 + }, + { + "x": -55, + "y": 50 + }, + { + "x": -52.5, + "y": 62.5 + }, + { + "x": -65, + "y": 60 + }, + { + "x": -65, + "y": 65 + }, + { + "x": -35, + "y": 77.5 + }, + { + "x": -32.5, + "y": 60 + }, + { + "x": -50, + "y": 0 + }, + { + "x": -50, + "y": 0 + }, + { + "x": -30, + "y": 15 + }, + { + "x": -20, + "y": 27.5 + }, + { + "x": -32.5, + "y": 27.5 + }, + { + "x": -32.5, + "y": 27.5 + }, + { + "x": -32.5, + "y": 32.5 + }, + { + "x": -32.5, + "y": 32.5 + }, + { + "x": 2.5, + "y": 32.5 + }, + { + "x": 2.5, + "y": 32.5 + }, + { + "x": 2.5, + "y": 27.5 + }, + { + "x": 2.5, + "y": 27.5 + }, + { + "x": -7.5, + "y": 27.5 + }, + { + "x": -30, + "y": 7.5 + }, + { + "x": -30, + "y": 7.5 + }, + { + "x": -25, + "y": -25 + }, + { + "x": -17.5, + "y": -28.75 + }, + { + "x": -10, + "y": -25 + }, + { + "x": -5, + "y": -26.25 + }, + { + "x": -5, + "y": -32.5 + }, + { + "x": -16.25, + "y": -41.25 + }, + { + "x": -31.25, + "y": -43.75 + }, + { + "x": -40, + "y": -33.75 + }, + { + "x": -45, + "y": -5 + }, + { + "x": -45, + "y": -5 + }, + { + "x": -52.5, + "y": -10 + }, + { + "x": -52.5, + "y": -10 + }, + { + "x": -60, + "y": -40 + }, + { + "x": -60, + "y": -40 + } + ], + "smooth": "Smooth.Bezier", + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 87.5, + "y": 30 + }, + { + "x": 62.5, + "y": 30 + }, + { + "x": 62.5, + "y": 30 + }, + { + "x": 55, + "y": 33.75 + }, + { + "x": 36.25, + "y": 35 + }, + { + "x": 16.25, + "y": 25 + }, + { + "x": 7.5, + "y": 6.25 + }, + { + "x": 11.25, + "y": -7.5 + }, + { + "x": 22.5, + "y": -12.5 + }, + { + "x": 22.5, + "y": -12.5 + }, + { + "x": 6.25, + "y": -22.5 + }, + { + "x": 6.25, + "y": -35 + }, + { + "x": 16.25, + "y": -38.75 + }, + { + "x": 16.25, + "y": -38.75 + }, + { + "x": 21.25, + "y": -41.25 + }, + { + "x": 21.25, + "y": -41.25 + }, + { + "x": 45, + "y": -48.75 + }, + { + "x": 47.5, + "y": -61.25 + }, + { + "x": 32.5, + "y": -70 + }, + { + "x": 12.5, + "y": -65 + }, + { + "x": 7.5, + "y": -51.25 + }, + { + "x": 21.25, + "y": -41.25 + }, + { + "x": 21.25, + "y": -41.25 + }, + { + "x": 16.25, + "y": -38.75 + }, + { + "x": 16.25, + "y": -38.75 + }, + { + "x": 6.25, + "y": -41.25 + }, + { + "x": -6.25, + "y": -50 + }, + { + "x": -3.75, + "y": -68.75 + }, + { + "x": 30, + "y": -76.25 + }, + { + "x": 65, + "y": -62.5 + }, + { + "x": 63.75, + "y": -35 + }, + { + "x": 27.5, + "y": -26.25 + }, + { + "x": 22.5, + "y": -20 + }, + { + "x": 27.5, + "y": -15 + }, + { + "x": 27.5, + "y": -15 + }, + { + "x": 30, + "y": -7.5 + }, + { + "x": 30, + "y": -7.5 + }, + { + "x": 27.5, + "y": -2.5 + }, + { + "x": 28.75, + "y": 11.25 + }, + { + "x": 36.25, + "y": 27.5 + }, + { + "x": 47.5, + "y": 30 + }, + { + "x": 53.75, + "y": 22.5 + }, + { + "x": 51.25, + "y": 8.75 + }, + { + "x": 45, + "y": -6.25 + }, + { + "x": 35, + "y": -11.25 + }, + { + "x": 30, + "y": -7.5 + }, + { + "x": 30, + "y": -7.5 + }, + { + "x": 27.5, + "y": -15 + }, + { + "x": 27.5, + "y": -15 + }, + { + "x": 43.75, + "y": -16.25 + }, + { + "x": 65, + "y": -6.25 + }, + { + "x": 72.5, + "y": 10 + }, + { + "x": 70, + "y": 20 + }, + { + "x": 70, + "y": 20 + }, + { + "x": 80, + "y": 20 + } + ], + "smooth": "Smooth.Bezier", + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This package provides predefined types, such as Mass,\nAngle, Time, based on the international standard\non units, e.g.,\n

\n\n
   type Angle = Real(final quantity = \\\"Angle\\\",\n                     final unit     = \\\"rad\\\",\n                     displayUnit    = \\\"deg\\\");\n
\n\n

\nSome of the types are derived SI units that are utilized in package Modelica\n(such as ComplexCurrent, which is a complex number where both the real and imaginary\npart have the SI unit Ampere).\n

\n\n

\nFurthermore, conversion functions from non SI-units to SI-units and vice versa\nare provided in subpackage\nConversions.\n

\n\n

\nFor an introduction how units are used in the Modelica standard library\nwith package SIunits, have a look at:\nHow to use SIunits.\n

\n\n

\nCopyright © 1998-2019, Modelica Association and contributors\n

\n\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "revisions", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ], + "modelicaFile": "Modelica/SIunits.mo", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/SIunits.mo", + "checksum": "0db94df377ef844e114b34bcbb91d049" +} \ No newline at end of file diff --git a/test/reference/json/Modelica/StateGraph.json b/test/reference/json/Modelica/StateGraph.json new file mode 100644 index 00000000..4bee34bf --- /dev/null +++ b/test/reference/json/Modelica/StateGraph.json @@ -0,0 +1,27261 @@ +{ + "within": "Modelica", + "class_definition": [ + { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "StateGraph", + "description_string": "Library of hierarchical state machine components to model discrete event and reactive systems", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + }, + { + "class_definition": { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "UsersGuide", + "description_string": "User's Guide of StateGraph Library", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Information" + } + }, + { + "class_definition": { + "class_prefixes": "class", + "class_specifier": { + "long_class_specifier": { + "identifier": "OverView", + "description_string": "Overview of library", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Information" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nIn this section, an overview of the most important features\nof this library is given.\n

\n

Steps and Transitions

\n

\nA StateGraph is an enhanced finite state machine.\nIt is based on the JGrafchart method and\ntakes advantage of Modelica features for\nthe \\\"action\\\" language. JGrafchart is a further development of\nGrafcet to include elements of StateCharts that are not present\nin Grafcet/Sequential Function Charts. Therefore, the StateGraph\nlibrary has a similar modeling power as StateCharts but avoids\nsome deficiencies of StateCharts.\n

\n

\nThe basic elements of StateGraphs are steps and transitions:\n

\n\n

\n\n

\n\n

\nSteps represent the possible states a StateGraph can have.\nIf a step is active the Boolean variable active of\nthe step is true. If it is deactivated,\nactive = false. At the initial time, all \\\"usual\\\"\nsteps are deactivated. The InitialStep objects are steps\nthat are activated at the initial time. They are characterized\nby a double box (see figure above).\n

\n

\nTransitions are used to change the state of a StateGraph.\nWhen the step connected to the input of a transition is active,\nthe step connected to the output of this transition is deactivated\nand the transition condition becomes true, then the\ntransition fires. This means that the step connected to the input to the\ntransition is deactivated and the step connected to the output\nof the transition is activated.\n

\n

\nThe transition condition is defined via the parameter menu\nof the transition object. Clicking on object \\\"transition1\\\" in\nthe above figure, results in the following menu:\n

\n\n

\n\n

\n\n

\nIn the input field \\\"condition\\\", any type of time varying\nBoolean expression can be given (in Modelica notation, this is\na modification of the time varying variable condition).\nWhenever this condition is true, the transition can fire.\nAdditionally, it is possible to activate a timer, via\nenableTimer (see menu above) and provide a\nwaitTime. In this case the firing of the transition\nis delayed according to the provided waitTime. The transition\ncondition and the waitTime are displayed in the transition icon.\n

\n

\nIn the above example, the simulation starts at initialStep.\nAfter 1 second, transition1 fires and step1 becomes\nactive. After another second transition2 fires and\ninitialStep becomes again active. After a further\nsecond step1 becomes again active, and so on.\n

\n

\nIn JGrafcharts, Grafcet and Sequential Function Charts, the\nnetwork of steps and transitions is drawn from top to bottom.\nIn StateGraphs, no particular direction is defined, since\nsteps and transitions are blocks with input and output connectors\nthat can be arbitrarily placed and connected. Usually, it is\nmost practical to define the network from left to right,\nas in the example above, since then it is easy to read the\nlabels on the icons.\n

\n

Conditions and Actions

\n

\nWith the block TransitionWithSignal, the firing condition\ncan be provided as Boolean input signal, instead as entry in the\nmenu of the transition. An example is given in the next\nfigure:\n

\n\n

\n\n

\n\n

\nComponent \\\"step\\\" is an instance of \\\"StepWithSignal\\\" that is\na usual step where the active flag is available as Boolean\noutput signal. To this output, component \\\"Timer\\\" from\nlibrary \\\"Modelica.Blocks.Logical\\\" is connected. It measures the\ntime from the time instant where the Boolean input (i.e., the\nactive flag of the step) became true up to the current\ntime instant. The timer is connected to a comparison\ncomponent. The output is true, once the timer reaches\n1 second. This signal is used as condition input of the\ntransition. As a result, \\\"transition2\\\" fires, once step\n\\\"step\\\" has been active for 1 second.\nOf course, any other\nModelica block with a Boolean output signal can be\nconnected to the condition input of such a transition block\nas well.\n

\n

\nConditions of a transition can either be computed by\na network of logical blocks from the Logical library as\nin the figure above, or via the \\\"SetBoolean\\\" component\nany type of logical expression can be defined in textual\nform, as shown in the next figure:\n

\n\n

\n\n

\n\n

\nWith the block \\\"SetBoolean\\\", a time varying expression\ncan be provided as modification to the output signal y\n(see block with icon text \\\"timer.y > 1\\\" in the figure above).\nThe output signal can be in turn connected to the condition\ninput of a TransitionWithSignal block.\n

\n

\nThe \\\"SetBoolean\\\" block can also be used to\ncompute a Boolean signal depending on the active step.\nIn the figure above, the output of the block with the\nicon text \\\"step.active\\\" is\ntrue, when \\\"step\\\" is active, otherwise it is false\n(note, the icon text of \\\"SetBoolean\\\" displays the modification\nof the output signal \\\"y\\\").\nThis signal can then be used to compute desired actions\nin the physical systems model. For example, if a valve\nshall be open, when the StateGraph is in \\\"step1\\\" or\nin \\\"step4\\\", a \\\"SetBoolean\\\" block may be connected to the\nvalve model using the following condition:\n

\n
\n    valve = step1.active or step2.active\n
\n

\nVia the Modelica operators edge(..) and change(..),\nconditions depending on rising and falling edges of\nBoolean expressions can be used when needed.\n

\n

\nIn JGrafcharts, Grafcet, Sequential Function Charts and StateCharts,\nactions are formulated within a step. Such actions are\ndistinguished as entry, normal, exit and\nabort actions. For example, a valve might be opened by\nan entry action of a step and might be closed by an exit\naction of the same step. In StateGraphs, this is (fortunately)\nnot possible\ndue to Modelica's \\\"single assignment rule\\\" that requires that every\nvariable is defined by exactly one equation. Instead, the\napproach explained above is used. For example, via the\n\\\"SetBoolean\\\" component, the valve variable is set to true\nwhen the StateGraph is in particular steps.\n

\n

\nThis feature of a StateGraph is very useful, since it allows\na Modelica translator to guarantee that a given StateGraph\nhas always deterministic behaviour without conflicts.\nIn the other methodologies this is much more cumbersome. For example,\nif two steps are executed in parallel and both step actions\nmodify the same variable, the result is either non-deterministic\nor non-obvious rules have to be defined which action\ntakes priority. In a StateGraph, such a situation is detected by\nthe translator resulting in an error, since there are two equations\nto compute one variable. Additional benefits of the StateGraph\napproach are:\n

\n\n

\nTo emphasize this important difference between these methodologies,\nconsider the case that a state machine has the following\nhierarchy:\n

\n
\n   stateMachine.superstate1.superstate2.step1\n
\n

\nWithin \\\"step1\\\" a StateChart would, e.g., access variable\n\\\"stateMachine.openValve\\\", say as \\\"entry action: openValve = true\\\".\nThis typical usage has the severe drawback that it is not possible\nto use the hierarchical state \\\"superstate1\\\" as component in another\ncontext, because \\\"step1\\\" references a particular name outside of this\ncomponent.\n

\n

\nIn a StateGraph, there would be typically a \\\"SetBoolean\\\" component\nin the \\\"stateMachine\\\" component stating:\n

\n
\n    openValve = superstate1.superstate2.step1.active;\n
\n

\nAs a result, the \\\"superstate1\\\" component can be used in\nanother context, because it does not depend on the environment\nwhere it is used.\n

\n

Execution Model

\n

\nThe execution model of a StateGraph follows from its\nModelica implementation: Given the states of all steps, i.e.,\nwhether a step is active or not active, the equations of all\nsteps, transitions, transition conditions, actions etc. are\nsorted resulting in an execution sequence to compute\nessentially the new values of the steps. If conflicts occur,\ne.g., if there are more equations as variables, of if there\nare algebraic loops between Boolean variables, an exception\nis raised. Once all equations have been processed, the\nactive variable of all steps are updated to the newly\ncalculated values. Afterwards, the equations are again\nevaluated. The iteration stops, once no step changes\nits state anymore, i.e., once no transition fires anymore.\nThen, simulation continuous until a new event is triggered,\n(when a relation changes its value).\n

\n

\nWith the Modelica \\\"sampled(..)\\\" operator, a StateGraph might also\nbe executed within a discrete controller that is called\nat regular time instants. In a future version of the StateGraph\nlibrary, this might be more directly supported.\n

\n

Parallel and Alternative Execution

\n

\nParallel activities can be defined by\ncomponent Parallel and alternative activities\ncan be defined by component Alternative.\nAn example for both components is given in the next figure.\n

\n\n

\n\n

\n\n

\nHere, the branch from \\\"step2\\\" to \\\"step5\\\" is executed in parallel\nto \\\"step1\\\". A transition connected to the output of a parallel\nbranch component can only fire if the final steps\nin all parallel branches are active simultaneously.\nThe figure above is a screen-shot from the animation of the\nStateGraph: Whenever a step is active or a transition can fire,\nthe corresponding component is marked in green color.\n

\n

\nThe three branches within \\\"step2\\\" to \\\"step5\\\" are\nexecuted alternatively, depending which transition condition\nof \\\"transition3\\\", \\\"transition4\\\", \\\"transition4a\\\" fires first.\nSince all three transitions fire after 1 second, they are all\ncandidates for the active branch. If two or more transitions\nwould fire at the same time instant, a priority selection\nis made: The alternative and parallel components have a\nvector of connectors. Every branch has to be connected to\nexactly one entry of the connector vector. The entry with\nthe lowest number has the highest priority.\n

\n

\nParallel, Alternative and Step components have vectors of\nconnectors. The dimensions of these vectors are set in the\ncorresponding parameter menu. E.g. in a \\\"Parallel\\\" component:\n

\n\n

\n\n

\n\n

\nCurrently in Dymola the following menu pops up, when a branch\nis connected to a vector of components in order to define\nthe vector index to which the component shall be connected:\n

\n\n

\n\n

\n\n

CompositeSteps, Suspend and Resume Port

\n

\nA StateGraph can be hierarchically structured by using a CompositeStep.\nThis is a component that inherits from PartialCompositeStep.\nAn example is given in the next figure (from Examples.ControlledTanks):\n

\n\n

\n\n

\n\n

\nThe CompositeStep component contains a local StateGraph that is\nentered by one or more input transitions and that is left\nby one or more output transitions. Also, other needed signals\nmay enter a CompositeStep. The CompositeStep has similar properties\nas a \\\"usual\\\" step: The CompositeStep is active once at least\none step within the CompositeStep is active. Variable active\ndefines the state of the CompositeStep.\n

\n

\nAdditionally, a CompositeStep has a suspend port. Whenever the\ntransition connected to this port fires, the CompositeStep is left\nat once. When leaving the CompositeStep via the suspend port, the internal\nstate of the CompositeStep is saved, i.e., the active flags of all\nsteps within the CompositeStep. The CompositeStep might be entered via\nits resume port. In this case the internal state from the\nsuspend transition is reconstructed and the CompositeStep continues\nthe execution that it had before the suspend transition fired\n(this corresponds to the history ports of StateCharts or JGrafcharts).\n

\n

\nA CompositeStep may contain other CompositeSteps. At every level,\na CompositeStep and all of its content can be left via its suspend ports\n(actually, there\nis a vector of suspend connectors, i.e., a CompositeStep might\nbe aborted due to different transitions).\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "class", + "class_specifier": { + "long_class_specifier": { + "identifier": "FirstExample", + "description_string": "A first example", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Information" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nA first example will be given here (not yet done).\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "class", + "class_specifier": { + "long_class_specifier": { + "identifier": "ApplicationExample", + "description_string": "An application example", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Information" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nIn this section a more realistic, still simple, application example\nis given, to demonstrate various features of the StateGraph library.\nThis example shows the control of a two tank system from the master thesis\nof Isolde Dressler\n(see literature).\n

\n

\nIn the following figure the top level of the model is shown.\nThis model is available as StateGraph.Examples.ControlledTanks.\n

\n\n

\n\n

\n\n

\nIn the right part of the figure, two tanks are shown. At the top part,\na large fluid source is present from which fluid can be filled in\ntank1 when valve1 is open. Tank1 can be emptied via\nvalve2 that is located in the bottom of tank2 and\nfills a second tank2 which in turn is emptied via\nvalve3. The actual levels of the tanks are measured\nand are provided as signals level1 and level2\nto the tankController.\n

\n

\nThe tankController is controlled by three buttons,\nstart, stop and shut (for shutdown)\nthat are mutually exclusive. This means that whenever one button is\npressed (i.e., its state is true) then the other two\nbuttons are not pressed (i.e., their states are false).\nWhen button start is pressed, the \\\"normal\\\" operation\nto fill and to empty the two tanks is processed:\n

\n
    \n
  1. Valve 1 is opened and tank 1 is filled.
  2. \n
  3. When tank 1 reaches its fill level limit,\n valve 1 is closed.
  4. \n
  5. After a waiting time, valve 2 is\n opened and the fluid flows from tank 1 into tank 2.
  6. \n
  7. When tank 1 is empty, valve 2 is closed.
  8. \n
  9. After a waiting time, valve 3 is opened and\n the fluid flows out of tank 2
  10. \n
  11. When tank 2 is empty, valve 3 is closed
  12. \n
\n

\nThe above \\\"normal\\\" process can be influenced by the following\nbuttons:\n

\n\n

\nThe implementation of the tankController is shown in\nthe next figure:\n

\n\n

\n\n

\n\n

\nWhen the \\\"start\\\" button is pressed, the stateGraph is\nwithin the CompositeStep \\\"makeProduct\\\". During normal\noperation this CompositeStep is only left, once tank2 is empty.\nAfterwards, the CompositeStep is at once re-entered.\n

\n

\nWhen the \\\"stop\\\" button is pressed, the \\\"makeProduct\\\"\nCompositeStep is at once terminated via the \\\"suspend\\\" port\nand the stateGraph waits in step \\\"s2\\\" for further\ncommands. When the \\\"start\\\" button is pressed, the CompositeStep\nis re-entered via its resume port and the \\\"normal\\\"\noperation continues at the state where it was aborted by the\nsuspend transition. If the \\\"shut\\\" button is pressed,\nthe stateGraph waits in the \\\"emptyTanks\\\" step, until\nboth tanks are empty and then waits at the initial step\n\\\"s1\\\" for further input.\n

\n

\nThe opening and closing of valves is not directly\ndefined in the stateGraph. Instead via the \\\"setValveX\\\"\ncomponents, the Boolean state of the valves are computed.\nFor example, the output y of \\\"setValve2\\\" is computed as:\n

\n
\n  y = makeProduct.fillTank2.active or emptyTanks.active\n
\n

\ni.e., valve2 is open, when step \\\"makeProduct.fillTank2 or when\nstep \\\"emptyTanks\\\" is active. Otherwise, valve2 is closed.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "class", + "class_specifier": { + "long_class_specifier": { + "identifier": "ComparisonWithStateGraph2", + "description_string": "Comparison with StateGraph2", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Information" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThere is a much improved library available called \\\"Modelica_StateGraph2\\\".\nIf this library is not yet distributed with your Modelica tool, you can download\nit from https://github.com/modelica/Modelica_StateGraph2.\nFind below a comparison with respect to Modelica.StateGraph.\nIt is not yet clear whether Modelica_StateGraph2 will be included in a\nfuture version of the Modelica package. Another option is to provide\nbuilt-in support for state machines in a future Modelica language version\nwhich would allow an even more powerful treatment of state machines in Modelica.\n

\n\n

\nThe Modelica_StateGraph2 library (called StateGraph2 below)\nis based on the experience with the current\nModelica.StateGraph library (called StateGraph1 below) and is\na significantly further development of StateGraph1. Furthermore, it is heavily\nbased on the article (Malmheden et. al. 2008), see Literature below,\nbut uses a different implementation\ntechnique as described in this article. The StateGraph2\nlibrary has the following improvements with respect to the StateGraph1\nlibrary:\n

\n\n\n\n

Literature

\n\n

\nThe Modelica_StateGraph2 library is described in detail in\n(Otter et. al. 2009, see below) and is additionally\nbased on the following references:\n

\n\n
\n
André, C. (2003):
\n
\n Semantics of S.S.M (Safe State Machine)..\n I3S Laboratory, UMR 6070 University of Nice-Sophia Antipolis / CNRS.
 
\n\n
Årzén K.-E. (2004):
\n
JGrafchart User Manual. Version 1.5.\n Department of Automatic Control, Lund Institute of Technology,\n Lund, Sweden, Feb. 13, 2004.
 
\n\n
Dressler I. (2004):
\n
\n Code Generation From JGrafchart to Modelica..\n Master thesis, supervisor: Karl-Erik Årzén,\n Department of Automatic Control, Lund Institute of Technology,\n Lund, Sweden, March 30, 2004.
 
\n\n
Elmqvist H., Mattsson S.E., Otter M. (2001):
\n
Object-Oriented and Hybrid Modeling in Modelica.\n Journal Europeen des systemes automatises (JESA),\n Volume 35 - n. 1, 2001.
 
\n\n
Harel, D. (1987):
\n
\n A Visual Formalism for Complex Systems.\n Science of Computer Programming 8, 231-274. Department of Applied Mathematics,\n The Weizmann Institute of Science, Rehovot, Israel.
 
\n\n
Malmheden M. (2007):
\n
\n ModeGraph - A Mode-Automata-Based Modelica Library for Embedded Control.\n Master thesis, Department of Automatic Control, Lund University, Sweden.
 \n
\n\n
Malmheden M., Elmqvist H., Mattsson S.E., Henrisson D., Otter M. (2008):
\n
\n ModeGraph - A Modelica Library for Embedded Control based on Mode-Automata.\n Modelica'2008 Conference, March 3-4, 2008.
 \n
\n\n
Maraninchi F., Rémond, Y. (2002):
\n
Mode-Automata:\n A New Domain-Specific Construct for the Development of Safe Critical Systems.
 \n
\n\n
Mosterman P., Otter M., Elmqvist H. (1998):
\n
\n Modeling Petri Nets as Local Constraint Equations for\n Hybrid Systems using Modelica.\n SCSC'98, Reno, Nevada, USA,\n Society for Computer Simulation International, pp. 314-319, 1998.
 \n
\n\n
Otter M., Malmheden M., Elmqvist H., Mattsson S.E., Johnsson C. (2009):
\n
\n A New Formalism for Modeling of Reactive and Hybrid Systems.\n Modelica'2009 Conference, Como, Italy, Sept. 20-22, 2009.\n
\n
\n\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "class", + "class_specifier": { + "long_class_specifier": { + "identifier": "ReleaseNotes", + "description_string": "Release notes", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ReleaseNotes" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

Version 0.87, 2004-06-23

\n\n

Version 0.86, 2004-06-20

\n\n

Version 0.85, 2004-06-17

\n\n

Version 0.83, 2004-05-21

\n\n

Version 0.82, 2004-05-18

\n

\nImplemented a first version that is provided to other people.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "class", + "class_specifier": { + "long_class_specifier": { + "identifier": "Literature", + "description_string": "Literature", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.References" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThe StateGraph library is based on the following references:\n

\n
\n
Årzén K.-E. (2004):
\n
JGrafchart User Manual. Version 1.5.\n Department of Automatic Control, Lund Institute of Technology,\n Lund, Sweden, Feb. 13
 
\n
Dressler I. (2004):
\n
Code Generation From JGrafchart to Modelica.\n Master thesis, supervisor: Karl-Erik Årzén,\n Department of Automatic Control, Lund Institute of Technology,\n Lund, Sweden, March 30
 
\n
Elmqvist H., Mattsson S.E., Otter M. (2001):
\n
Object-Oriented and Hybrid Modeling in Modelica.\n Journal Europeen des systemes automatises (JESA),\n Volume 35 - n. 1.
 
\n
Mosterman P., Otter M., Elmqvist H. (1998):
\n
Modeling Petri Nets as Local Constraint Equations for\n Hybrid Systems using Modelica.\n SCSC'98, Reno, Nevada, USA,\n Society for Computer Simulation International, pp. 314-319.\n
\n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "class", + "class_specifier": { + "long_class_specifier": { + "identifier": "Contact", + "description_string": "Contact", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Contact" + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

Main author

\n\n

\nMartin Otter
\nDeutsches Zentrum für Luft- und Raumfahrt e.V. (DLR)
\nInstitut für Systemdynamik und Regelungstechnik (DLR-SR)
\nForschungszentrum Oberpfaffenhofen
\nD-82234 Wessling
\nGermany
\nemail: Martin.Otter@dlr.de\n

\n\n

Acknowledgements

\n\n\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "DocumentationClass", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nLibrary StateGraph is a free Modelica package providing\ncomponents to model discrete event and reactive\nsystems in a convenient\nway. This package contains the User's Guide for\nthe library and has the following content:\n

\n
    \n
  1. Overview of library\n gives an overview of the library.
  2. \n
  3. A first example\n demonstrates at hand of a first example how to use this library.
  4. \n
  5. An\n application example demonstrates varies features at hand of the\n control of a two tank system.
  6. \n
  7. Comparison\n with StateGraph2 compares Modelica.StateGraph with the much improved version\n Modelica_StateGraph2.
  8. \n
  9. Release Notes\n summarizes the differences between different versions of this library.
  10. \n
  11. Literature\n provides references that have been used to design and implement this\n library.
  12. \n
  13. Contact\n provides information about the authors of the library as well as\n acknowledgments.
  14. \n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "Examples", + "description_string": "Examples to demonstrate the usage of the components of the StateGraph library", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ExamplesPackage" + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "FirstExample", + "description_string": "A first simple StateGraph example", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Example" + } + }, + { + "component_clause": { + "type_specifier": "InitialStep", + "component_list": [ + { + "declaration": { + "identifier": "initialStep" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -48, + "y": 0 + }, + { + "x": -28, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition1", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -20, + "y": 0 + }, + { + "x": 0, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "step" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 10, + "y": 0 + }, + { + "x": 30, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition2", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 40, + "y": 0 + }, + { + "x": 60, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "inner": true, + "component_clause": { + "type_specifier": "StateGraphRoot", + "component_list": [ + { + "declaration": { + "identifier": "stateGraphRoot" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -80, + "y": 60 + }, + { + "x": -60, + "y": 80 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "initialStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -27.5, + "y": 10 + }, + { + "x": -14, + "y": 10 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -8.5, + "y": 10 + }, + { + "x": 9, + "y": 10 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 30.5, + "y": 10 + }, + { + "x": 46, + "y": 10 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "initialStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 51.5, + "y": 10 + }, + { + "x": 70, + "y": 10 + }, + { + "x": 70, + "y": 32 + }, + { + "x": -62, + "y": 32 + }, + { + "x": -62, + "y": 10 + }, + { + "x": -49, + "y": 10 + } + ] + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "experiment", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "StopTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "5" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "FirstExample_Variant2", + "description_string": "A variant of the first simple StateGraph example", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Example" + } + }, + { + "component_clause": { + "type_specifier": "InitialStep", + "component_list": [ + { + "declaration": { + "identifier": "initialStep" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -70, + "y": 0 + }, + { + "x": -50, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition1", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -42, + "y": 0 + }, + { + "x": -22, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "StepWithSignal", + "component_list": [ + { + "declaration": { + "identifier": "step" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -14, + "y": 0 + }, + { + "x": 6, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "TransitionWithSignal", + "component_list": [ + { + "declaration": { + "identifier": "transition2" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 52, + "y": 0 + }, + { + "x": 72, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Logical.Timer", + "component_list": [ + { + "declaration": { + "identifier": "timer" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 6, + "y": -40 + }, + { + "x": 26, + "y": -20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Logical.GreaterEqualThreshold", + "component_list": [ + { + "declaration": { + "identifier": "greaterEqual", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "threshold", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 36, + "y": -40 + }, + { + "x": 56, + "y": -20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "inner": true, + "component_clause": { + "type_specifier": "StateGraphRoot", + "component_list": [ + { + "declaration": { + "identifier": "stateGraphRoot" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -80, + "y": 60 + }, + { + "x": -60, + "y": 80 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "initialStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -49.5, + "y": 10 + }, + { + "x": -36, + "y": 10 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -30.5, + "y": 10 + }, + { + "x": -15, + "y": 10 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "active" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "timer" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "u" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -4, + "y": -1 + }, + { + "x": -4, + "y": -30 + }, + { + "x": 4, + "y": -30 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 6.5, + "y": 10 + }, + { + "x": 58, + "y": 10 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "timer" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "y" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "greaterEqual" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "u" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 27, + "y": -30 + }, + { + "x": 34, + "y": -30 + } + ], + "color": { + "r": 0, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "greaterEqual" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "y" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "condition" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 57, + "y": -30 + }, + { + "x": 62, + "y": -30 + }, + { + "x": 62, + "y": -2 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "initialStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 63.5, + "y": 10 + }, + { + "x": 82, + "y": 10 + }, + { + "x": 82, + "y": 32 + }, + { + "x": -80, + "y": 32 + }, + { + "x": -80, + "y": 10 + }, + { + "x": -71, + "y": 10 + } + ] + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "experiment", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "StopTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "5" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "FirstExample_Variant3", + "description_string": "A variant of the first simple StateGraph example", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Example" + } + }, + { + "component_clause": { + "type_specifier": "InitialStep", + "component_list": [ + { + "declaration": { + "identifier": "initialStep" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -70, + "y": 0 + }, + { + "x": -50, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition1", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -42, + "y": 0 + }, + { + "x": -22, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "StepWithSignal", + "component_list": [ + { + "declaration": { + "identifier": "step" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -14, + "y": 0 + }, + { + "x": 6, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "TransitionWithSignal", + "component_list": [ + { + "declaration": { + "identifier": "transition2" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 56, + "y": 0 + }, + { + "x": 76, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Logical.Timer", + "component_list": [ + { + "declaration": { + "identifier": "timer" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": -4, + "y": -30 + }, + "extent": [ + { + "x": -10, + "y": -10 + }, + { + "x": 10, + "y": 10 + } + ], + "rotation": 270 + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Sources.BooleanExpression", + "component_list": [ + { + "declaration": { + "identifier": "SetBoolean1", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "y", + "modification": { + "equal": true, + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "timer.y" + }, + { + "name": "1" + } + ], + "relation_operator": ">" + } + ] + } + ] + } + } + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 28, + "y": -40 + }, + { + "x": 60, + "y": -20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Sources.BooleanExpression", + "component_list": [ + { + "declaration": { + "identifier": "SetBoolean2", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "y", + "modification": { + "equal": true, + "expression": { + "simple_expression": "step.active" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -68, + "y": -40 + }, + { + "x": -36, + "y": -20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "inner": true, + "component_clause": { + "type_specifier": "StateGraphRoot", + "component_list": [ + { + "declaration": { + "identifier": "stateGraphRoot" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -80, + "y": 60 + }, + { + "x": -60, + "y": 80 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "initialStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -49.5, + "y": 10 + }, + { + "x": -36, + "y": 10 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -30.5, + "y": 10 + }, + { + "x": -15, + "y": 10 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "active" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "timer" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "u" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -4, + "y": -1 + }, + { + "x": -4, + "y": -9.5 + }, + { + "x": -4, + "y": -18 + }, + { + "x": -4, + "y": -18 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 6.5, + "y": 10 + }, + { + "x": 62, + "y": 10 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "initialStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 67.5, + "y": 10 + }, + { + "x": 82, + "y": 10 + }, + { + "x": 82, + "y": 32 + }, + { + "x": -80, + "y": 32 + }, + { + "x": -80, + "y": 10 + }, + { + "x": -71, + "y": 10 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "SetBoolean1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "y" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "condition" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 61.6, + "y": -30 + }, + { + "x": 66, + "y": -30 + }, + { + "x": 66, + "y": -2 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "experiment", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "StopTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "5" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "ExecutionPaths", + "description_string": "Example to demonstrate parallel and alternative execution paths", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Example" + } + }, + { + "component_clause": { + "type_specifier": "InitialStep", + "component_list": [ + { + "declaration": { + "identifier": "step0" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -140, + "y": -100 + }, + { + "x": -120, + "y": -80 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition1", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": -80, + "y": -80 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "step1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -10, + "y": -40 + }, + { + "x": 10, + "y": -20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition2", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 90, + "y": -100 + }, + { + "x": 110, + "y": -80 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "step6" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 120, + "y": -100 + }, + { + "x": 140, + "y": -80 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "step2" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -98, + "y": 40 + }, + { + "x": -78, + "y": 60 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition3", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -42, + "y": 80 + }, + { + "x": -22, + "y": 100 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition4", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -42, + "y": 40 + }, + { + "x": -22, + "y": 60 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "step3" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -8, + "y": 80 + }, + { + "x": 12, + "y": 100 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "step4" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -8, + "y": 40 + }, + { + "x": 12, + "y": 60 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition5", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 26, + "y": 80 + }, + { + "x": 46, + "y": 100 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition6", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 26, + "y": 40 + }, + { + "x": 46, + "y": 60 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "step5" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 80, + "y": 40 + }, + { + "x": 100, + "y": 60 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Sources.RealExpression", + "component_list": [ + { + "declaration": { + "identifier": "setReal", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "y", + "modification": { + "equal": true, + "expression": { + "simple_expression": "time" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 21, + "y": -160 + }, + { + "x": 41, + "y": -140 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "TransitionWithSignal", + "component_list": [ + { + "declaration": { + "identifier": "transition7" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 9, + "y": -134 + }, + { + "x": -11, + "y": -114 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Sources.BooleanExpression", + "component_list": [ + { + "declaration": { + "identifier": "setCondition", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "y", + "modification": { + "equal": true, + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "time" + }, + { + "name": "7" + } + ], + "relation_operator": ">=" + } + ] + } + ] + } + } + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -77, + "y": -160 + }, + { + "x": -19, + "y": -140 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition4a", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -42, + "y": 0 + }, + { + "x": -22, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "step4a" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -8, + "y": 0 + }, + { + "x": 12, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition6a", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "2" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 26, + "y": 0 + }, + { + "x": 46, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "StateGraph.Temporary.NumericValue", + "component_list": [ + { + "declaration": { + "identifier": "NumericValue1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 61, + "y": -160 + }, + { + "x": 81, + "y": -140 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Alternative", + "component_list": [ + { + "declaration": { + "identifier": "alternative", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "nBranches", + "modification": { + "equal": true, + "expression": { + "simple_expression": "3" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -70, + "y": -10 + }, + { + "x": 72, + "y": 110 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Parallel", + "component_list": [ + { + "declaration": { + "identifier": "Parallel1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -154, + "y": -50 + }, + { + "x": 152, + "y": 120 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "inner": true, + "component_clause": { + "type_specifier": "StateGraphRoot", + "component_list": [ + { + "declaration": { + "identifier": "stateGraphRoot" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -160, + "y": 120 + }, + { + "x": -140, + "y": 140 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -30.5, + "y": 90 + }, + { + "x": -9, + "y": 90 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition5" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 12.5, + "y": 90 + }, + { + "x": 32, + "y": 90 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition4" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step4" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -30.5, + "y": 50 + }, + { + "x": -9, + "y": 50 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step4" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition6" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 12.5, + "y": 50 + }, + { + "x": 32, + "y": 50 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition7" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step0" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -2.5, + "y": -124 + }, + { + "x": -149, + "y": -124 + }, + { + "x": -149, + "y": -90 + }, + { + "x": -141, + "y": -90 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step6" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition7" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 140.5, + "y": -90 + }, + { + "x": 150, + "y": -90 + }, + { + "x": 150, + "y": -124 + }, + { + "x": 3, + "y": -124 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition4a" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step4a" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -30.5, + "y": 10 + }, + { + "x": -9, + "y": 10 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step4a" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition6a" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 12.5, + "y": 10 + }, + { + "x": 32, + "y": 10 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "setCondition" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "y" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition7" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "condition" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -16.1, + "y": -150 + }, + { + "x": -1, + "y": -150 + }, + { + "x": -1, + "y": -136 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "setReal" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "y" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "NumericValue1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "Value" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 42, + "y": -150 + }, + { + "x": 59, + "y": -150 + } + ], + "color": { + "r": 0, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "alternative" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "split", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -36, + "y": 90 + }, + { + "x": -55.09, + "y": 90 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition4" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "alternative" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "split", + "array_subscripts": [ + { + "expression": { + "simple_expression": "2" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -36, + "y": 50 + }, + { + "x": -55.09, + "y": 50 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition4a" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "alternative" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "split", + "array_subscripts": [ + { + "expression": { + "simple_expression": "3" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -36, + "y": 10 + }, + { + "x": -45.0125, + "y": 10 + }, + { + "x": -45.0125, + "y": 10 + }, + { + "x": -55.09, + "y": 10 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition5" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "alternative" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "join", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 37.5, + "y": 90 + }, + { + "x": 57.09, + "y": 90 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition6" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "alternative" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "join", + "array_subscripts": [ + { + "expression": { + "simple_expression": "2" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 37.5, + "y": 50 + }, + { + "x": 57.09, + "y": 50 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition6a" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "alternative" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "join", + "array_subscripts": [ + { + "expression": { + "simple_expression": "3" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 37.5, + "y": 10 + }, + { + "x": 46.7625, + "y": 10 + }, + { + "x": 46.7625, + "y": 10 + }, + { + "x": 57.09, + "y": 10 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "alternative" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -77.5, + "y": 50 + }, + { + "x": -72.13, + "y": 50 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "alternative" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step5" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 73.42, + "y": 50 + }, + { + "x": 79, + "y": 50 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Parallel1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "split", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -99, + "y": 50 + }, + { + "x": -118, + "y": 50 + }, + { + "x": -118, + "y": 78 + }, + { + "x": -119.575, + "y": 78 + }, + { + "x": -119.575, + "y": 77.5 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Parallel1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "join", + "array_subscripts": [ + { + "expression": { + "simple_expression": "2" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 10.5, + "y": -30 + }, + { + "x": 118, + "y": -30 + }, + { + "x": 118, + "y": -7.5 + }, + { + "x": 117.575, + "y": -7.5 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step0" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -119.5, + "y": -90 + }, + { + "x": -94, + "y": -90 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step6" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 101.5, + "y": -90 + }, + { + "x": 119, + "y": -90 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Parallel1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -88.5, + "y": -90 + }, + { + "x": -70, + "y": -90 + }, + { + "x": -70, + "y": -64 + }, + { + "x": -174, + "y": -64 + }, + { + "x": -174, + "y": 35 + }, + { + "x": -158.59, + "y": 35 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "Parallel1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 155.06, + "y": 35 + }, + { + "x": 168, + "y": 35 + }, + { + "x": 168, + "y": -60 + }, + { + "x": 80, + "y": -60 + }, + { + "x": 80, + "y": -90 + }, + { + "x": 96, + "y": -90 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step5" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Parallel1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "join", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 100.5, + "y": 50 + }, + { + "x": 116, + "y": 50 + }, + { + "x": 116, + "y": 77.5 + }, + { + "x": 117.575, + "y": 77.5 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "Parallel1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "split", + "array_subscripts": [ + { + "expression": { + "simple_expression": "2" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -119.575, + "y": -7.5 + }, + { + "x": -118, + "y": -8 + }, + { + "x": -118, + "y": -30 + }, + { + "x": -11, + "y": -30 + } + ] + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis is an example to demonstrate in which way parallel activities\ncan be modelled by a StateGraph. When transition1 fires\n(after 1 second), two branches are executed in parallel.\nAfter 6 seconds the two branches are synchronized in order to arrive\nat step6.\n

\n

\nBefore simulating the model, try to figure out whether which branch\nof the alternative sequence is executed. Note, that alternatives\nhave priorities according to the port index (alternative.split[1]\nhas a higher priority to fire as alternative.split[2]).\n

\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "experiment", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "StopTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "15" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -200, + "y": -200 + }, + { + "x": 200, + "y": 200 + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "ShowCompositeStep", + "description_string": "Example to demonstrate parallel activities described by a StateGraph", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Example" + } + }, + { + "component_clause": { + "type_specifier": "Utilities.CompositeStep", + "component_list": [ + { + "declaration": { + "identifier": "compositeStep" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -10, + "y": 5 + }, + { + "x": 20, + "y": 35 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "InitialStep", + "component_list": [ + { + "declaration": { + "identifier": "step0" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -89, + "y": -10 + }, + { + "x": -69, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition1", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -59, + "y": -10 + }, + { + "x": -39, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "step1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -4, + "y": -30 + }, + { + "x": 16, + "y": -10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition2", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 45, + "y": -10 + }, + { + "x": 65, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "step6" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 71, + "y": -10 + }, + { + "x": 91, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "TransitionWithSignal", + "component_list": [ + { + "declaration": { + "identifier": "transition7" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 10, + "y": -70 + }, + { + "x": -10, + "y": -50 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Parallel", + "component_list": [ + { + "declaration": { + "identifier": "Parallel1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -30, + "y": -40 + }, + { + "x": 36, + "y": 40 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Sources.BooleanExpression", + "component_list": [ + { + "declaration": { + "identifier": "setCondition", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "y", + "modification": { + "equal": true, + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "time" + }, + { + "name": "7" + } + ], + "relation_operator": ">=" + } + ] + } + ] + } + } + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -40, + "y": -90 + }, + { + "x": -10, + "y": -70 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "inner": true, + "component_clause": { + "type_specifier": "StateGraphRoot", + "component_list": [ + { + "declaration": { + "identifier": "stateGraphRoot" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -90, + "y": 50 + }, + { + "x": -70, + "y": 70 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step0" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -68.5, + "y": 0 + }, + { + "x": -53, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition7" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step0" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -1.5, + "y": -60 + }, + { + "x": -98, + "y": -60 + }, + { + "x": -98, + "y": 0 + }, + { + "x": -90, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step6" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition7" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 91.5, + "y": 0 + }, + { + "x": 96, + "y": 0 + }, + { + "x": 96, + "y": -60 + }, + { + "x": 4, + "y": -60 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step6" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 56.5, + "y": 0 + }, + { + "x": 70, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Parallel1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -47.5, + "y": 0 + }, + { + "x": -30.99, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "Parallel1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 36.66, + "y": 0 + }, + { + "x": 51, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "compositeStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Parallel1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "split", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -11, + "y": 20 + }, + { + "x": -22.575, + "y": 20 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "compositeStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Parallel1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "join", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 20.5, + "y": 20 + }, + { + "x": 28.575, + "y": 20 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Parallel1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "split", + "array_subscripts": [ + { + "expression": { + "simple_expression": "2" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -5, + "y": -20 + }, + { + "x": -10, + "y": -20 + }, + { + "x": -10, + "y": -20 + }, + { + "x": -14, + "y": -20 + }, + { + "x": -14, + "y": -20 + }, + { + "x": -22.575, + "y": -20 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Parallel1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "join", + "array_subscripts": [ + { + "expression": { + "simple_expression": "2" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 16.5, + "y": -20 + }, + { + "x": 28.575, + "y": -20 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "setCondition" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "y" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition7" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "condition" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -8.5, + "y": -80 + }, + { + "x": 0, + "y": -80 + }, + { + "x": 0, + "y": -72 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis is the same example as \\\"ExecutionPaths\\\". The only difference\nis that the alternative paths are included in a \\\"CompositeStep\\\".\n

\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "experiment", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "StopTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "15" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "ShowExceptions", + "description_string": "Example to demonstrate how a hierarchically structured StateGraph can suspend and resume actions on different levels", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Example" + } + }, + { + "component_clause": { + "type_specifier": "Utilities.CompositeStep1", + "component_list": [ + { + "declaration": { + "identifier": "compositeStep" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -20, + "y": 25 + }, + { + "x": 10, + "y": 55 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "InitialStep", + "component_list": [ + { + "declaration": { + "identifier": "initialStep" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -80, + "y": 30 + }, + { + "x": -60, + "y": 50 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition1", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -50, + "y": 30 + }, + { + "x": -30, + "y": 50 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition2", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 20, + "y": 30 + }, + { + "x": 40, + "y": 50 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition3", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "2" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -55, + "y": -30 + }, + { + "x": -35, + "y": -10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "step1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -24, + "y": -30 + }, + { + "x": -4, + "y": -10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition4", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 10, + "y": -30 + }, + { + "x": 30, + "y": -10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "inner": true, + "component_clause": { + "type_specifier": "StateGraphRoot", + "component_list": [ + { + "declaration": { + "identifier": "stateGraphRoot" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -90, + "y": -80 + }, + { + "x": -70, + "y": -60 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "compositeStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -38.5, + "y": 40 + }, + { + "x": -21, + "y": 40 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "initialStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -59.5, + "y": 40 + }, + { + "x": -44, + "y": 40 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "compositeStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 10.5, + "y": 40 + }, + { + "x": 26, + "y": 40 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "initialStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 31.5, + "y": 40 + }, + { + "x": 46, + "y": 40 + }, + { + "x": 46, + "y": 80 + }, + { + "x": -90, + "y": 80 + }, + { + "x": -90, + "y": 40 + }, + { + "x": -81, + "y": 40 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "compositeStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "suspend", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -12.5, + "y": 24.5 + }, + { + "x": -12.5, + "y": 10 + }, + { + "x": -60, + "y": 10 + }, + { + "x": -60, + "y": -20 + }, + { + "x": -49, + "y": -20 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -43.5, + "y": -20 + }, + { + "x": -25, + "y": -20 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition4" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -3.5, + "y": -20 + }, + { + "x": 16, + "y": -20 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition4" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "compositeStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "resume", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 21.5, + "y": -20 + }, + { + "x": 40, + "y": -20 + }, + { + "x": 40, + "y": 10 + }, + { + "x": 2.5, + "y": 10 + }, + { + "x": 2.5, + "y": 24 + } + ] + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nCompositeStep \\\"compositeStep\\\" is a hierarchical StateGraph consisting of\ntwo other subgraphs. Whenever component \\\"compositeStep\\\" is suspended,\nall steps with in \\\"compositeStep\\\" are deactivated. By entering \\\"compositeStep\\\"\nvia its \\\"resume\\\" port, all steps within \\\"compositeStep\\\" are activated\naccording to their setting before leaving the \\\"compositeStep\\\" via its\n\\\"suspend\\\" port.\n

\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "experiment", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "StopTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "20" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "ControlledTanks", + "description_string": "Demonstrating the controller of a tank filling/emptying system", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Example" + } + }, + { + "component_clause": { + "type_specifier": "Utilities.TankController", + "component_list": [ + { + "declaration": { + "identifier": "tankController" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -50, + "y": -20 + }, + { + "x": -10, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "StateGraph.Temporary.RadioButton", + "component_list": [ + { + "declaration": { + "identifier": "start", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "reset", + "modification": { + "equal": true, + "expression": { + "simple_expression": "{stop.on,shut.on}" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "buttonTimeTable", + "modification": { + "equal": true, + "expression": { + "simple_expression": "{1,13,15,19}" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -90, + "y": 20 + }, + { + "x": -70, + "y": 40 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "StateGraph.Temporary.RadioButton", + "component_list": [ + { + "declaration": { + "identifier": "stop", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "reset", + "modification": { + "equal": true, + "expression": { + "simple_expression": "{start.on,shut.on}" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "buttonTimeTable", + "modification": { + "equal": true, + "expression": { + "simple_expression": "{13,15,19,21}" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -90, + "y": -10 + }, + { + "x": -70, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "StateGraph.Temporary.RadioButton", + "component_list": [ + { + "declaration": { + "identifier": "shut", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "reset", + "modification": { + "equal": true, + "expression": { + "simple_expression": "{start.on,stop.on}" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "buttonTimeTable", + "modification": { + "equal": true, + "expression": { + "simple_expression": "{21,100}" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -90, + "y": -40 + }, + { + "x": -70, + "y": -20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Utilities.Tank", + "component_list": [ + { + "declaration": { + "identifier": "tank1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 10, + "y": 20 + }, + { + "x": 60, + "y": 70 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Utilities.Tank", + "component_list": [ + { + "declaration": { + "identifier": "tank2" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 34, + "y": -60 + }, + { + "x": 84, + "y": -10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Utilities.valve", + "component_list": [ + { + "declaration": { + "identifier": "valve1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": 22.5, + "y": 72 + }, + "extent": [ + { + "x": -5.5, + "y": -5.5 + }, + { + "x": 5.5, + "y": 5.5 + } + ], + "rotation": 270 + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Utilities.Source", + "component_list": [ + { + "declaration": { + "identifier": "source" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 12.5, + "y": 80.5 + }, + { + "x": 32.5, + "y": 100.5 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Utilities.valve", + "component_list": [ + { + "declaration": { + "identifier": "valve2" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": 46.5, + "y": 13 + }, + "extent": [ + { + "x": -7, + "y": -8 + }, + { + "x": 7, + "y": 8 + } + ], + "rotation": 270 + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Utilities.valve", + "component_list": [ + { + "declaration": { + "identifier": "valve3" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": 73.5, + "y": -77 + }, + "extent": [ + { + "x": -7, + "y": -8 + }, + { + "x": 7, + "y": 8 + } + ], + "rotation": 270 + } + } + } + } + } + ] + } + } + ] + } + }, + { + "inner": true, + "component_clause": { + "type_specifier": "StateGraphRoot", + "component_list": [ + { + "declaration": { + "identifier": "stateGraphRoot" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -90, + "y": 75 + }, + { + "x": -70, + "y": 95 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "tank1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outflow1" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outflow1" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 50, + "y": 33.75 + }, + { + "x": 50, + "y": 26.875 + }, + { + "x": 46.5, + "y": 26.875 + }, + { + "x": 46.5, + "y": 16.5 + } + ], + "thickness": 0.5 + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "tank2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inflow1" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inflow1" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 46.5, + "y": -18.75 + }, + { + "x": 46.5, + "y": 9.5 + } + ], + "thickness": 0.5 + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "tank2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outflow1" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outflow1" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 74, + "y": -46.25 + }, + { + "x": 74, + "y": -73.5 + }, + { + "x": 73.5, + "y": -73.5 + } + ], + "thickness": 0.5 + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "tank1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inflow1" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inflow1" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 22.5, + "y": 61.25 + }, + { + "x": 22.5, + "y": 69.25 + } + ], + "thickness": 0.5 + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "shut" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "on" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "tankController" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "shut" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -69, + "y": -30 + }, + { + "x": -62, + "y": -30 + }, + { + "x": -62, + "y": -12 + }, + { + "x": -52, + "y": -12 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "stop" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "on" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "tankController" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "stop" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -69, + "y": 0 + }, + { + "x": -52, + "y": 0 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "start" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "on" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "tankController" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "start" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -69, + "y": 30 + }, + { + "x": -60, + "y": 30 + }, + { + "x": -60, + "y": 12 + }, + { + "x": -52, + "y": 12 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "tank1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "levelSensor" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "tankController" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "level1" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 17.25, + "y": 40 + }, + { + "x": -30, + "y": 40 + }, + { + "x": -30, + "y": 60 + }, + { + "x": -97, + "y": 60 + }, + { + "x": -97, + "y": -50 + }, + { + "x": -42, + "y": -50 + }, + { + "x": -42, + "y": -22 + } + ], + "color": { + "r": 0, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "tank2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "levelSensor" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "tankController" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "level2" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 41.25, + "y": -40 + }, + { + "x": -18, + "y": -40 + }, + { + "x": -18, + "y": -22 + } + ], + "color": { + "r": 0, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "tankController" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "valve1" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "valveControl" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -9, + "y": 12 + }, + { + "x": 10, + "y": 12 + }, + { + "x": 10, + "y": 72 + }, + { + "x": 18.1, + "y": 72 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "tankController" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "valve2" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "valveControl" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -9, + "y": 0 + }, + { + "x": 30, + "y": 0 + }, + { + "x": 30, + "y": 13 + }, + { + "x": 40.1, + "y": 13 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "tankController" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "valve3" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "valveControl" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -9, + "y": -12 + }, + { + "x": 23, + "y": -12 + }, + { + "x": 23, + "y": -77 + }, + { + "x": 67.1, + "y": -77 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "source" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outflow1" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outflow1" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 22.5, + "y": 85.5 + }, + { + "x": 22.5, + "y": 74.75 + } + ], + "thickness": 0.5 + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "experiment", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "StopTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "100" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nWith this example the controller of a tank filling/emptying system\nis demonstrated. This example is from Dressler (2004),\nsee Literature.\nThe basic operation is to fill and empty the two tanks:\n

\n
    \n
  1. Valve 1 is opened and tank 1 is filled.
  2. \n
  3. When tank 1 reaches its fill level limit,\n valve 1 is closed.
  4. \n
  5. After a waiting time, valve 2 is\n opened and the fluid flows from tank 1 into tank 2.
  6. \n
  7. When tank 1 is empty, valve 2 is closed.
  8. \n
  9. After a waiting time, valve 3 is opened and\n the fluid flows out of tank 2
  10. \n
  11. When tank 3 is empty, valve 3 is closed
  12. \n
\n

\nThe above \\\"normal\\\" process can be influenced by three\nbuttons:\n

\n\n\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "Utilities", + "description_string": "Utility components for the examples", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.UtilitiesPackage" + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "TankController", + "description_string": "Controller for tank system", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "StateGraph.Interfaces.PartialStateGraphIcon" + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Temporary.SetRealParameter", + "component_list": [ + { + "declaration": { + "identifier": "limit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0.98" + } + } + }, + "description": { + "description_string": "Limit level of tank 1", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -64, + "y": 76 + }, + { + "x": -44, + "y": 96 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Temporary.SetRealParameter", + "component_list": [ + { + "declaration": { + "identifier": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "3" + } + } + }, + "description": { + "description_string": "Wait time", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -91, + "y": 76 + }, + { + "x": -71, + "y": 96 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "InitialStep", + "component_list": [ + { + "declaration": { + "identifier": "s1", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "nIn", + "modification": { + "equal": true, + "expression": { + "simple_expression": "2" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -72, + "y": 30 + }, + { + "x": -52, + "y": 50 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "MakeProduct", + "component_list": [ + { + "declaration": { + "identifier": "makeProduct", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "limit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "limit" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "waitTime" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -20, + "y": 25 + }, + { + "x": 10, + "y": 55 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "T1", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "condition", + "modification": { + "equal": true, + "expression": { + "simple_expression": "start" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -50, + "y": 50 + }, + { + "x": -30, + "y": 30 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "T2", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "condition", + "modification": { + "equal": true, + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "level2" + }, + { + "name": "0.001" + } + ], + "relation_operator": "<" + } + ] + } + ] + } + } + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 27, + "y": 50 + }, + { + "x": 47, + "y": 30 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "T3", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "condition", + "modification": { + "equal": true, + "expression": { + "simple_expression": "stop" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": -23, + "y": -1 + }, + "extent": [ + { + "x": -10, + "y": -10 + }, + { + "x": 10, + "y": 10 + } + ], + "rotation": 270 + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "s2", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "nOut", + "modification": { + "equal": true, + "expression": { + "simple_expression": "2" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -50, + "y": -60 + }, + { + "x": -30, + "y": -40 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "T4", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "condition", + "modification": { + "equal": true, + "expression": { + "simple_expression": "start" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": 10, + "y": -1 + }, + "extent": [ + { + "x": -10, + "y": -10 + }, + { + "x": 10, + "y": 10 + } + ], + "rotation": 90 + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "T5", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "condition", + "modification": { + "equal": true, + "expression": { + "simple_expression": "shut" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -6, + "y": -60 + }, + { + "x": 14, + "y": -40 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "emptyTanks" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 22, + "y": -60 + }, + { + "x": 42, + "y": -40 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "T6", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "condition", + "modification": { + "equal": true, + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "level1 +level2" + }, + { + "name": "0.001" + } + ], + "relation_operator": "<" + } + ] + } + ] + } + } + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 45, + "y": -60 + }, + { + "x": 65, + "y": -40 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.BooleanInput", + "component_list": [ + { + "declaration": { + "identifier": "start" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -120, + "y": 50 + }, + { + "x": -100, + "y": 70 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.BooleanInput", + "component_list": [ + { + "declaration": { + "identifier": "stop" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -120, + "y": -10 + }, + { + "x": -100, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.BooleanInput", + "component_list": [ + { + "declaration": { + "identifier": "shut" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -120, + "y": -70 + }, + { + "x": -100, + "y": -50 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.RealInput", + "component_list": [ + { + "declaration": { + "identifier": "level1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": -60, + "y": -110 + }, + "extent": [ + { + "x": -10, + "y": -10 + }, + { + "x": 10, + "y": 10 + } + ], + "rotation": 90 + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.RealInput", + "component_list": [ + { + "declaration": { + "identifier": "level2" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": 60, + "y": -110 + }, + "extent": [ + { + "x": -10, + "y": -10 + }, + { + "x": 10, + "y": 10 + } + ], + "rotation": 90 + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.BooleanOutput", + "component_list": [ + { + "declaration": { + "identifier": "valve1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 100, + "y": 55 + }, + { + "x": 110, + "y": 65 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.BooleanOutput", + "component_list": [ + { + "declaration": { + "identifier": "valve2" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 100, + "y": -5 + }, + { + "x": 110, + "y": 5 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.BooleanOutput", + "component_list": [ + { + "declaration": { + "identifier": "valve3" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 100, + "y": -65 + }, + { + "x": 110, + "y": -55 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Sources.BooleanExpression", + "component_list": [ + { + "declaration": { + "identifier": "setValve1", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "y", + "modification": { + "equal": true, + "expression": { + "simple_expression": "makeProduct.fillTank1.active" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 20, + "y": 73 + }, + { + "x": 80, + "y": 92 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Sources.BooleanExpression", + "component_list": [ + { + "declaration": { + "identifier": "setValve2", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "y", + "modification": { + "equal": true, + "expression": { + "simple_expression": "makeProduct.fillTank2.active or emptyTanks.active" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -25, + "y": -89 + }, + { + "x": 80, + "y": -68 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Sources.BooleanExpression", + "component_list": [ + { + "declaration": { + "identifier": "setValve3", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "y", + "modification": { + "equal": true, + "expression": { + "simple_expression": "makeProduct.emptyTank2.active or emptyTanks.active" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -26, + "y": -100 + }, + { + "x": 80, + "y": -80 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "s1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "T1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -51.5, + "y": 40 + }, + { + "x": -44, + "y": 40 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "T1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "makeProduct" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -38.5, + "y": 40 + }, + { + "x": -21, + "y": 40 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "makeProduct" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "T2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 10.5, + "y": 40 + }, + { + "x": 33, + "y": 40 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "T5" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "emptyTanks" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 5.5, + "y": -50 + }, + { + "x": 21, + "y": -50 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "emptyTanks" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "T6" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 42.5, + "y": -50 + }, + { + "x": 51, + "y": -50 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "setValve1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "y" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve1" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 83, + "y": 82.5 + }, + { + "x": 90, + "y": 82.5 + }, + { + "x": 90, + "y": 60 + }, + { + "x": 105, + "y": 60 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "setValve2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "y" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve2" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 85.25, + "y": -78.5 + }, + { + "x": 90, + "y": -78.5 + }, + { + "x": 90, + "y": 0 + }, + { + "x": 105, + "y": 0 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "setValve3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "y" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "valve3" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 85.3, + "y": -90 + }, + { + "x": 95, + "y": -90 + }, + { + "x": 95, + "y": -60 + }, + { + "x": 105, + "y": -60 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "makeProduct" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "suspend", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "T3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -12.5, + "y": 24.5 + }, + { + "x": -12.5, + "y": 12 + }, + { + "x": -23, + "y": 12 + }, + { + "x": -23, + "y": 3 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "T3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "s2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -23, + "y": -2.5 + }, + { + "x": -23, + "y": -20 + }, + { + "x": -66, + "y": -20 + }, + { + "x": -66, + "y": -50 + }, + { + "x": -51, + "y": -50 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "T4" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "makeProduct" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "resume", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 10, + "y": 0.5 + }, + { + "x": 10, + "y": 15 + }, + { + "x": 2.5, + "y": 15 + }, + { + "x": 2.5, + "y": 24 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "level1" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "makeProduct" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "level1" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -60, + "y": -110 + }, + { + "x": -60, + "y": -80 + }, + { + "x": -80, + "y": -80 + }, + { + "x": -80, + "y": 20 + }, + { + "x": -30, + "y": 20 + }, + { + "x": -30, + "y": 28 + }, + { + "x": -22, + "y": 28 + } + ], + "color": { + "r": 0, + "g": 0, + "b": 255 + } + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "s2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "T5" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -29.5, + "y": -49.75 + }, + { + "x": -30, + "y": -49.75 + }, + { + "x": -30, + "y": -50 + }, + { + "x": 0, + "y": -50 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "s2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "2" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "T4" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -29.5, + "y": -50.25 + }, + { + "x": -29, + "y": -50 + }, + { + "x": -8, + "y": -50 + }, + { + "x": -8, + "y": -25 + }, + { + "x": 10, + "y": -25 + }, + { + "x": 10, + "y": -5 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "T2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "s1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 38.5, + "y": 40 + }, + { + "x": 70, + "y": 40 + }, + { + "x": 70, + "y": 70 + }, + { + "x": -84, + "y": 70 + }, + { + "x": -84, + "y": 40 + }, + { + "x": -73, + "y": 40 + }, + { + "x": -73, + "y": 40.5 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "T6" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "s1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "2" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 56.5, + "y": -50 + }, + { + "x": 70, + "y": -50 + }, + { + "x": 70, + "y": 70 + }, + { + "x": -84, + "y": 70 + }, + { + "x": -84, + "y": 40 + }, + { + "x": -74, + "y": 40 + }, + { + "x": -73, + "y": 39.5 + } + ] + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ] + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -100, + "y": 68 + }, + { + "x": -32, + "y": 54 + } + ], + "textString": "\"start\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -100, + "y": 6 + }, + { + "x": -32, + "y": -8 + } + ], + "textString": "\"stop\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -100, + "y": -54 + }, + { + "x": -32, + "y": -68 + } + ], + "textString": "\"shut\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -94, + "y": -82 + }, + { + "x": -18, + "y": -96 + } + ], + "textString": "\"level1\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 24, + "y": -84 + }, + { + "x": 96, + "y": -98 + } + ], + "textString": "\"level2\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 31, + "y": 68 + }, + { + "x": 99, + "y": 54 + } + ], + "textString": "\"valve1\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 33, + "y": 9 + }, + { + "x": 101, + "y": -5 + } + ], + "textString": "\"valve2\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 34, + "y": -53 + }, + { + "x": 102, + "y": -67 + } + ], + "textString": "\"valve3\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "MakeProduct", + "description_string": "State machine defining the time instants when to fill or empty a tank", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "StateGraph.PartialCompositeStep" + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "StateGraph.Temporary.SetRealParameter", + "component_list": [ + { + "declaration": { + "identifier": "limit", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0.98" + } + } + }, + "description": { + "description_string": "Limit level of tank 1", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -60, + "y": 40 + }, + { + "x": -20, + "y": 60 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "StateGraph.Temporary.SetRealParameter", + "component_list": [ + { + "declaration": { + "identifier": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "3" + } + } + }, + "description": { + "description_string": "Wait time", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -120, + "y": 40 + }, + { + "x": -80, + "y": 60 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.RealInput", + "component_list": [ + { + "declaration": { + "identifier": "level1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -190, + "y": -140 + }, + { + "x": -150, + "y": -100 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "fillTank1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -140, + "y": -10 + }, + { + "x": -120, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "T1", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "condition", + "modification": { + "equal": true, + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "level1" + }, + { + "name": "limit" + } + ], + "relation_operator": ">" + } + ] + } + ] + } + } + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -110, + "y": -10 + }, + { + "x": -90, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "fillTank2" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -10, + "y": -10 + }, + { + "x": 10, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "T3", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "condition", + "modification": { + "equal": true, + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "level1" + }, + { + "name": "0.001" + } + ], + "relation_operator": "<" + } + ] + } + ] + } + } + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 20, + "y": -10 + }, + { + "x": 40, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "emptyTank2" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 120, + "y": -10 + }, + { + "x": 140, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "wait1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -80, + "y": -10 + }, + { + "x": -60, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "T2", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "waitTime" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -50, + "y": -10 + }, + { + "x": -30, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "wait2" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 54, + "y": -10 + }, + { + "x": 74, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "T4", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "waitTime" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 82, + "y": -10 + }, + { + "x": 102, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "fillTank1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -141, + "y": 0 + }, + { + "x": -160, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "fillTank1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "T1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -119.5, + "y": 0 + }, + { + "x": -104, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "fillTank2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "T3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 10.5, + "y": 0 + }, + { + "x": 26, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "emptyTank2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "outPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 140.5, + "y": 0 + }, + { + "x": 155, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "wait1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "T2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -59.5, + "y": 0 + }, + { + "x": -44, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "T2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "fillTank2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -38.5, + "y": 0 + }, + { + "x": -11, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "T1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "wait1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -98.5, + "y": 0 + }, + { + "x": -81, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "wait2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "T4" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 74.5, + "y": 0 + }, + { + "x": 88, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "T3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "wait2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 31.5, + "y": 0 + }, + { + "x": 53, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "T4" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "emptyTank2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 93.5, + "y": 0 + }, + { + "x": 119, + "y": 0 + } + ] + } + } + } + } + ] + } + } + ] + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "Inflow1", + "description_string": "Inflow connector (this is a copy from Isolde Dressler's master thesis project)", + "composition": { + "element_list": [ + { + "import_clause": { + "identifier": "Units", + "name": "Modelica.SIunits" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Units.VolumeFlowRate", + "component_list": [ + { + "declaration": { + "identifier": "Fi" + }, + "description": { + "description_string": "inflow" + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": -100 + }, + { + "x": 0, + "y": 100 + }, + { + "x": 100, + "y": -100 + }, + { + "x": -100, + "y": -100 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid", + "lineThickness": 0.5 + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "Inflow2", + "description_string": "Inflow connector (this is a copy from Isolde Dressler's master thesis project)", + "composition": { + "element_list": [ + { + "import_clause": { + "identifier": "Units", + "name": "Modelica.SIunits" + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Units.VolumeFlowRate", + "component_list": [ + { + "declaration": { + "identifier": "Fi" + }, + "description": { + "description_string": "inflow" + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": -100 + }, + { + "x": 0, + "y": 100 + }, + { + "x": 100, + "y": -100 + }, + { + "x": -100, + "y": -100 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid", + "lineThickness": 0.5 + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "Outflow1", + "description_string": "Outflow connector (this is a copy from Isolde Dressler's master thesis project)", + "composition": { + "element_list": [ + { + "import_clause": { + "identifier": "Units", + "name": "Modelica.SIunits" + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Units.VolumeFlowRate", + "component_list": [ + { + "declaration": { + "identifier": "Fo" + }, + "description": { + "description_string": "outflow" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "open" + }, + "description": { + "description_string": "valve open" + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": 100 + }, + { + "x": 0, + "y": -100 + }, + { + "x": 100, + "y": 100 + }, + { + "x": -100, + "y": 100 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid", + "lineThickness": 0.5 + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "Outflow2", + "description_string": "Outflow connector (this is a copy from Isolde Dressler's master thesis project)", + "composition": { + "element_list": [ + { + "import_clause": { + "identifier": "Units", + "name": "Modelica.SIunits" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Units.VolumeFlowRate", + "component_list": [ + { + "declaration": { + "identifier": "Fo" + }, + "description": { + "description_string": "outflow" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "open" + }, + "description": { + "description_string": "valve open" + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": 100 + }, + { + "x": 0, + "y": -100 + }, + { + "x": 100, + "y": 100 + }, + { + "x": -100, + "y": 100 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid", + "lineThickness": 0.5 + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "valve", + "description_string": "Simple valve model (this is a copy from Isolde Dressler's master thesis project)", + "composition": { + "element_list": [ + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.BooleanInput", + "component_list": [ + { + "declaration": { + "identifier": "valveControl" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": 0, + "y": -80 + }, + "extent": [ + { + "x": -20, + "y": -20 + }, + { + "x": 20, + "y": 20 + } + ], + "rotation": 90 + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.StateGraph.Examples.Utilities.Inflow2", + "component_list": [ + { + "declaration": { + "identifier": "inflow1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": 50, + "y": 0 + }, + "extent": [ + { + "x": -50, + "y": -50 + }, + { + "x": 50, + "y": 50 + } + ], + "rotation": 90 + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.StateGraph.Examples.Utilities.Outflow2", + "component_list": [ + { + "declaration": { + "identifier": "outflow1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": -50, + "y": 0 + }, + "extent": [ + { + "x": -50, + "y": -50 + }, + { + "x": 50, + "y": 50 + } + ], + "rotation": 90 + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "assignment_equation": { + "lhs": "outflow1.Fo", + "rhs": { + "simple_expression": "inflow1.Fi" + } + } + }, + { + "assignment_equation": { + "lhs": "outflow1.open", + "rhs": { + "simple_expression": "valveControl" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": -60 + }, + { + "x": 0, + "y": 0 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 20, + "y": 20 + }, + { + "x": 20, + "y": 20 + } + ], + "thickness": 0.5 + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -131, + "y": 125 + }, + { + "x": 136, + "y": 67 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": -60 + } + ], + "color": { + "r": 255, + "g": 0, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "Tank", + "description_string": "Simple tank model (this is a copy from Isolde Dressler's master thesis project)", + "composition": { + "element_list": [ + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.RealOutput", + "component_list": [ + { + "declaration": { + "identifier": "levelSensor" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -61, + "y": -30 + }, + { + "x": -81, + "y": -10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.StateGraph.Examples.Utilities.Inflow1", + "component_list": [ + { + "declaration": { + "identifier": "inflow1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -55, + "y": 60 + }, + { + "x": -45, + "y": 70 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.StateGraph.Examples.Utilities.Outflow1", + "component_list": [ + { + "declaration": { + "identifier": "outflow1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 55, + "y": -50 + }, + { + "x": 65, + "y": -40 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Real", + "component_list": [ + { + "declaration": { + "identifier": "level", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "start", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "fixed", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + }, + "description": { + "description_string": "Tank level in % of max height" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Real", + "component_list": [ + { + "declaration": { + "identifier": "A", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + }, + "description": { + "description_string": "Ground area of tank in m^2" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Real", + "component_list": [ + { + "declaration": { + "identifier": "a", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0.2" + } + } + }, + "description": { + "description_string": "Area of drain hole in m^2" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Real", + "component_list": [ + { + "declaration": { + "identifier": "hmax", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + }, + "description": { + "description_string": "Max height of tank in m" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "constant", + "type_specifier": "Real", + "component_list": [ + { + "declaration": { + "identifier": "g", + "modification": { + "equal": true, + "expression": { + "simple_expression": "Modelica.Constants.g_n" + } + } + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "assignment_equation": { + "lhs": "der(level)", + "rhs": { + "simple_expression": "(inflow1.Fi -outflow1.Fo)/(hmax*A)" + } + } + }, + { + "if_equation": { + "if_elseif": [ + { + "condition": { + "simple_expression": "outflow1.open" + }, + "then": [ + { + "equation": { + "assignment_equation": { + "lhs": "outflow1.Fo", + "rhs": { + "simple_expression": "sqrt(max(0,2*g*hmax*level))*a" + } + } + } + } + ] + } + ], + "else_equation": [ + { + "assignment_equation": { + "lhs": "outflow1.Fo", + "rhs": { + "simple_expression": "0" + } + } + } + ] + } + }, + { + "assignment_equation": { + "lhs": "levelSensor", + "rhs": { + "simple_expression": "level" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -122, + "y": -82 + }, + { + "x": 88, + "y": -42 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -60, + "y": 60 + }, + { + "x": 80, + "y": -40 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid", + "lineThickness": 0.5 + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -60, + "y": -40 + }, + { + "x": -60, + "y": -40 + }, + { + "x": null, + "y": null + }, + { + "x": -60, + "y": -40 + }, + { + "x": 80, + "y": null + } + ], + "fillColor": { + "r": 191, + "g": 0, + "b": 95 + }, + "fillPattern": "FillPattern.HorizontalCylinder", + "lineThickness": 0.5 + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "Source", + "description_string": "Simple source model (this is a copy from Isolde Dressler's master thesis project)", + "composition": { + "element_list": [ + { + "component_clause": { + "type_specifier": "Modelica.StateGraph.Examples.Utilities.Outflow1", + "component_list": [ + { + "declaration": { + "identifier": "outflow1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -10, + "y": -60 + }, + { + "x": 10, + "y": -40 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Real", + "component_list": [ + { + "declaration": { + "identifier": "maxflow", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + }, + "description": { + "description_string": "maximal flow out of source" + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "if_equation": { + "if_elseif": [ + { + "condition": { + "simple_expression": "outflow1.open" + }, + "then": [ + { + "equation": { + "assignment_equation": { + "lhs": "outflow1.Fo", + "rhs": { + "simple_expression": "maxflow" + } + } + } + } + ] + } + ], + "else_equation": [ + { + "assignment_equation": { + "lhs": "outflow1.Fo", + "rhs": { + "simple_expression": "0" + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -80, + "y": 40 + }, + { + "x": 80, + "y": -40 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid", + "lineThickness": 0.5 + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -144, + "y": 54 + }, + { + "x": 152, + "y": 114 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "CompositeStep", + "description_string": "State machine demonstrating a composite step (used in StateGraph.Examples.ShowCompositeStep)", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "StateGraph.PartialCompositeStep" + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition3", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -64, + "y": 50 + }, + { + "x": -44, + "y": 70 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition4", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -64, + "y": -10 + }, + { + "x": -44, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "step3" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -10, + "y": 50 + }, + { + "x": 10, + "y": 70 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "step4" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -10, + "y": -10 + }, + { + "x": 10, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition5", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "2" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 36, + "y": 50 + }, + { + "x": 56, + "y": 70 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition6", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "2" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 36, + "y": -10 + }, + { + "x": 56, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition4a", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -64, + "y": -70 + }, + { + "x": -44, + "y": -50 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "step4a" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -10, + "y": -70 + }, + { + "x": 10, + "y": -50 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition6a", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "2" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 36, + "y": -70 + }, + { + "x": 56, + "y": -50 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "initStep" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -140, + "y": -10 + }, + { + "x": -120, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "exitStep" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 120, + "y": -10 + }, + { + "x": 140, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Alternative", + "component_list": [ + { + "declaration": { + "identifier": "Alternative1", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "nBranches", + "modification": { + "equal": true, + "expression": { + "simple_expression": "3" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -98, + "y": -90 + }, + { + "x": 98, + "y": 90 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -52.5, + "y": 60 + }, + { + "x": -11, + "y": 60 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition5" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 10.5, + "y": 60 + }, + { + "x": 42, + "y": 60 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition4" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step4" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -52.5, + "y": 0 + }, + { + "x": -11, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step4" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition6" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 10.5, + "y": 0 + }, + { + "x": 42, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition4a" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "step4a" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -52.5, + "y": -60 + }, + { + "x": -11, + "y": -60 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "step4a" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition6a" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 10.5, + "y": -60 + }, + { + "x": 42, + "y": -60 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "initStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -141, + "y": 0 + }, + { + "x": -160, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "exitStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "outPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 140.5, + "y": 0 + }, + { + "x": 155, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "initStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Alternative1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -119.5, + "y": 0 + }, + { + "x": -100.94, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "Alternative1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "exitStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 99.96, + "y": 0 + }, + { + "x": 119, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Alternative1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "split", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -58, + "y": 60 + }, + { + "x": -77.42, + "y": 60 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition4" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Alternative1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "split", + "array_subscripts": [ + { + "expression": { + "simple_expression": "2" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -58, + "y": 0 + }, + { + "x": -67.975, + "y": 0 + }, + { + "x": -77.42, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition4a" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Alternative1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "split", + "array_subscripts": [ + { + "expression": { + "simple_expression": "3" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -58, + "y": -60 + }, + { + "x": -67.975, + "y": -60 + }, + { + "x": -77.42, + "y": -60 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition5" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Alternative1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "join", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 47.5, + "y": 60 + }, + { + "x": 77.42, + "y": 60 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition6" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Alternative1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "join", + "array_subscripts": [ + { + "expression": { + "simple_expression": "2" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 47.5, + "y": 0 + }, + { + "x": 60.725, + "y": 0 + }, + { + "x": 77.42, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition6a" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Alternative1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "join", + "array_subscripts": [ + { + "expression": { + "simple_expression": "3" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 47.5, + "y": -60 + }, + { + "x": 60.725, + "y": -60 + }, + { + "x": 77.42, + "y": -60 + } + ] + } + } + } + } + ] + } + } + ] + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "CompositeStep1", + "description_string": "Composite step used to demonstrate exceptions (in StateGraph.Examples.ShowExceptions)", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "PartialCompositeStep" + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition1", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "false" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "condition", + "modification": { + "equal": true, + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "time" + }, + { + "name": "8" + } + ], + "relation_operator": ">=" + } + ] + } + ] + } + } + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -60, + "y": 20 + }, + { + "x": -40, + "y": 40 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "initStep" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -140, + "y": -10 + }, + { + "x": -120, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "exitStep" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 110, + "y": -10 + }, + { + "x": 130, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "CompositeStep2", + "component_list": [ + { + "declaration": { + "identifier": "compositeStep11", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "3" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -20, + "y": 15 + }, + { + "x": 10, + "y": 45 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "CompositeStep2", + "component_list": [ + { + "declaration": { + "identifier": "compositeStep12", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "2" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -20, + "y": -45 + }, + { + "x": 10, + "y": -15 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition2", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "condition", + "modification": { + "equal": true, + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "time" + }, + { + "name": "4" + } + ], + "relation_operator": ">=" + } + ] + } + ] + } + } + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "false" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -61, + "y": -40 + }, + { + "x": -41, + "y": -20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition3", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "false" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 29, + "y": 20 + }, + { + "x": 49, + "y": 40 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition4", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "false" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 29, + "y": -40 + }, + { + "x": 49, + "y": -20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Alternative", + "component_list": [ + { + "declaration": { + "identifier": "Alternative1" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -100, + "y": -60 + }, + { + "x": 89, + "y": 60 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "exitStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "outPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 130.5, + "y": 0 + }, + { + "x": 155, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "initStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -141, + "y": 0 + }, + { + "x": -160, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "compositeStep11" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -48.5, + "y": 30 + }, + { + "x": -21, + "y": 30 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "compositeStep12" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -49.5, + "y": -30 + }, + { + "x": -21, + "y": -30 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "compositeStep11" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 10.5, + "y": 30 + }, + { + "x": 35, + "y": 30 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "compositeStep12" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition4" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 10.5, + "y": -30 + }, + { + "x": 35, + "y": -30 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "initStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Alternative1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -119.5, + "y": 0 + }, + { + "x": -102.835, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "Alternative1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "exitStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 90.89, + "y": 0 + }, + { + "x": 109, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Alternative1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "split", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -54, + "y": 30 + }, + { + "x": -80.155, + "y": 30 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition2" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Alternative1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "split", + "array_subscripts": [ + { + "expression": { + "simple_expression": "2" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -55, + "y": -30 + }, + { + "x": -80.155, + "y": -30 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition3" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Alternative1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "join", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 40.5, + "y": 30 + }, + { + "x": 69.155, + "y": 30 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition4" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "Alternative1" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "join", + "array_subscripts": [ + { + "expression": { + "simple_expression": "2" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 40.5, + "y": -30 + }, + { + "x": 69.155, + "y": -30 + } + ] + } + } + } + } + ] + } + } + ] + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "CompositeStep2", + "description_string": "Composite step used to demonstrate exceptions (in StateGraph.Examples.ShowExceptions)", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "PartialCompositeStep" + } + }, + { + "component_clause": { + "type_specifier": "Transition", + "component_list": [ + { + "declaration": { + "identifier": "transition", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "waitTime" + } + } + } + } + } + ] + } + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -30, + "y": -10 + }, + { + "x": -10, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "initStep" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -140, + "y": -10 + }, + { + "x": -120, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step", + "component_list": [ + { + "declaration": { + "identifier": "exitStep" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 110, + "y": -10 + }, + { + "x": 130, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Temporary.SetRealParameter", + "component_list": [ + { + "declaration": { + "identifier": "waitTime", + "modification": { + "equal": true, + "expression": { + "simple_expression": "2" + } + } + }, + "description": { + "description_string": "waiting time in this composite step", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -80, + "y": 30 + }, + { + "x": -50, + "y": 50 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "exitStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "outPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": 130.5, + "y": 0 + }, + { + "x": 155, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "initStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -141, + "y": 0 + }, + { + "x": -160, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "initStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ], + "to": [ + { + "dot_op": false, + "identifier": "transition" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort" + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -119.5, + "y": 0 + }, + { + "x": -24, + "y": 0 + } + ] + } + } + } + } + ] + } + }, + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "transition" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "outPort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "exitStep" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "1" + } + } + ] + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Line": { + "points": [ + { + "x": -18.5, + "y": 0 + }, + { + "x": 109, + "y": 0 + } + ] + } + } + } + } + ] + } + } + ] + } + } + ] + } + } + } + } + } + ] + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "Interfaces", + "description_string": "Connectors and partial models", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.InterfacesPackage" + } + }, + { + "class_definition": { + "class_prefixes": "connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "Step_in", + "description_string": "Input port of a step", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "occupied" + }, + "description": { + "description_string": "true, if step is active", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "set" + }, + "description": { + "description_string": "true, if transition fires and step is activated", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": 0 + }, + { + "x": -100, + "y": -100 + }, + { + "x": -100, + "y": 100 + } + ], + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 0, + "y": 50 + }, + { + "x": 100, + "y": 0 + }, + { + "x": 0, + "y": -50 + }, + { + "x": 0, + "y": 50 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -141, + "y": 100 + }, + { + "x": 100, + "y": 60 + } + ], + "textString": "\"%name\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "Step_out", + "description_string": "Output port of a step", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "available" + }, + "description": { + "description_string": "true, if step is active", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "reset" + }, + "description": { + "description_string": "true, if transition fires and step is deactivated", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 50 + }, + { + "x": 0, + "y": -50 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 186, + "y": 58 + } + ], + "textString": "\"%name\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "Transition_in", + "description_string": "Input port of a transition", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "available" + }, + "description": { + "description_string": "true, if step connected to the transition input is active", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "reset" + }, + "description": { + "description_string": "true, if transition fires and the step connected to the transition input is deactivated", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": 0 + }, + { + "x": -100, + "y": -100 + }, + { + "x": -100, + "y": 100 + } + ], + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 0, + "y": 50 + }, + { + "x": 100, + "y": 0 + }, + { + "x": 0, + "y": -50 + }, + { + "x": 0, + "y": 50 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -141, + "y": 100 + }, + { + "x": 100, + "y": 60 + } + ], + "textString": "\"%name\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "Transition_out", + "description_string": "Output port of a transition", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "occupied" + }, + "description": { + "description_string": "true, if step connected to the transition output is active", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "set" + }, + "description": { + "description_string": "true, if transition fires and step connected to the transition output becomes active", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 146, + "y": 60 + } + ], + "textString": "\"%name\"" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 50 + }, + { + "x": 0, + "y": -50 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "CompositeStep_resume", + "description_string": "Input port of a step (used for resume connector of a CompositeStep)", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "occupied" + }, + "description": { + "description_string": "true, if step is active", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "set" + }, + "description": { + "description_string": "true, if transition fires and step is activated", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": 0 + }, + { + "x": -100, + "y": -100 + }, + { + "x": -100, + "y": 100 + } + ], + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "CompositeStep_suspend", + "description_string": "Output port of a step (used for suspend connector of a CompositeStep)", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "available" + }, + "description": { + "description_string": "true, if step is active", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "reset" + }, + "description": { + "description_string": "true, if transition fires and step is deactivated", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "CompositeStepStatePort_in", + "description_string": "Communication port between a CompositeStep and the ordinary steps within the CompositeStep (suspend/resume are inputs)", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "suspend" + }, + "description": { + "description_string": "= true, if suspend transition of CompositeStep fires" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "resume" + }, + "description": { + "description_string": "= true, if resume transition of CompositeStep fires" + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Real", + "component_list": [ + { + "declaration": { + "identifier": "activeStepsDummy" + }, + "description": { + "description_string": "Dummy variable in order that connector fulfills restriction of connector", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "flow", + "type_specifier": "Real", + "component_list": [ + { + "declaration": { + "identifier": "activeSteps" + }, + "description": { + "description_string": "Number of active steps in the CompositeStep" + } + } + ] + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "CompositeStepStatePort_out", + "description_string": "Communication port between a CompositeStep and the ordinary steps within the CompositeStep (suspend/resume are outputs)", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "suspend" + }, + "description": { + "description_string": "= true, if suspend transition of CompositeStep fires" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "resume" + }, + "description": { + "description_string": "= true, if resume transition of CompositeStep fires" + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Real", + "component_list": [ + { + "declaration": { + "identifier": "activeStepsDummy" + }, + "description": { + "description_string": "Dummy variable in order that connector fulfills restriction of connector", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "flow", + "type_specifier": "Real", + "component_list": [ + { + "declaration": { + "identifier": "activeSteps" + }, + "description": { + "description_string": "Number of active steps in the CompositeStep" + } + } + ] + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial block", + "class_specifier": { + "long_class_specifier": { + "identifier": "PartialStep", + "description_string": "Partial step with one input and one output transition port", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Integer", + "component_list": [ + { + "declaration": { + "identifier": "nIn", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ], + "equal": true, + "expression": { + "simple_expression": "1" + } + } + }, + "description": { + "description_string": "Number of input connections" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Integer", + "component_list": [ + { + "declaration": { + "identifier": "nOut", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ], + "equal": true, + "expression": { + "simple_expression": "1" + } + } + }, + "description": { + "description_string": "Number of output connections" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "localActive" + }, + "description": { + "description_string": "= true if step is active, otherwise the step is not active", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Interfaces.Step_in", + "component_list": [ + { + "declaration": { + "identifier": "inPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "nIn" + } + } + ] + }, + "description": { + "description_string": "Vector of step input connectors", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -120, + "y": 10 + }, + { + "x": -100, + "y": -10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Interfaces.Step_out", + "component_list": [ + { + "declaration": { + "identifier": "outPort", + "array_subscripts": [ + { + "expression": { + "simple_expression": "nOut" + } + } + ] + }, + "description": { + "description_string": "Vector of step output connectors", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 100, + "y": 5 + }, + { + "x": 110, + "y": -5 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "protected_element_list": [ + { + "outer": true, + "component_clause": { + "type_specifier": "Interfaces.CompositeStepState", + "component_list": [ + { + "declaration": { + "identifier": "stateGraphRoot" + } + } + ] + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "OuterStatePort", + "composition": { + "element_list": [ + { + "component_clause": { + "type_specifier": "CompositeStepStatePort_in", + "component_list": [ + { + "declaration": { + "identifier": "subgraphStatePort" + } + } + ] + } + } + ] + } + } + } + } + }, + { + "component_clause": { + "type_specifier": "OuterStatePort", + "component_list": [ + { + "declaration": { + "identifier": "outerStatePort" + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "newActive" + }, + "description": { + "description_string": "Value of active in the next iteration", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "oldActive" + }, + "description": { + "description_string": "Value of active when CompositeStep was aborted" + } + } + ] + } + } + ] + }, + { + "equation_section": { + "initial": true, + "equation": [ + { + "assignment_equation": { + "lhs": { + "function_call": { + "name": "pre", + "arguments": [ + { + "name": "newActive" + } + ] + } + }, + "rhs": { + "simple_expression": { + "function_call": { + "name": "pre", + "arguments": [ + { + "name": "localActive" + } + ] + } + } + } + } + }, + { + "assignment_equation": { + "lhs": { + "function_call": { + "name": "pre", + "arguments": [ + { + "name": "oldActive" + } + ] + } + }, + "rhs": { + "simple_expression": { + "function_call": { + "name": "pre", + "arguments": [ + { + "name": "localActive" + } + ] + } + } + } + } + } + ] + } + }, + { + "equation_section": { + "equation": [ + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "outerStatePort" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "subgraphStatePort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "stateGraphRoot" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "subgraphStatePort" + } + ] + } + }, + { + "for_equation": { + "for_indices": [ + { + "identifier": "i", + "expression": { + "simple_expression": "1:nIn" + } + } + ], + "loop_equations": [ + { + "function_call_equation": { + "function_name": "assert", + "function_call_args": { + "function_argument": { + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(inPort[i])" + }, + { + "name": "1" + } + ], + "relation_operator": "<=" + } + ] + } + ] + } + } + } + }, + "function_arguments": { + "function_argument": { + "expression": { + "simple_expression": "\"Connector is connected to more than one transition (this is not allowed)\"" + } + } + } + } + } + } + ] + } + }, + { + "for_equation": { + "for_indices": [ + { + "identifier": "i", + "expression": { + "simple_expression": "1:nOut" + } + } + ], + "loop_equations": [ + { + "function_call_equation": { + "function_name": "assert", + "function_call_args": { + "function_argument": { + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(outPort[i])" + }, + { + "name": "1" + } + ], + "relation_operator": "<=" + } + ] + } + ] + } + } + } + }, + "function_arguments": { + "function_argument": { + "expression": { + "simple_expression": "\"Connector is connected to more than one transition (this is not allowed)\"" + } + } + } + } + } + } + ] + } + }, + { + "assignment_equation": { + "lhs": "localActive", + "rhs": { + "simple_expression": { + "function_call": { + "name": "pre", + "arguments": [ + { + "name": "newActive" + } + ] + } + } + } + } + }, + { + "assignment_equation": { + "lhs": "newActive", + "rhs": { + "if_expression": { + "if_elseif": [ + { + "condition": { + "simple_expression": "outerStatePort.subgraphStatePort.resume" + }, + "then": { + "simple_expression": "oldActive" + } + } + ], + "else_expression": { + "simple_expression": "(StateGraph.Temporary.anyTrue(inPort.set) or localActive and not StateGraph.Temporary.anyTrue(outPort.reset)) and not outerStatePort.subgraphStatePort.suspend" + } + } + } + } + }, + { + "when_equation": [ + { + "condition": { + "simple_expression": "outerStatePort.subgraphStatePort.suspend" + }, + "then": [ + { + "assignment_equation": { + "lhs": "oldActive", + "rhs": { + "simple_expression": "localActive" + } + } + } + ] + } + ] + }, + { + "assignment_equation": { + "lhs": "outerStatePort.subgraphStatePort.activeSteps", + "rhs": { + "if_expression": { + "if_elseif": [ + { + "condition": { + "simple_expression": "localActive" + }, + "then": { + "simple_expression": "1" + } + } + ], + "else_expression": { + "simple_expression": "0" + } + } + } + } + }, + { + "for_equation": { + "for_indices": [ + { + "identifier": "i", + "expression": { + "simple_expression": "1:nIn" + } + } + ], + "loop_equations": [ + { + "assignment_equation": { + "lhs": "inPort[i].occupied", + "rhs": { + "if_expression": { + "if_elseif": [ + { + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "i" + }, + { + "name": "1" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + }, + "then": { + "simple_expression": "localActive" + } + } + ], + "else_expression": { + "simple_expression": "inPort[i -1].occupied or inPort[i -1].set" + } + } + } + } + } + ] + } + }, + { + "for_equation": { + "for_indices": [ + { + "identifier": "i", + "expression": { + "simple_expression": "1:nOut" + } + } + ], + "loop_equations": [ + { + "assignment_equation": { + "lhs": "outPort[i].available", + "rhs": { + "if_expression": { + "if_elseif": [ + { + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "i" + }, + { + "name": "1" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + }, + "then": { + "simple_expression": "localActive" + } + } + ], + "else_expression": { + "simple_expression": "outPort[i -1].available and not outPort[i -1].reset" + } + } + } + } + } + ] + } + }, + { + "for_equation": { + "for_indices": [ + { + "identifier": "i", + "expression": { + "simple_expression": "1:nIn" + } + } + ], + "loop_equations": [ + { + "if_equation": { + "if_elseif": [ + { + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(inPort[i])" + }, + { + "name": "0" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + }, + "then": [ + { + "equation": { + "assignment_equation": { + "lhs": "inPort[i].set", + "rhs": { + "simple_expression": "false" + } + } + } + } + ] + } + ] + } + } + ] + } + }, + { + "for_equation": { + "for_indices": [ + { + "identifier": "i", + "expression": { + "simple_expression": "1:nOut" + } + } + ], + "loop_equations": [ + { + "if_equation": { + "if_elseif": [ + { + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(outPort[i])" + }, + { + "name": "0" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + }, + "then": [ + { + "equation": { + "assignment_equation": { + "lhs": "outPort[i].reset", + "rhs": { + "simple_expression": "false" + } + } + } + } + ] + } + ] + } + } + ] + } + } + ] + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial block", + "class_specifier": { + "long_class_specifier": { + "identifier": "PartialTransition", + "description_string": "Partial transition with input and output connections", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "localCondition" + }, + "description": { + "description_string": "= true, if transition may fire", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "enableTimer", + "modification": { + "equal": true, + "expression": { + "simple_expression": "false" + } + } + }, + "description": { + "description_string": "= true, if timer is enabled", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Evaluate", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Dialog", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "group", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Timer\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Modelica.SIunits.Time", + "component_list": [ + { + "declaration": { + "identifier": "waitTime", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ], + "equal": true, + "expression": { + "simple_expression": "0" + } + } + }, + "description": { + "description_string": "Wait time before transition fires", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Dialog", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "group", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Timer\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enable", + "modification": { + "equal": true, + "expression": { + "simple_expression": "enableTimer" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Modelica.SIunits.Time", + "component_list": [ + { + "declaration": { + "identifier": "t" + }, + "description": { + "description_string": "= actual waiting time (transition will fire when t > waitTime)" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "enableFire" + }, + "description": { + "description_string": "= true, if all firing conditions are true" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "fire" + }, + "description": { + "description_string": "= true, if transition fires", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "StateGraph.Interfaces.Transition_in", + "component_list": [ + { + "declaration": { + "identifier": "inPort" + }, + "description": { + "description_string": "Vector of transition input connectors", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -50, + "y": -10 + }, + { + "x": -30, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "StateGraph.Interfaces.Transition_out", + "component_list": [ + { + "declaration": { + "identifier": "outPort" + }, + "description": { + "description_string": "Vector of transition output connectors", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 10, + "y": -5 + }, + { + "x": 20, + "y": 5 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "protected_element_list": [ + { + "component_clause": { + "type_specifier": "Modelica.SIunits.Time", + "component_list": [ + { + "declaration": { + "identifier": "t_start" + }, + "description": { + "description_string": "Time instant at which the transition would fire, if waitTime would be zero" + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Real", + "component_list": [ + { + "declaration": { + "identifier": "t_dummy" + } + } + ] + } + } + ] + }, + { + "equation_section": { + "initial": true, + "equation": [ + { + "if_equation": { + "if_elseif": [ + { + "condition": { + "simple_expression": "enableTimer" + }, + "then": [ + { + "equation": { + "assignment_equation": { + "lhs": { + "function_call": { + "name": "pre", + "arguments": [ + { + "name": "t_start" + } + ] + } + }, + "rhs": { + "simple_expression": "time" + } + } + } + } + ] + } + ] + } + }, + { + "assignment_equation": { + "lhs": { + "function_call": { + "name": "pre", + "arguments": [ + { + "name": "enableFire" + } + ] + } + }, + "rhs": { + "simple_expression": "false" + } + } + } + ] + } + }, + { + "equation_section": { + "equation": [ + { + "function_call_equation": { + "function_name": "assert", + "function_call_args": { + "function_argument": { + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(inPort)" + }, + { + "name": "1" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + } + }, + "function_arguments": { + "function_argument": { + "expression": { + "simple_expression": "\"Connector inPort is not connected to exactly one other connector\"" + } + } + } + } + } + }, + { + "function_call_equation": { + "function_name": "assert", + "function_call_args": { + "function_argument": { + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(outPort)" + }, + { + "name": "1" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + } + }, + "function_arguments": { + "function_argument": { + "expression": { + "simple_expression": "\"Connector outPort is not connected to exactly one other connector\"" + } + } + } + } + } + }, + { + "if_equation": { + "if_elseif": [ + { + "condition": { + "simple_expression": "enableTimer" + }, + "then": [ + { + "equation": { + "when_equation": [ + { + "condition": { + "simple_expression": "enableFire" + }, + "then": [ + { + "assignment_equation": { + "lhs": "t_start", + "rhs": { + "simple_expression": "time" + } + } + } + ] + } + ] + } + }, + { + "equation": { + "assignment_equation": { + "lhs": "t_dummy", + "rhs": { + "simple_expression": "time -t_start" + } + } + } + }, + { + "equation": { + "assignment_equation": { + "lhs": "t", + "rhs": { + "if_expression": { + "if_elseif": [ + { + "condition": { + "simple_expression": "enableFire" + }, + "then": { + "simple_expression": "t_dummy" + } + } + ], + "else_expression": { + "simple_expression": "0" + } + } + } + } + } + }, + { + "equation": { + "assignment_equation": { + "lhs": "fire", + "rhs": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "time" + }, + { + "name": "t_start +waitTime" + } + ], + "relation_operator": ">=" + } + ] + } + ] + } + } + } + } + } + } + ] + } + ], + "else_equation": [ + { + "assignment_equation": { + "lhs": "t_start", + "rhs": { + "simple_expression": "0" + } + } + }, + { + "assignment_equation": { + "lhs": "t_dummy", + "rhs": { + "simple_expression": "0" + } + } + }, + { + "assignment_equation": { + "lhs": "t", + "rhs": { + "simple_expression": "0" + } + } + }, + { + "assignment_equation": { + "lhs": "fire", + "rhs": { + "simple_expression": "enableFire" + } + } + } + ] + } + }, + { + "assignment_equation": { + "lhs": "enableFire", + "rhs": { + "simple_expression": "localCondition and inPort.available and not outPort.occupied" + } + } + }, + { + "assignment_equation": { + "lhs": "inPort.reset", + "rhs": { + "simple_expression": "fire" + } + } + }, + { + "assignment_equation": { + "lhs": "outPort.set", + "rhs": { + "simple_expression": "fire" + } + } + } + ] + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial block", + "class_specifier": { + "long_class_specifier": { + "identifier": "PartialStateGraphIcon", + "description_string": "Icon for a StateGraph object", + "composition": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 160, + "y": 110 + }, + { + "x": -160, + "y": 150 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "CompositeStepState", + "description_string": "Communication channel between CompositeSteps and steps in the CompositeStep", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "suspend", + "modification": { + "equal": true, + "expression": { + "simple_expression": "false" + } + } + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "resume", + "modification": { + "equal": true, + "expression": { + "simple_expression": "false" + } + } + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "CompositeStepStatePort_out", + "component_list": [ + { + "declaration": { + "identifier": "subgraphStatePort" + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "assignment_equation": { + "lhs": "suspend", + "rhs": { + "simple_expression": "subgraphStatePort.suspend" + } + } + }, + { + "assignment_equation": { + "lhs": "resume", + "rhs": { + "simple_expression": "subgraphStatePort.resume" + } + } + }, + { + "assignment_equation": { + "lhs": "subgraphStatePort.activeStepsDummy", + "rhs": { + "simple_expression": "0" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "defaultComponentName", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"stateGraphRoot\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "defaultComponentPrefixes", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"inner\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "missingInnerMessage", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"A \\\"stateGraphRoot\\\" component was automatically introduced.\"" + } + } + } + } + } + ] + } + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "block", + "class_specifier": { + "long_class_specifier": { + "identifier": "InitialStep", + "description_string": "Initial step (= step that is active when simulation starts)", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "active" + }, + "description": { + "description_string": "= true if step is active, otherwise the step is not active" + } + } + ] + } + }, + { + "extends_clause": { + "name": "Interfaces.PartialStep" + } + } + ], + "element_sections": [ + { + "equation_section": { + "initial": true, + "equation": [ + { + "assignment_equation": { + "lhs": "active", + "rhs": { + "simple_expression": "true" + } + } + } + ] + } + }, + { + "equation_section": { + "equation": [ + { + "assignment_equation": { + "lhs": "active", + "rhs": { + "simple_expression": "localActive" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -200, + "y": 110 + }, + { + "x": 200, + "y": 150 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": null + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -80, + "y": 80 + }, + { + "x": 80, + "y": -80 + } + ] + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ] + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -80, + "y": 80 + }, + { + "x": 80, + "y": -80 + } + ] + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "block", + "class_specifier": { + "long_class_specifier": { + "identifier": "InitialStepWithSignal", + "description_string": "Initial step (= step that is active when simulation starts). Connector 'active' is true when the step is active", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Interfaces.PartialStep" + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.BooleanOutput", + "component_list": [ + { + "declaration": { + "identifier": "active" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": 0, + "y": -110 + }, + "extent": [ + { + "x": -10, + "y": -10 + }, + { + "x": 10, + "y": 10 + } + ], + "rotation": 270 + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "initial": true, + "equation": [ + { + "assignment_equation": { + "lhs": "active", + "rhs": { + "simple_expression": "true" + } + } + } + ] + } + }, + { + "equation_section": { + "equation": [ + { + "assignment_equation": { + "lhs": "active", + "rhs": { + "simple_expression": "localActive" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ] + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -80, + "y": 80 + }, + { + "x": 80, + "y": -80 + } + ] + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -200, + "y": 110 + }, + { + "x": 200, + "y": 150 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": null + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -92, + "y": -50 + }, + { + "x": 94, + "y": -68 + } + ], + "textString": "\"active\"" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -80, + "y": 80 + }, + { + "x": 80, + "y": -80 + } + ] + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "block", + "class_specifier": { + "long_class_specifier": { + "identifier": "Step", + "description_string": "Ordinary step (= step that is not active when simulation starts)", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "active" + }, + "description": { + "description_string": "= true if step is active, otherwise the step is not active" + } + } + ] + } + }, + { + "extends_clause": { + "name": "Interfaces.PartialStep" + } + } + ], + "element_sections": [ + { + "equation_section": { + "initial": true, + "equation": [ + { + "assignment_equation": { + "lhs": "active", + "rhs": { + "simple_expression": "false" + } + } + } + ] + } + }, + { + "equation_section": { + "equation": [ + { + "assignment_equation": { + "lhs": "active", + "rhs": { + "simple_expression": "localActive" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -200, + "y": 110 + }, + { + "x": 200, + "y": 150 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": null + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ] + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "block", + "class_specifier": { + "long_class_specifier": { + "identifier": "StepWithSignal", + "description_string": "Ordinary step (= step that is not active when simulation starts). Connector 'active' is true when the step is active", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Interfaces.PartialStep" + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.BooleanOutput", + "component_list": [ + { + "declaration": { + "identifier": "active" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": 0, + "y": -110 + }, + "extent": [ + { + "x": -10, + "y": -10 + }, + { + "x": 10, + "y": 10 + } + ], + "rotation": 270 + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "initial": true, + "equation": [ + { + "assignment_equation": { + "lhs": "active", + "rhs": { + "simple_expression": "false" + } + } + } + ] + } + }, + { + "equation_section": { + "equation": [ + { + "assignment_equation": { + "lhs": "active", + "rhs": { + "simple_expression": "localActive" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ] + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -200, + "y": 110 + }, + { + "x": 200, + "y": 150 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": null + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -92, + "y": -74 + }, + { + "x": 94, + "y": -92 + } + ], + "textString": "\"active\"" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "block", + "class_specifier": { + "long_class_specifier": { + "identifier": "Transition", + "description_string": "Transition where the fire condition is set by a modification of variable condition", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "condition", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + }, + "description": { + "description_string": "= true, if transition may fire (time varying expression)", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Dialog", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "group", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Fire condition\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + ] + } + }, + { + "extends_clause": { + "name": "Interfaces.PartialTransition", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "localCondition", + "modification": { + "equal": true, + "expression": { + "simple_expression": "condition" + } + } + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -10, + "y": 100 + }, + { + "x": 10, + "y": -100 + } + ], + "fillColor": { + "r": 0, + "g": 0, + "b": null + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -30, + "y": 0 + }, + { + "x": -10, + "y": 0 + } + ] + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 200, + "y": 110 + }, + { + "x": -200, + "y": 150 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 20, + "y": 20 + }, + { + "x": 200, + "y": 45 + } + ], + "textString": "\"%waitTime\"", + "lineColor": { + "r": 0, + "g": 0, + "b": null + } + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -200, + "y": -120 + }, + { + "x": 200, + "y": -145 + } + ], + "textString": "\"%condition\"", + "lineColor": { + "r": 0, + "g": 0, + "b": null + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -31, + "y": 0 + }, + { + "x": -11, + "y": 0 + } + ] + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -10, + "y": 100 + }, + { + "x": 10, + "y": -100 + } + ], + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "block", + "class_specifier": { + "long_class_specifier": { + "identifier": "TransitionWithSignal", + "description_string": "Transition where the fire condition is set by a Boolean input signal", + "composition": { + "element_list": [ + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.BooleanInput", + "component_list": [ + { + "declaration": { + "identifier": "condition" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": 0, + "y": -120 + }, + "extent": [ + { + "x": -20, + "y": -20 + }, + { + "x": 20, + "y": 20 + } + ], + "rotation": 90 + } + } + } + } + } + ] + } + } + ] + } + }, + { + "extends_clause": { + "name": "Interfaces.PartialTransition", + "class_modification": [ + { + "element_modification_or_replaceable": { + "final": true, + "element_modification": { + "name": "localCondition", + "modification": { + "equal": true, + "expression": { + "simple_expression": "condition" + } + } + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 20, + "y": 20 + }, + { + "x": 200, + "y": 45 + } + ], + "textString": "\"%waitTime\"", + "lineColor": { + "r": 0, + "g": 0, + "b": null + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -10, + "y": 100 + }, + { + "x": 10, + "y": -100 + } + ], + "fillColor": { + "r": 0, + "g": 0, + "b": null + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -30, + "y": 0 + }, + { + "x": -10, + "y": 0 + } + ] + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 200, + "y": 110 + }, + { + "x": -200, + "y": 150 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 7, + "y": -81 + }, + { + "x": -7, + "y": -95 + } + ], + "lineColor": { + "r": 0, + "g": 0, + "b": null + }, + "fillColor": { + "r": 0, + "g": 0, + "b": null + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -31, + "y": 0 + }, + { + "x": -11, + "y": 0 + } + ] + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -10, + "y": 100 + }, + { + "x": 10, + "y": -100 + } + ], + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "block", + "class_specifier": { + "long_class_specifier": { + "identifier": "Alternative", + "description_string": "Alternative splitting of execution path (use component between two steps)", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Integer", + "component_list": [ + { + "declaration": { + "identifier": "nBranches", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ], + "equal": true, + "expression": { + "simple_expression": "2" + } + } + }, + "description": { + "description_string": "Number of alternative branches" + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Interfaces.Transition_in", + "component_list": [ + { + "declaration": { + "identifier": "inPort" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -106, + "y": -3 + }, + { + "x": -100, + "y": 3 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Interfaces.Transition_out", + "component_list": [ + { + "declaration": { + "identifier": "outPort" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 100, + "y": -2 + }, + { + "x": 104, + "y": 2 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step_in_forAlternative", + "component_list": [ + { + "declaration": { + "identifier": "join", + "array_subscripts": [ + { + "expression": { + "simple_expression": "nBranches" + } + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 78, + "y": 100 + }, + { + "x": 80, + "y": -100 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Step_out_forAlternative", + "component_list": [ + { + "declaration": { + "identifier": "split", + "array_subscripts": [ + { + "expression": { + "simple_expression": "nBranches" + } + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -78, + "y": 100 + }, + { + "x": -80, + "y": -100 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "protected_element_list": [ + { + "class_definition": { + "class_prefixes": "connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "Step_in_forAlternative", + "description_string": "Input port of a step (has special icon for usage in component 'Alternative')", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "occupied" + }, + "description": { + "description_string": "true, if step is active", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "set" + }, + "description": { + "description_string": "true, if transition fires and step is activated", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "fillColor": { + "r": 175, + "g": 175, + "b": 175 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "fillColor": { + "r": 175, + "g": 175, + "b": 175 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "Step_out_forAlternative", + "description_string": "Output port of a step (has special icon for usage in component 'Alternative')", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "available" + }, + "description": { + "description_string": "true, if step is active", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "reset" + }, + "description": { + "description_string": "true, if transition fires and step is deactivated", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "fillColor": { + "r": 175, + "g": 175, + "b": 175 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "fillColor": { + "r": 175, + "g": 175, + "b": 175 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "equation_section": { + "equation": [ + { + "function_call_equation": { + "function_name": "assert", + "function_call_args": { + "function_argument": { + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(inPort)" + }, + { + "name": "1" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + } + }, + "function_arguments": { + "function_argument": { + "expression": { + "simple_expression": "\"Connector inPort is not connected to exactly one other connector\"" + } + } + } + } + } + }, + { + "function_call_equation": { + "function_name": "assert", + "function_call_args": { + "function_argument": { + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(outPort)" + }, + { + "name": "1" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + } + }, + "function_arguments": { + "function_argument": { + "expression": { + "simple_expression": "\"Connector outPort is not connected to exactly one other connector\"" + } + } + } + } + } + }, + { + "for_equation": { + "for_indices": [ + { + "identifier": "i", + "expression": { + "simple_expression": "1:nBranches" + } + } + ], + "loop_equations": [ + { + "function_call_equation": { + "function_name": "assert", + "function_call_args": { + "function_argument": { + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(split[i])" + }, + { + "name": "1" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + } + }, + "function_arguments": { + "function_argument": { + "expression": { + "simple_expression": "\"Connector is not connected to exactly one other connector\"" + } + } + } + } + } + }, + { + "function_call_equation": { + "function_name": "assert", + "function_call_args": { + "function_argument": { + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(join[i])" + }, + { + "name": "1" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + } + }, + "function_arguments": { + "function_argument": { + "expression": { + "simple_expression": "\"Connector is not connected to exactly one other connector\"" + } + } + } + } + } + } + ] + } + }, + { + "for_equation": { + "for_indices": [ + { + "identifier": "i", + "expression": { + "simple_expression": "1:nBranches" + } + } + ], + "loop_equations": [ + { + "assignment_equation": { + "lhs": "split[i].available", + "rhs": { + "if_expression": { + "if_elseif": [ + { + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "i" + }, + { + "name": "1" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + }, + "then": { + "simple_expression": "inPort.available" + } + } + ], + "else_expression": { + "simple_expression": "split[i -1].available and not split[i -1].reset" + } + } + } + } + } + ] + } + }, + { + "assignment_equation": { + "lhs": "join.occupied", + "rhs": { + "simple_expression": { + "function_call": { + "name": "fill", + "arguments": [ + { + "name": "outPort.occupied" + }, + { + "name": "nBranches" + } + ] + } + } + } + } + }, + { + "assignment_equation": { + "lhs": "inPort.reset", + "rhs": { + "simple_expression": { + "function_call": { + "name": "StateGraph.Temporary.anyTrue", + "arguments": [ + { + "name": "split.reset" + } + ] + } + } + } + } + }, + { + "assignment_equation": { + "lhs": "outPort.set", + "rhs": { + "simple_expression": { + "function_call": { + "name": "StateGraph.Temporary.anyTrue", + "arguments": [ + { + "name": "join.set" + } + ] + } + } + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -80, + "y": 100 + }, + { + "x": 80, + "y": 100 + } + ], + "pattern": "LinePattern.Dot" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -80, + "y": -100 + }, + { + "x": 80, + "y": -100 + } + ], + "pattern": "LinePattern.Dot" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -100, + "y": 0 + }, + { + "x": -80, + "y": 0 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 80, + "y": 0 + }, + { + "x": 100, + "y": 0 + } + ] + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -100, + "y": 0 + }, + { + "x": -80, + "y": 0 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 80, + "y": 0 + }, + { + "x": 100, + "y": 0 + } + ] + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "block", + "class_specifier": { + "long_class_specifier": { + "identifier": "Parallel", + "description_string": "Parallel splitting of execution path (use component between two transitions)", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Integer", + "component_list": [ + { + "declaration": { + "identifier": "nBranches", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + } + } + } + ], + "equal": true, + "expression": { + "simple_expression": "2" + } + } + }, + "description": { + "description_string": "Number of parallel branches that are executed in parallel" + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Interfaces.Step_in", + "component_list": [ + { + "declaration": { + "identifier": "inPort" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -106, + "y": -3 + }, + { + "x": -100, + "y": 3 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Interfaces.Step_out", + "component_list": [ + { + "declaration": { + "identifier": "outPort" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 100, + "y": -2 + }, + { + "x": 104, + "y": 2 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition_in_forParallel", + "component_list": [ + { + "declaration": { + "identifier": "join", + "array_subscripts": [ + { + "expression": { + "simple_expression": "nBranches" + } + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 75, + "y": 100 + }, + { + "x": 80, + "y": -100 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Transition_out_forParallel", + "component_list": [ + { + "declaration": { + "identifier": "split", + "array_subscripts": [ + { + "expression": { + "simple_expression": "nBranches" + } + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -75, + "y": 100 + }, + { + "x": -80, + "y": -100 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "protected_element_list": [ + { + "class_definition": { + "class_prefixes": "connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "Transition_in_forParallel", + "description_string": "Input port of a transition (has special icon for usage in component 'Parallel')", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "available" + }, + "description": { + "description_string": "true, if step connected to the transition input is active", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "reset" + }, + "description": { + "description_string": "true, if transition fires and the step connected to the transition input is deactivated", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -100, + "y": 100 + }, + { + "x": -100, + "y": -100 + } + ], + "thickness": 0.5 + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "thickness": 0.5 + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -100, + "y": 100 + }, + { + "x": -100, + "y": -100 + } + ], + "thickness": 0.5 + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "thickness": 0.5 + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "connector", + "class_specifier": { + "long_class_specifier": { + "identifier": "Transition_out_forParallel", + "description_string": "Output port of a transition (has special icon for usage in component 'Parallel')", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "occupied" + }, + "description": { + "description_string": "true, if step connected to the transition output is active", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "set" + }, + "description": { + "description_string": "true, if transition fires and step connected to the transition output becomes active", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -100, + "y": 100 + }, + { + "x": -100, + "y": -100 + } + ], + "thickness": 0.5 + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "thickness": 0.5 + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -100, + "y": 100 + }, + { + "x": -100, + "y": -100 + } + ], + "thickness": 0.5 + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "thickness": 0.5 + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "equation_section": { + "equation": [ + { + "function_call_equation": { + "function_name": "assert", + "function_call_args": { + "function_argument": { + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(inPort)" + }, + { + "name": "1" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + } + }, + "function_arguments": { + "function_argument": { + "expression": { + "simple_expression": "\"Connector inPort is not connected to exactly one other connector\"" + } + } + } + } + } + }, + { + "function_call_equation": { + "function_name": "assert", + "function_call_args": { + "function_argument": { + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(outPort)" + }, + { + "name": "1" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + } + }, + "function_arguments": { + "function_argument": { + "expression": { + "simple_expression": "\"Connector outPort is not connected to exactly one other connector\"" + } + } + } + } + } + }, + { + "for_equation": { + "for_indices": [ + { + "identifier": "i", + "expression": { + "simple_expression": "1:nBranches" + } + } + ], + "loop_equations": [ + { + "function_call_equation": { + "function_name": "assert", + "function_call_args": { + "function_argument": { + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(split[i])" + }, + { + "name": "1" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + } + }, + "function_arguments": { + "function_argument": { + "expression": { + "simple_expression": "\"Connector is not connected to exactly one other connector\"" + } + } + } + } + } + }, + { + "function_call_equation": { + "function_name": "assert", + "function_call_args": { + "function_argument": { + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(join[i])" + }, + { + "name": "1" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + } + }, + "function_arguments": { + "function_argument": { + "expression": { + "simple_expression": "\"Connector is not connected to exactly one other connector\"" + } + } + } + } + } + } + ] + } + }, + { + "assignment_equation": { + "lhs": "split.set", + "rhs": { + "simple_expression": { + "function_call": { + "name": "fill", + "arguments": [ + { + "name": "inPort.set" + }, + { + "name": "nBranches" + } + ] + } + } + } + } + }, + { + "assignment_equation": { + "lhs": "join.reset", + "rhs": { + "simple_expression": { + "function_call": { + "name": "fill", + "arguments": [ + { + "name": "outPort.reset" + }, + { + "name": "nBranches" + } + ] + } + } + } + } + }, + { + "assignment_equation": { + "lhs": "inPort.occupied", + "rhs": { + "simple_expression": { + "function_call": { + "name": "StateGraph.Temporary.anyTrue", + "arguments": [ + { + "name": "split.occupied" + } + ] + } + } + } + } + }, + { + "assignment_equation": { + "lhs": "outPort.available", + "rhs": { + "simple_expression": { + "function_call": { + "name": "StateGraph.Temporary.allTrue", + "arguments": [ + { + "name": "join.available" + } + ] + } + } + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -100, + "y": 0 + }, + { + "x": -80, + "y": 0 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 80, + "y": 0 + }, + { + "x": 100, + "y": 0 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -80, + "y": 100 + }, + { + "x": 80, + "y": 100 + } + ], + "pattern": "LinePattern.Dot" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -80, + "y": -100 + }, + { + "x": 80, + "y": -100 + } + ], + "pattern": "LinePattern.Dot" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -100, + "y": 0 + }, + { + "x": -80, + "y": 0 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 80, + "y": 0 + }, + { + "x": 100, + "y": 0 + } + ] + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "partial model", + "class_specifier": { + "long_class_specifier": { + "identifier": "PartialCompositeStep", + "description_string": "Superclass of a subgraph, i.e., a composite step that has internally a StateGraph", + "composition": { + "element_list": [ + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Integer", + "component_list": [ + { + "declaration": { + "identifier": "nSuspend", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + }, + "description": { + "description_string": "Number of suspend ports", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Dialog", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "group", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Exception connections\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Integer", + "component_list": [ + { + "declaration": { + "identifier": "nResume", + "modification": { + "equal": true, + "expression": { + "simple_expression": "1" + } + } + }, + "description": { + "description_string": "Number of resume ports", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Dialog", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "group", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Exception connections\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + ] + } + }, + { + "inner": true, + "outer": true, + "component_clause": { + "type_specifier": "StateGraph.Interfaces.CompositeStepState", + "component_list": [ + { + "declaration": { + "identifier": "stateGraphRoot", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "suspend", + "modification": { + "equal": true, + "expression": { + "simple_expression": "StateGraph.Temporary.anyTrue(suspend.reset) or outerState.subgraphStatePort.suspend" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "resume", + "modification": { + "equal": true, + "expression": { + "simple_expression": "StateGraph.Temporary.anyTrue(resume.set) or outerState.subgraphStatePort.resume" + } + } + } + } + } + ] + } + }, + "description": { + "description_string": "Communication port between the CompositeStep and the steps within the CompositeStep" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "active" + }, + "description": { + "description_string": "= true if step is active, otherwise the step is not active" + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "StateGraph.Interfaces.Step_in", + "component_list": [ + { + "declaration": { + "identifier": "inPort" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -170, + "y": 10 + }, + { + "x": -150, + "y": -10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "StateGraph.Interfaces.Step_out", + "component_list": [ + { + "declaration": { + "identifier": "outPort" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 150, + "y": 5 + }, + { + "x": 160, + "y": -5 + } + ] + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "StateGraph.Interfaces.CompositeStep_suspend", + "component_list": [ + { + "declaration": { + "identifier": "suspend", + "array_subscripts": [ + { + "expression": { + "simple_expression": "nSuspend" + } + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": -75, + "y": -155 + }, + "extent": [ + { + "x": -5, + "y": 5 + }, + { + "x": 5, + "y": -5 + } + ], + "rotation": 270 + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "StateGraph.Interfaces.CompositeStep_resume", + "component_list": [ + { + "declaration": { + "identifier": "resume", + "array_subscripts": [ + { + "expression": { + "simple_expression": "nResume" + } + } + ] + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "origin": { + "x": 75, + "y": -160 + }, + "extent": [ + { + "x": -10, + "y": -10 + }, + { + "x": 10, + "y": 10 + } + ], + "rotation": 90 + } + } + } + } + } + ] + } + } + ] + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "OuterState", + "description_string": "Block containing the port that is connected to the outer stateGraphRoot", + "composition": { + "element_list": [ + { + "component_clause": { + "type_specifier": "Interfaces.CompositeStepStatePort_in", + "component_list": [ + { + "declaration": { + "identifier": "subgraphStatePort" + }, + "description": { + "description_string": "Port connected to outer stateGraphRoot" + } + } + ] + } + } + ] + } + } + } + } + }, + { + "component_clause": { + "type_specifier": "OuterState", + "component_list": [ + { + "declaration": { + "identifier": "outerState" + } + } + ] + } + } + ], + "element_sections": [ + { + "protected_element_list": [ + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "InnerState", + "composition": { + "element_list": [ + { + "outer": true, + "component_clause": { + "type_specifier": "Interfaces.CompositeStepState", + "component_list": [ + { + "declaration": { + "identifier": "stateGraphRoot" + } + } + ] + } + } + ] + } + } + } + } + }, + { + "component_clause": { + "type_specifier": "InnerState", + "component_list": [ + { + "declaration": { + "identifier": "innerState" + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "newActive" + }, + "description": { + "description_string": "Value of active in the next iteration", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "HideResult", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Integer", + "component_list": [ + { + "declaration": { + "identifier": "activeSteps" + }, + "description": { + "description_string": "Number of active steps within the CompositeStep" + } + } + ] + } + } + ] + }, + { + "equation_section": { + "initial": true, + "equation": [ + { + "assignment_equation": { + "lhs": { + "function_call": { + "name": "pre", + "arguments": [ + { + "name": "newActive" + } + ] + } + }, + "rhs": { + "simple_expression": "false" + } + } + } + ] + } + }, + { + "equation_section": { + "equation": [ + { + "connect_clause": { + "from": [ + { + "dot_op": false, + "identifier": "outerState" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "subgraphStatePort" + } + ], + "to": [ + { + "dot_op": false, + "identifier": "stateGraphRoot" + }, + { + "dot_op": true + }, + { + "dot_op": false, + "identifier": "subgraphStatePort" + } + ] + } + }, + { + "assignment_equation": { + "lhs": "outerState.subgraphStatePort.activeSteps", + "rhs": { + "if_expression": { + "if_elseif": [ + { + "condition": { + "simple_expression": "active" + }, + "then": { + "simple_expression": "1" + } + } + ], + "else_expression": { + "simple_expression": "0" + } + } + } + } + }, + { + "assignment_equation": { + "lhs": "activeSteps", + "rhs": { + "simple_expression": "-integer(innerState.stateGraphRoot.subgraphStatePort.activeSteps)" + } + } + }, + { + "assignment_equation": { + "lhs": "active", + "rhs": { + "simple_expression": { + "function_call": { + "name": "pre", + "arguments": [ + { + "name": "newActive" + } + ] + } + } + } + } + }, + { + "assignment_equation": { + "lhs": "newActive", + "rhs": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "activeSteps" + }, + { + "name": "0" + } + ], + "relation_operator": ">" + } + ] + } + ] + } + } + } + } + }, + { + "for_equation": { + "for_indices": [ + { + "identifier": "i", + "expression": { + "simple_expression": "1:nResume" + } + } + ], + "loop_equations": [ + { + "assignment_equation": { + "lhs": "resume[i].occupied", + "rhs": { + "if_expression": { + "if_elseif": [ + { + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "i" + }, + { + "name": "1" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + }, + "then": { + "simple_expression": "active" + } + } + ], + "else_expression": { + "simple_expression": "resume[i -1].occupied or resume[i -1].set" + } + } + } + } + } + ] + } + }, + { + "for_equation": { + "for_indices": [ + { + "identifier": "i", + "expression": { + "simple_expression": "1:nSuspend" + } + } + ], + "loop_equations": [ + { + "assignment_equation": { + "lhs": "suspend[i].available", + "rhs": { + "if_expression": { + "if_elseif": [ + { + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "i" + }, + { + "name": "1" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + }, + "then": { + "simple_expression": "active" + } + } + ], + "else_expression": { + "simple_expression": "suspend[i -1].available and not suspend[i -1].reset" + } + } + } + } + } + ] + } + }, + { + "for_equation": { + "for_indices": [ + { + "identifier": "i", + "expression": { + "simple_expression": "1:nSuspend" + } + } + ], + "loop_equations": [ + { + "function_call_equation": { + "function_name": "assert", + "function_call_args": { + "function_argument": { + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(suspend[i])" + }, + { + "name": "1" + } + ], + "relation_operator": "<=" + } + ] + } + ] + } + } + } + }, + "function_arguments": { + "function_argument": { + "expression": { + "simple_expression": "\"Connector suspend[\" +String(i) +\"] of the CompositeStep is connected\nto more than one transition\"" + } + } + } + } + } + }, + { + "if_equation": { + "if_elseif": [ + { + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(suspend[i])" + }, + { + "name": "0" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + }, + "then": [ + { + "equation": { + "assignment_equation": { + "lhs": "suspend[i].reset", + "rhs": { + "simple_expression": "false" + } + } + } + } + ] + } + ] + } + } + ] + } + }, + { + "for_equation": { + "for_indices": [ + { + "identifier": "i", + "expression": { + "simple_expression": "1:nResume" + } + } + ], + "loop_equations": [ + { + "function_call_equation": { + "function_name": "assert", + "function_call_args": { + "function_argument": { + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(resume[i])" + }, + { + "name": "1" + } + ], + "relation_operator": "<=" + } + ] + } + ] + } + } + } + }, + "function_arguments": { + "function_argument": { + "expression": { + "simple_expression": "\"Connector resume[\" +String(i) +\"] of the CompositeStep is connected\nto more than one transition\"" + } + } + } + } + } + }, + { + "if_equation": { + "if_elseif": [ + { + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(resume[i])" + }, + { + "name": "0" + } + ], + "relation_operator": "==" + } + ] + } + ] + } + } + }, + "then": [ + { + "equation": { + "assignment_equation": { + "lhs": "resume[i].set", + "rhs": { + "simple_expression": "false" + } + } + } + } + ] + } + ] + } + } + ] + } + }, + { + "if_equation": { + "if_elseif": [ + { + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(inPort)" + }, + { + "name": "2" + } + ], + "relation_operator": "<" + } + ] + } + ] + } + } + }, + "then": [ + { + "equation": { + "assignment_equation": { + "lhs": "inPort.occupied", + "rhs": { + "simple_expression": "false" + } + } + } + }, + { + "equation": { + "assignment_equation": { + "lhs": "inPort.set", + "rhs": { + "simple_expression": "false" + } + } + } + } + ] + } + ] + } + }, + { + "if_equation": { + "if_elseif": [ + { + "condition": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(outPort)" + }, + { + "name": "2" + } + ], + "relation_operator": "<" + } + ] + } + ] + } + } + }, + "then": [ + { + "equation": { + "assignment_equation": { + "lhs": "outPort.available", + "rhs": { + "simple_expression": "false" + } + } + } + }, + { + "equation": { + "assignment_equation": { + "lhs": "outPort.reset", + "rhs": { + "simple_expression": "false" + } + } + } + } + ] + } + ] + } + }, + { + "function_call_equation": { + "function_name": "assert", + "function_call_args": { + "function_argument": { + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(inPort)" + }, + { + "name": "2" + } + ], + "relation_operator": "<=" + } + ] + } + ] + } + } + } + }, + "function_arguments": { + "function_argument": { + "expression": { + "simple_expression": "\"Connector inPort of the CompositeStep has more than 2 connections.\nIt should have only one connection from the outside to the\ninPort and one connection to a step inside the CompositeStep.\"" + } + } + } + } + } + }, + { + "function_call_equation": { + "function_name": "assert", + "function_call_args": { + "function_argument": { + "expression": { + "simple_expression": { + "logical_expression": { + "logical_or": [ + { + "logical_and": [ + { + "arithmetic_expressions": [ + { + "name": "cardinality(outPort)" + }, + { + "name": "2" + } + ], + "relation_operator": "<=" + } + ] + } + ] + } + } + } + }, + "function_arguments": { + "function_argument": { + "expression": { + "simple_expression": "\"Connector outPort of the CompositeStep has more than 2 connections.\nIt should have only one connection from the outPort to the\noutside to the CompositeStep and one connection from a step\ninside the CompositeStep to the outPort connector.\"" + } + } + } + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -150, + "y": -150 + }, + { + "x": 150, + "y": 150 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -250, + "y": 160 + }, + { + "x": 250, + "y": 200 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -150, + "y": 150 + }, + { + "x": 150, + "y": -150 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": null + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 4, + "y": -115 + }, + { + "x": 145, + "y": -130 + } + ], + "textString": "\"resume\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -144, + "y": -114 + }, + { + "x": -3, + "y": -129 + } + ], + "textString": "\"suspend\"" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -150, + "y": -150 + }, + { + "x": 150, + "y": 150 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -150, + "y": 150 + }, + { + "x": 150, + "y": -150 + } + ] + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "StateGraphRoot", + "description_string": "Root of a StateGraph (has to be present on the highest level of a StateGraph)", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "StateGraph.Interfaces.CompositeStepState" + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Integer", + "component_list": [ + { + "declaration": { + "identifier": "activeSteps" + }, + "description": { + "description_string": "Number of active steps within the stategraph" + } + } + ] + } + } + ], + "element_sections": [ + { + "equation_section": { + "equation": [ + { + "assignment_equation": { + "lhs": "activeSteps", + "rhs": { + "simple_expression": "-integer(subgraphStatePort.activeSteps)" + } + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "defaultComponentName", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"stateGraphRoot\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "defaultComponentPrefixes", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"inner\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -200, + "y": 110 + }, + { + "x": 200, + "y": 150 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ] + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -92, + "y": 78 + }, + { + "x": 96, + "y": 34 + } + ], + "textString": "\"root\"" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -82, + "y": -6 + }, + { + "x": -44, + "y": -40 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 10 + }, + { + "x": 0, + "y": -60 + } + ] + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": 48, + "y": -6 + }, + { + "x": 86, + "y": -40 + } + ] + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -12, + "y": -16 + }, + { + "x": 0, + "y": -22 + }, + { + "x": -12, + "y": -28 + }, + { + "x": -12, + "y": -16 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -44, + "y": -22 + }, + { + "x": -12, + "y": -22 + } + ] + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 36, + "y": -16 + }, + { + "x": 48, + "y": -22 + }, + { + "x": 36, + "y": -28 + }, + { + "x": 36, + "y": -16 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": -22 + }, + { + "x": 36, + "y": -22 + } + ] + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nOn the highest level of a StateGraph, an instance of StateGraphRoot\nhas to be present.\n

\n

\nThe StateGraphRoot object is needed, since all Step objects have\nan \\\"outer\\\" reference to communicate with the \\\"nearest\\\" CompositeStep\n(which inherits from PartialCompositeStep), especially to abort\na CompositeStep via the \\\"suspend\\\" port. Even if no \\\"CompositeStep\\\" is present,\non highest level a corresponding \\\"inner\\\" definition is needed\nand is provided by the StateGraphRoot object.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "package", + "class_specifier": { + "long_class_specifier": { + "identifier": "Temporary", + "description_string": "Components that will be provided by other libraries in the future", + "composition": { + "element_list": [ + { + "class_definition": { + "class_prefixes": "type", + "class_specifier": { + "short_class_specifier": { + "identifier": "SetRealParameter", + "value": { + "name": "Real", + "description": { + "description_string": "Define Real parameter (GUI not yet satisfactory)", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete type due to experimental design\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Dialog" + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "defaultComponentName", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"name\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "defaultComponentPrefixes", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"parameter\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 40 + }, + { + "x": 100, + "y": -40 + } + ], + "borderPattern": "BorderPattern.Raised", + "fillColor": { + "r": 245, + "g": 245, + "b": 245 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -150, + "y": 90 + }, + { + "x": 150, + "y": 50 + } + ], + "textString": ",textString=" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -96, + "y": 15 + }, + { + "x": 96, + "y": -15 + } + ], + "textString": "\"%value\"" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis is an experimental component to define a\nReal parameter\nin the diagram layer. The idea is to drag the icon from the\npackage browser into the diagram layer. Then a window pops\nup in which the properties of this parameter can be defined\n(such as the default value). The name and default value of the\nparameter are displayed in the icon of this component. Whenever\nclicking on it, the dialog to change parameter settings pops-up.\n

\n

\nIn Dymola, the described property is not fully available.\nCurrently, when dragging this component in the diagram layer,\na dialog pops up in which the properties of the parameter\ncan be defined. However, afterwards, the parameter is not\nvisible in the diagram layer. Making it visible requires to\ngo into the text layer and add an annotation with the\ncomponent size, resulting for example in:\n

\n
\n  parameter StateGraph.Temporary.SetRealParameter name = 2\n                       annotation(Placement(transformation(extent={{-10,-10},{10,10}})));\n
\n

\nThis change makes the parameter icon visible in the\ndiagram layer. However, clicking on this icon has no\neffect. Changing parameter properties, such as the default\nvalue, still requires to go in to the text layer.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + }, + { + "extends_clause": { + "name": "Modelica.Icons.Package" + } + }, + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "anyTrue", + "description_string": "Returns true, if at least on element of the Boolean input vector is true", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Function" + } + }, + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "b", + "array_subscripts": [ + { + "colon_op": true + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "result" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "result" + } + ], + "value": { + "simple_expression": "false" + } + } + }, + { + "for_statement": { + "for_indices": [ + { + "identifier": "i", + "expression": { + "simple_expression": "1:size(b,1)" + } + } + ], + "loop_statements": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "result" + } + ], + "value": { + "simple_expression": "result or b[i]" + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete function - use Modelica.Math.BooleanVectors.anyTrue instead\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "function", + "class_specifier": { + "long_class_specifier": { + "identifier": "allTrue", + "description_string": "Returns true, if all elements of the Boolean input vector are true", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.Function" + } + }, + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "b", + "array_subscripts": [ + { + "colon_op": true + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "output", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "result" + } + } + ] + } + } + ], + "element_sections": [ + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "result" + } + ], + "value": { + "simple_expression": "true" + } + } + }, + { + "for_statement": { + "for_indices": [ + { + "identifier": "i", + "expression": { + "simple_expression": "1:size(b,1)" + } + } + ], + "loop_statements": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "result" + } + ], + "value": { + "simple_expression": "result and b[i]" + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete function - use Modelica.Math.BooleanVectors.allTrue instead\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "block", + "class_specifier": { + "long_class_specifier": { + "identifier": "RadioButton", + "description_string": "Button that sets its output to true when pressed and is reset when an element of 'reset' becomes true", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Modelica.SIunits.Time", + "component_list": [ + { + "declaration": { + "identifier": "buttonTimeTable", + "array_subscripts": [ + { + "colon_op": true + } + ], + "modification": { + "equal": true, + "expression": { + "simple_expression": "{0}" + } + } + }, + "description": { + "description_string": "Time instants where button is pressed and released" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "input", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "reset", + "array_subscripts": [ + { + "colon_op": true + } + ], + "modification": { + "equal": true, + "expression": { + "simple_expression": "{false}" + } + } + }, + "description": { + "description_string": "Reset button to false, if an element of reset becomes true", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Dialog", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "group", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Time varying expressions\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.BooleanOutput", + "component_list": [ + { + "declaration": { + "identifier": "on" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 100, + "y": -10 + }, + { + "x": 120, + "y": 10 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "element_sections": [ + { + "protected_element_list": [ + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Sources.BooleanTable", + "component_list": [ + { + "declaration": { + "identifier": "table", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "table", + "modification": { + "equal": true, + "expression": { + "simple_expression": "buttonTimeTable" + } + } + } + } + } + ] + } + } + } + ] + } + } + ] + }, + { + "equation_section": { + "initial": true, + "equation": [ + { + "assignment_equation": { + "lhs": { + "function_call": { + "name": "pre", + "arguments": [ + { + "name": "reset" + } + ] + } + }, + "rhs": { + "simple_expression": { + "function_call": { + "name": "fill", + "arguments": [ + { + "name": "false" + }, + { + "name": "size(reset,1)" + } + ] + } + } + } + } + } + ] + } + }, + { + "algorithm_section": { + "statement": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "on" + } + ], + "value": { + "simple_expression": "table.y" + } + } + }, + { + "when_statement": [ + { + "condition": { + "simple_expression": { + "function_call": { + "name": "pre", + "arguments": [ + { + "name": "reset" + } + ] + } + } + }, + "then": [ + { + "assignment_statement": { + "identifier": [ + { + "dot_op": false, + "identifier": "on" + } + ], + "value": { + "simple_expression": "false" + } + } + } + ] + } + ] + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete model due to experimental design, that will be moved to Modelica.Blocks.Interaction in future\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "fillColor": { + "r": 192, + "g": 192, + "b": null + }, + "fillPattern": "FillPattern.Solid", + "lineThickness": 0.5 + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -80, + "y": -40 + }, + { + "x": 80, + "y": 40 + } + ], + "textString": "\"%name\"" + } + } + ] + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "interaction", + "modification": { + "equal": true, + "expression": { + "simple_expression": "{OnMouseDownSetBoolean(on,true)}" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "NumericValue", + "description_string": "Show value of Real input signal dynamically", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Integer", + "component_list": [ + { + "declaration": { + "identifier": "precision", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "min", + "modification": { + "equal": true, + "expression": { + "simple_expression": "0" + } + } + } + } + } + ], + "equal": true, + "expression": { + "simple_expression": "3" + } + } + }, + "description": { + "description_string": "Number of significant digits to be shown" + } + } + ] + } + }, + { + "component_clause": { + "type_prefix": "parameter", + "type_specifier": "Boolean", + "component_list": [ + { + "declaration": { + "identifier": "hideConnector", + "modification": { + "equal": true, + "expression": { + "simple_expression": "false" + } + } + }, + "description": { + "description_string": "= true, if connector is not shown in the dynamic object diagram" + } + } + ] + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.RealInput", + "component_list": [ + { + "declaration": { + "identifier": "Value" + }, + "description": { + "description_string": "Real value to be shown in icon", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Dialog", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enable", + "modification": { + "equal": true, + "expression": { + "simple_expression": "hideConnector" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -140, + "y": -20 + }, + { + "x": -100, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete model - use Modelica.Blocks.Interaction.Show.RealValue instead\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": 100, + "y": 50 + }, + { + "x": -100, + "y": -50 + } + ], + "borderPattern": "BorderPattern.Raised", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + }, + "fillColor": { + "r": 236, + "g": 233, + "b": 216 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -46 + }, + { + "x": 90, + "y": 34 + } + ], + "textString": "DynamicSelect(\" \",String(Value", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "class_definition": { + "class_prefixes": "model", + "class_specifier": { + "long_class_specifier": { + "identifier": "IndicatorLamp", + "description_string": "Dynamically show Boolean input signal (false/true = white/green color)", + "composition": { + "element_list": [ + { + "extends_clause": { + "name": "Modelica.Icons.ObsoleteModel" + } + }, + { + "component_clause": { + "type_specifier": "Modelica.Blocks.Interfaces.BooleanInput", + "component_list": [ + { + "declaration": { + "identifier": "u" + }, + "description": { + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -140, + "y": -20 + }, + { + "x": -100, + "y": 20 + } + ] + } + } + } + } + } + ] + } + } + ] + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete model - use Modelica.Blocks.Interaction.Show.BooleanValue instead\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "fillColor": { + "r": 235, + "g": 235, + "b": null + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Sphere" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -150, + "y": 150 + }, + { + "x": 150, + "y": 110 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete package due to experimental design\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis library is just temporarily present. The components of\nthis library will be present in the future in the Modelica\nstandard library (with the new block connectors) and in the\nInteraction library .\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + } + ], + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nNote, there is a much improved version of this library called\n\\\"Modelica_StateGraph2\\\". If this library is not yet distributed with your\nModelica tool, you can download it from\nhttps://github.com/modelica/Modelica_StateGraph2.\nIn the\nUsers Guide\na detailed comparison is given. It is highly recommended to use Modelica_StateGraph2 instead\nof Modelica.StateGraph.\n

\n\n

\nLibrary StateGraph is a free Modelica package providing\ncomponents to model discrete event and reactive\nsystems in a convenient\nway. It is based on the JGrafchart method and\ntakes advantage of Modelica features for\nthe \\\"action\\\" language. JGrafchart is a further development of\nGrafcet to include elements of StateCharts that are not present\nin Grafcet/Sequential Function Charts. Therefore, the StateGraph\nlibrary has a similar modeling power as StateCharts but avoids\nsome deficiencies of StateCharts.\n

\n

\nFor an introduction, have especially a look at:\n

\n\n

\nA typical model generated with this library is shown\nin the next figure where on the left hand side a two-tank\nsystem with a tank controller and on the right hand side the\ntop-level part of the tank controller as a StateGraph is shown:\n

\n\n

\n\n\n\n

\n\n

\nThe unique feature of the StateGraph library with respect to JGrafcharts,\nGrafcet, Sequential Function Charts, and StateCharts, is Modelica's\n\\\"single assignment rule\\\" that requires that every variable is defined\nby exactly one equation. This leads to a different \\\"action\\\" definition\nas in these formalisms. The advantage is that the translator can either\ndetermine a useful evaluation sequence by equation sorting or\nreports an error if this is not possible, e.g., because a model\nwould lead to a non-determinism or to a dead-lock. As a side effect,\nthis leads also to simpler and more easier to understand models and\nglobal variables are no longer needed (whereas in JGrafcharts,\nGrafcet, Sequential Function Charts and StateCharts global variables\nare nearly always needed).\n

\n\n

\nCopyright © 1998-2019, Modelica Association and contributors\n

\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -20, + "y": -20 + }, + { + "x": 20, + "y": 20 + } + ], + "origin": { + "x": -70, + "y": 0 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -20, + "y": -20 + }, + { + "x": 20, + "y": 20 + } + ], + "origin": { + "x": 70, + "y": 0 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 50 + }, + { + "x": 0, + "y": -50 + } + ] + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -3.3333, + "y": 10 + }, + { + "x": 16.667, + "y": 0 + }, + { + "x": -3.3333, + "y": -10 + } + ], + "origin": { + "x": -16.6667, + "y": 0 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 15, + "y": 0 + }, + { + "x": -15, + "y": 0 + } + ] + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -3.3333, + "y": 10 + }, + { + "x": 16.667, + "y": 0 + }, + { + "x": -3.3333, + "y": -10 + } + ], + "origin": { + "x": 33.3333, + "y": 0 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 15, + "y": 0 + }, + { + "x": -15, + "y": 0 + } + ] + } + } + ] + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ], + "modelicaFile": "Modelica/StateGraph.mo", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/StateGraph.mo", + "checksum": "575f29809697b2aba92edcfe09693c2f" +} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/Block1.json b/test/reference/json/test/FromModelica/Block1.json index 58df2da6..639404df 100644 --- a/test/reference/json/test/FromModelica/Block1.json +++ b/test/reference/json/test/FromModelica/Block1.json @@ -12,6 +12,6 @@ } ], "modelicaFile": "test/FromModelica/Block1.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Block1.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Block1.mo", "checksum": "0ac032b3cd1dc28b1ce78d31c2b74fc8" } \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/BlockInputOutput.json b/test/reference/json/test/FromModelica/BlockInputOutput.json index d6c117f9..ec401cbb 100644 --- a/test/reference/json/test/FromModelica/BlockInputOutput.json +++ b/test/reference/json/test/FromModelica/BlockInputOutput.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"BlockInputOutput","description_string":"A block with an input and an output signal","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Output connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/BlockInputOutput.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/BlockInputOutput.mo","checksum":"6b3a426c9d74156de11eca45268af019"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"BlockInputOutput","description_string":"A block with an input and an output signal","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Output connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/BlockInputOutput.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/BlockInputOutput.mo","checksum":"6b3a426c9d74156de11eca45268af019"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/BlockWithBlock1.json b/test/reference/json/test/FromModelica/BlockWithBlock1.json index 331e299f..5ac58076 100644 --- a/test/reference/json/test/FromModelica/BlockWithBlock1.json +++ b/test/reference/json/test/FromModelica/BlockWithBlock1.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"BlockWithBlock1","description_string":"A block that instantiates another public and protected block","composition":{"element_list":[{"component_clause":{"type_specifier":"Block1","component_list":[{"declaration":{"identifier":"bloPub"},"description":{"description_string":"A public block"}}]}}],"element_sections":[{"protected_element_list":[{"component_clause":{"type_specifier":"Block1","component_list":[{"declaration":{"identifier":"bloPro"},"description":{"description_string":"A protected block"}}]}}]}]}}}}],"modelicaFile":"test/FromModelica/BlockWithBlock1.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/BlockWithBlock1.mo","checksum":"ff65a62871564710f765eb9ca9dd4b06"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"BlockWithBlock1","description_string":"A block that instantiates another public and protected block","composition":{"element_list":[{"component_clause":{"type_specifier":"Block1","component_list":[{"declaration":{"identifier":"bloPub"},"description":{"description_string":"A public block"}}]}}],"element_sections":[{"protected_element_list":[{"component_clause":{"type_specifier":"Block1","component_list":[{"declaration":{"identifier":"bloPro"},"description":{"description_string":"A protected block"}}]}}]}]}}}}],"modelicaFile":"test/FromModelica/BlockWithBlock1.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/BlockWithBlock1.mo","checksum":"ff65a62871564710f765eb9ca9dd4b06"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/ConditionalBlock.json b/test/reference/json/test/FromModelica/ConditionalBlock.json index 5a9e6c1f..5baead92 100644 --- a/test/reference/json/test/FromModelica/ConditionalBlock.json +++ b/test/reference/json/test/FromModelica/ConditionalBlock.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ConditionalBlock","description_string":"A block with a flag for disabling instances","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"enaBlo","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Flag for enabling instance"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Output connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Abs","component_list":[{"declaration":{"identifier":"abs"},"condition_attribute":{"expression":{"simple_expression":"not enaBlo"}},"description":{"description_string":"Instance could be conditional disabled","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/ConditionalBlock.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ConditionalBlock.mo","checksum":"ee394cf3dfa2083239e2f8d009c2cd51"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ConditionalBlock","description_string":"A block with a flag for disabling instances","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"enaBlo","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Flag for enabling instance"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Output connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Abs","component_list":[{"declaration":{"identifier":"abs"},"condition_attribute":{"expression":{"simple_expression":"not enaBlo"}},"description":{"description_string":"Instance could be conditional disabled","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/ConditionalBlock.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ConditionalBlock.mo","checksum":"ee394cf3dfa2083239e2f8d009c2cd51"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/CustomPWithLimiter.json b/test/reference/json/test/FromModelica/CustomPWithLimiter.json index 0770f291..748bf05a 100644 --- a/test/reference/json/test/FromModelica/CustomPWithLimiter.json +++ b/test/reference/json/test/FromModelica/CustomPWithLimiter.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"CustomPWithLimiter","description_string":"Custom implementation of a P controller with variable output limiter","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"k","modification":{"equal":true,"expression":{"simple_expression":"2"}}},"description":{"description_string":"Constant gain"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"yMax"},"description":{"description_string":"Maximum value of output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"e"},"description":{"description_string":"Control error","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Control signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","component_list":[{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Min","component_list":[{"declaration":{"identifier":"minValue"},"description":{"description_string":"Outputs the minimum of its inputs","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":-10},{"x":40,"y":10}]}}}}}]}}]}}],"element_sections":[{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"yMax"}],"to":[{"dot_op":false,"identifier":"minValue"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":40},{"x":-120,"y":40},{"x":-20,"y":40},{"x":-20,"y":6},{"x":18,"y":6}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"e"}],"to":[{"dot_op":false,"identifier":"gain"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-40},{"x":-92,"y":-40},{"x":-62,"y":-40}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"gain"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"minValue"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-39,"y":-40},{"x":-20,"y":-40},{"x":-20,"y":-6},{"x":18,"y":-6}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"minValue"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":41,"y":0},{"x":110,"y":0}],"color":{"r":0,"g":0,"b":127}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nBlock that outputs y = min(yMax, k*e),\nwhere\nyMax and e are real-valued input signals and\nk is a parameter.\n

\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/CustomPWithLimiter.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/CustomPWithLimiter.mo","checksum":"98dd51d06629ef56bcb826106c56a9a8"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"CustomPWithLimiter","description_string":"Custom implementation of a P controller with variable output limiter","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"k","modification":{"equal":true,"expression":{"simple_expression":"2"}}},"description":{"description_string":"Constant gain"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"yMax"},"description":{"description_string":"Maximum value of output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"e"},"description":{"description_string":"Control error","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Control signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","component_list":[{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Min","component_list":[{"declaration":{"identifier":"minValue"},"description":{"description_string":"Outputs the minimum of its inputs","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":-10},{"x":40,"y":10}]}}}}}]}}]}}],"element_sections":[{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"yMax"}],"to":[{"dot_op":false,"identifier":"minValue"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":40},{"x":-120,"y":40},{"x":-20,"y":40},{"x":-20,"y":6},{"x":18,"y":6}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"e"}],"to":[{"dot_op":false,"identifier":"gain"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-40},{"x":-92,"y":-40},{"x":-62,"y":-40}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"gain"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"minValue"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-39,"y":-40},{"x":-20,"y":-40},{"x":-20,"y":-6},{"x":18,"y":-6}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"minValue"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":41,"y":0},{"x":110,"y":0}],"color":{"r":0,"g":0,"b":127}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nBlock that outputs y = min(yMax, k*e),\nwhere\nyMax and e are real-valued input signals and\nk is a parameter.\n

\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/CustomPWithLimiter.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/CustomPWithLimiter.mo","checksum":"98dd51d06629ef56bcb826106c56a9a8"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/DynamicTextColor.json b/test/reference/json/test/FromModelica/DynamicTextColor.json index d7dd397c..b8daf62f 100644 --- a/test/reference/json/test/FromModelica/DynamicTextColor.json +++ b/test/reference/json/test/FromModelica/DynamicTextColor.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"DynamicTextColor","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.Boolean","component_list":[{"declaration":{"identifier":"u"},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"preserveAspectRatio":"true"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Text","attribute":{"extent":[{"x":-90,"y":80},{"x":-46,"y":54}],"textString":"\"true\"","lineColor":{"r":0,"g":0,"b":null}}},{"name":"Text","attribute":{"extent":[{"x":-150,"y":150},{"x":150,"y":110}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/DynamicTextColor.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/DynamicTextColor.mo","checksum":"2b2ee39f32acc385c42dd85bb20449ef"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"DynamicTextColor","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.Boolean","component_list":[{"declaration":{"identifier":"u"},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"preserveAspectRatio":"true"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Text","attribute":{"extent":[{"x":-90,"y":80},{"x":-46,"y":54}],"textString":"\"true\"","lineColor":{"r":0,"g":0,"b":null}}},{"name":"Text","attribute":{"extent":[{"x":-150,"y":150},{"x":150,"y":110}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/DynamicTextColor.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/DynamicTextColor.mo","checksum":"2b2ee39f32acc385c42dd85bb20449ef"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/EmptyEquation.json b/test/reference/json/test/FromModelica/EmptyEquation.json index 3b303a31..54efb958 100644 --- a/test/reference/json/test/FromModelica/EmptyEquation.json +++ b/test/reference/json/test/FromModelica/EmptyEquation.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"EmptyEquation","description_string":"A block that instantiates nothing","composition":{"element_sections":[{"equation_section":{"equation":[]}}]}}}}],"modelicaFile":"test/FromModelica/EmptyEquation.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/EmptyEquation.mo","checksum":"c59d73edc2ea3867f7a1a3dfa344844c"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"EmptyEquation","description_string":"A block that instantiates nothing","composition":{"element_sections":[{"equation_section":{"equation":[]}}]}}}}],"modelicaFile":"test/FromModelica/EmptyEquation.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/EmptyEquation.mo","checksum":"c59d73edc2ea3867f7a1a3dfa344844c"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/Enable.json b/test/reference/json/test/FromModelica/Enable.json index d90c1917..50682486 100644 --- a/test/reference/json/test/FromModelica/Enable.json +++ b/test/reference/json/test/FromModelica/Enable.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Enable","description_string":"Multi zone VAV AHU economizer enable/disable switch","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"use_enthalpy","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Set to true to evaluate outdoor air (OA) enthalpy in addition to temperature","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Conditional\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"delTOutHis","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"TemperatureDifference\""}}}}}],"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Delta between the temperature hysteresis high and low limit","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Hysteresis\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"delEntHis","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}],"equal":true,"expression":{"simple_expression":"1000"}}},"description":{"description_string":"Delta between the enthalpy hysteresis high and low limits","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Hysteresis\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"use_enthalpy"}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"retDamFulOpeTim","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"s\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"Time\""}}}}}],"equal":true,"expression":{"simple_expression":"180"}}},"description":{"description_string":"Time period to keep RA damper fully open before releasing it for minimum outdoor airflow control\n at disable to avoid pressure fluctuations","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Delays at disable\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"disDel","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"s\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"Time\""}}}}}],"equal":true,"expression":{"simple_expression":"15"}}},"description":{"description_string":"Short time delay before closing the OA damper at disable to avoid pressure fluctuations","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Delays at disable\""}}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"degC\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"description":{"description_string":"Outdoor air temperature","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":232},{"x":-260,"y":272}]},"iconTransformation":{"extent":[{"x":-140,"y":110},{"x":-100,"y":150}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"hOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"Outdoor air enthalpy","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":152},{"x":-260,"y":192}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TOutCut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"degC\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"description":{"description_string":"OA temperature high limit cutoff. For differential dry bulb temperature condition use return air temperature measurement","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":192},{"x":-260,"y":232}]},"iconTransformation":{"extent":[{"x":-140,"y":90},{"x":-100,"y":130}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"hOutCut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"OA enthalpy high limit cutoff. For differential enthalpy use return air enthalpy measurement","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":112},{"x":-260,"y":152}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"uOutDam_min","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Minimum outdoor air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-98},{"x":-260,"y":-58}]},"iconTransformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"uOutDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum outdoor air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-58},{"x":-260,"y":-18}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"uRetDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum return air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-178},{"x":-260,"y":-138}]},"iconTransformation":{"extent":[{"x":-140,"y":-130},{"x":-100,"y":-90}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"uRetDam_min","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Minimum return air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-218},{"x":-260,"y":-178}]},"iconTransformation":{"extent":[{"x":-140,"y":-150},{"x":-100,"y":-110}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"uRetDamPhy_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Physical maximum return air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-138},{"x":-260,"y":-98}]},"iconTransformation":{"extent":[{"x":-140,"y":-110},{"x":-100,"y":-70}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanInput","component_list":[{"declaration":{"identifier":"u1SupFan"},"description":{"description_string":"Supply fan proven on","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":62},{"x":-260,"y":102}]},"iconTransformation":{"extent":[{"x":-140,"y":10},{"x":-100,"y":50}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.IntegerInput","component_list":[{"declaration":{"identifier":"uFreProSta"},"description":{"description_string":"Freeze protection stage status signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":22},{"x":-260,"y":62}]},"iconTransformation":{"extent":[{"x":-140,"y":-10},{"x":-100,"y":30}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"yOutDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum outdoor air damper position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":22},{"x":280,"y":62}]},"iconTransformation":{"extent":[{"x":100,"y":80},{"x":140,"y":120}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"yRetDam_min","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Minimum return air damper position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":-98},{"x":280,"y":-58}]},"iconTransformation":{"extent":[{"x":100,"y":-120},{"x":140,"y":-80}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"yRetDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum return air damper position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":-38},{"x":280,"y":2}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueFalseHold","component_list":[{"declaration":{"identifier":"truFalHol","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"trueHoldDuration","modification":{"equal":true,"expression":{"simple_expression":"600"}}}}}]}},"description":{"description_string":"Economizer should not be enabled or disabled within 10 minutes of change","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":182},{"x":40,"y":202}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","component_list":[{"declaration":{"identifier":"andEnaDis"},"description":{"description_string":"Check freeze protection stage and zone state","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":12},{"x":80,"y":32}]}}}}}]}}]}}],"element_sections":[{"protected_element_list":[{"final":true,"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"TOutHigLimCutHig","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"TemperatureDifference\""}}}}}],"equal":true,"expression":{"simple_expression":"0"}}},"description":{"description_string":"Hysteresis high limit cutoff"}}]}},{"final":true,"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"TOutHigLimCutLow","modification":{"equal":true,"expression":{"simple_expression":"TOutHigLimCutHig -delTOutHis"}}},"description":{"description_string":"Hysteresis low limit cutoff"}}]}},{"final":true,"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"hOutHigLimCutHig","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}],"equal":true,"expression":{"simple_expression":"0"}}},"description":{"description_string":"Hysteresis block high limit cutoff"}}]}},{"final":true,"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"hOutHigLimCutLow","modification":{"equal":true,"expression":{"simple_expression":"hOutHigLimCutHig -delEntHis"}}},"description":{"description_string":"Hysteresis block low limit cutoff"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Subtract","component_list":[{"declaration":{"identifier":"sub2"},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"Add block determines difference between hOut and hOutCut","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-200,"y":140},{"x":-180,"y":160}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Subtract","component_list":[{"declaration":{"identifier":"sub1"},"description":{"description_string":"Add block determines difference between TOut and TOutCut","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-200,"y":220},{"x":-180,"y":240}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Hysteresis","component_list":[{"declaration":{"identifier":"hysOutTem","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uLow","modification":{"equal":true,"expression":{"simple_expression":"TOutHigLimCutLow"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uHigh","modification":{"equal":true,"expression":{"simple_expression":"TOutHigLimCutHig"}}}}}]}},"description":{"description_string":"Outdoor air temperature hysteresis for both fixed and differential dry bulb temperature cutoff conditions","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":220},{"x":-140,"y":240}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Hysteresis","component_list":[{"declaration":{"identifier":"hysOutEnt","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uLow","modification":{"equal":true,"expression":{"simple_expression":"hOutHigLimCutLow"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uHigh","modification":{"equal":true,"expression":{"simple_expression":"hOutHigLimCutHig"}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"Outdoor air enthalpy hysteresis for both fixed and differential enthalpy cutoff conditions","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":140},{"x":-140,"y":160}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","component_list":[{"declaration":{"identifier":"outDamSwitch"},"description":{"description_string":"Set maximum OA damper position to minimum at disable (after a given time delay)","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":82,"y":-78},{"x":102,"y":-58}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","component_list":[{"declaration":{"identifier":"retDamSwitch"},"description":{"description_string":"Set minimum RA damper position to maximum at disable","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-176},{"x":0,"y":-156}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","component_list":[{"declaration":{"identifier":"maxRetDamSwitch"},"description":{"description_string":"Keep maximum RA damper position at physical maximum for a short time period after disable signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":-136},{"x":80,"y":-116}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","component_list":[{"declaration":{"identifier":"minRetDamSwitch"},"description":{"description_string":"Keep minimum RA damper position at physical maximum for a short time period after disable","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":-178},{"x":80,"y":-158}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Not","component_list":[{"declaration":{"identifier":"not2"},"description":{"description_string":"Logical not that starts the timer at disable signal ","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-58},{"x":-40,"y":-38}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","component_list":[{"declaration":{"identifier":"and2"},"description":{"description_string":"Logical and","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":160,"y":-100},{"x":180,"y":-80}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","component_list":[{"declaration":{"identifier":"and1"},"description":{"description_string":"Check supply fan status","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":80},{"x":40,"y":100}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","component_list":[{"declaration":{"identifier":"and3"},"description":{"description_string":"Check if delay time has been passed after economizer being disabled","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":40,"y":-54},{"x":60,"y":-34}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Integers.Equal","component_list":[{"declaration":{"identifier":"intEqu"},"description":{"description_string":"Logical block to check if the freeze protection is deactivated","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-78,"y":32},{"x":-58,"y":52}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueDelay","component_list":[{"declaration":{"identifier":"delOutDamOsc","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"delayTime","modification":{"equal":true,"expression":{"simple_expression":"disDel"}}}}}]}},"description":{"description_string":"Small delay before closing the outdoor air damper to avoid pressure fluctuations","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-58},{"x":0,"y":-38}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueDelay","component_list":[{"declaration":{"identifier":"delRetDam","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"delayTime","modification":{"equal":true,"expression":{"simple_expression":"retDamFulOpeTim"}}}}}]}},"description":{"description_string":"Keep return damper open to its physical maximum for a short period of time before closing the outdoor air damper and resuming the maximum return air damper position, per G36 Part N7","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-108},{"x":0,"y":-88}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Not","component_list":[{"declaration":{"identifier":"not1"},"description":{"description_string":"Logical not","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":-108},{"x":40,"y":-88}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Integers.Sources.Constant","component_list":[{"declaration":{"identifier":"conInt","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeProtectionStages.stage0"}}}}}]}},"description":{"description_string":"Integer constant, stage 0","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-118,"y":12},{"x":-98,"y":32}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Sources.Constant","component_list":[{"declaration":{"identifier":"entSubst1","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"not use_enthalpy"}},"description":{"description_string":"Deactivates outdoor air enthalpy condition if there is no enthalpy sensor","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":180},{"x":-140,"y":200}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Or","component_list":[{"declaration":{"identifier":"or2"},"description":{"description_string":"Check if either the temperature or the enthalpy condition is satisfied","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":182},{"x":-40,"y":202}]}}}}}]}}]}}]},{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"TOut"}],"to":[{"dot_op":false,"identifier":"sub1"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":252},{"x":-240,"y":252},{"x":-240,"y":236},{"x":-202,"y":236}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"TOutCut"}],"to":[{"dot_op":false,"identifier":"sub1"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":212},{"x":-240,"y":212},{"x":-240,"y":224},{"x":-202,"y":224}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"sub1"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"hysOutTem"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-178,"y":230},{"x":-162,"y":230}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"hOut"}],"to":[{"dot_op":false,"identifier":"sub2"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":172},{"x":-240,"y":172},{"x":-240,"y":156},{"x":-202,"y":156}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"hOutCut"}],"to":[{"dot_op":false,"identifier":"sub2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":132},{"x":-240,"y":132},{"x":-240,"y":144},{"x":-202,"y":144}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"sub2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"hysOutEnt"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-178,"y":150},{"x":-162,"y":150}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uOutDam_min"}],"to":[{"dot_op":false,"identifier":"outDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-78},{"x":10,"y":-78},{"x":10,"y":-60},{"x":80,"y":-60}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uOutDam_max"}],"to":[{"dot_op":false,"identifier":"outDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u3"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-38},{"x":-220,"y":-38},{"x":-220,"y":-76},{"x":80,"y":-76}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uRetDamPhy_max"}],"to":[{"dot_op":false,"identifier":"maxRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-118},{"x":58,"y":-118}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uRetDam_max"}],"to":[{"dot_op":false,"identifier":"maxRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u3"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-158},{"x":-158,"y":-158},{"x":-158,"y":-134},{"x":58,"y":-134}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"andEnaDis"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"not2"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":82,"y":22},{"x":92,"y":22},{"x":92,"y":-8},{"x":-80,"y":-8},{"x":-80,"y":-48},{"x":-62,"y":-48}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"maxRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"yRetDam_max"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":82,"y":-126},{"x":200,"y":-126},{"x":200,"y":-18},{"x":260,"y":-18}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"and2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"maxRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":182,"y":-90},{"x":190,"y":-90},{"x":190,"y":-148},{"x":40,"y":-148},{"x":40,"y":-126},{"x":58,"y":-126}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"and2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"minRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":182,"y":-90},{"x":190,"y":-90},{"x":190,"y":-148},{"x":40,"y":-148},{"x":40,"y":-168},{"x":58,"y":-168}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"not2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"retDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-38,"y":-48},{"x":-30,"y":-48},{"x":-30,"y":-166},{"x":-22,"y":-166}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uRetDam_max"}],"to":[{"dot_op":false,"identifier":"retDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-158},{"x":-22,"y":-158}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uRetDam_min"}],"to":[{"dot_op":false,"identifier":"retDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u3"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-198},{"x":-152,"y":-198},{"x":-152,"y":-174},{"x":-22,"y":-174}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"retDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"minRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u3"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":2,"y":-166},{"x":20,"y":-166},{"x":20,"y":-176},{"x":58,"y":-176}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uRetDamPhy_max"}],"to":[{"dot_op":false,"identifier":"minRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-118},{"x":20,"y":-118},{"x":20,"y":-160},{"x":58,"y":-160}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"truFalHol"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"and1"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":42,"y":192},{"x":50,"y":192},{"x":50,"y":112},{"x":10,"y":112},{"x":10,"y":90},{"x":18,"y":90}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"and1"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"andEnaDis"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":42,"y":90},{"x":50,"y":90},{"x":50,"y":22},{"x":58,"y":22}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u1SupFan"}],"to":[{"dot_op":false,"identifier":"and1"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":82},{"x":18,"y":82}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"outDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"and3"},{"dot_op":true},{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":80,"y":-68},{"x":70,"y":-68},{"x":70,"y":-44},{"x":62,"y":-44}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"not2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"and3"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-38,"y":-48},{"x":-30,"y":-48},{"x":-30,"y":-22},{"x":28,"y":-22},{"x":28,"y":-44},{"x":38,"y":-44}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"and2"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}],"to":[{"dot_op":false,"identifier":"not2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":158,"y":-90},{"x":126,"y":-90},{"x":126,"y":-22},{"x":-30,"y":-22},{"x":-30,"y":-48},{"x":-38,"y":-48}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"and3"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"delOutDamOsc"},{"dot_op":true},{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":38,"y":-52},{"x":20,"y":-52},{"x":20,"y":-48},{"x":2,"y":-48}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"delOutDamOsc"},{"dot_op":true},{"dot_op":false,"identifier":"u"}],"to":[{"dot_op":false,"identifier":"not2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-22,"y":-48},{"x":-38,"y":-48}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"not2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"delRetDam"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-38,"y":-48},{"x":-30,"y":-48},{"x":-30,"y":-98},{"x":-22,"y":-98}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"delRetDam"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"not1"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":2,"y":-98},{"x":18,"y":-98}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"not1"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"and2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":42,"y":-98},{"x":158,"y":-98}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uFreProSta"}],"to":[{"dot_op":false,"identifier":"intEqu"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":42},{"x":-80,"y":42}],"color":{"r":255,"g":127,"b":0}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"conInt"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"intEqu"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-96,"y":22},{"x":-90,"y":22},{"x":-90,"y":34},{"x":-80,"y":34}],"color":{"r":255,"g":127,"b":0}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"intEqu"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"andEnaDis"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-56,"y":42},{"x":40,"y":42},{"x":40,"y":14},{"x":58,"y":14}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"outDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"yOutDam_max"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":104,"y":-68},{"x":190,"y":-68},{"x":190,"y":42},{"x":260,"y":42}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"minRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"yRetDam_min"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":82,"y":-168},{"x":210,"y":-168},{"x":210,"y":-78},{"x":260,"y":-78}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"or2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"truFalHol"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-38,"y":192},{"x":18,"y":192}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"hysOutTem"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"or2"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-138,"y":230},{"x":-80,"y":230},{"x":-80,"y":192},{"x":-62,"y":192}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"hysOutEnt"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"or2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-138,"y":150},{"x":-100,"y":150},{"x":-100,"y":184},{"x":-62,"y":184}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"entSubst1"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"or2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-138,"y":190},{"x":-100,"y":190},{"x":-100,"y":184},{"x":-62,"y":184}],"color":{"r":255,"g":0,"b":255}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"enaDis\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"extent":[{"x":-100,"y":-140},{"x":100,"y":140}]}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-140},{"x":100,"y":140}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":180},{"x":100,"y":140}],"textString":"\"%name\"","textColor":{"r":0,"g":0,"b":255}}},{"name":"Line","attribute":{"points":[{"x":0,"y":60},{"x":80,"y":60}],"color":{"r":0,"g":0,"b":127},"thickness":0.5}},{"name":"Line","attribute":{"points":[{"x":-80,"y":-60},{"x":0,"y":-60},{"x":0,"y":60}],"color":{"r":0,"g":0,"b":127},"thickness":0.5}},{"name":"Text","attribute":{"extent":[{"x":-98,"y":38},{"x":-56,"y":24}],"textString":"\"u1SupFan\"","textColor":{"r":255,"g":0,"b":255},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":18},{"x":-44,"y":4}],"textString":"\"uFreProSta\"","textColor":{"r":255,"g":127,"b":0},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":68},{"x":-56,"y":54}],"textString":"\"hOutCut\"","textColor":{"r":0,"g":0,"b":127},"visible":"use_enthalpy","pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":86},{"x":-70,"y":72}],"textString":"\"hOut\"","textColor":{"r":0,"g":0,"b":127},"visible":"use_enthalpy","pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":116},{"x":-56,"y":102}],"textString":"\"TOutCut\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":138},{"x":-72,"y":124}],"textString":"\"TOut\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-100},{"x":-32,"y":-118}],"textString":"\"uRetDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-10},{"x":-28,"y":-28}],"textString":"\"uOutDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-30},{"x":-28,"y":-48}],"textString":"\"uOutDam_min\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-80},{"x":-12,"y":-98}],"textString":"\"uRetDamPhy_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-120},{"x":-32,"y":-138}],"textString":"\"uRetDam_min\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":36,"y":110},{"x":96,"y":92}],"textString":"\"yOutDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":36,"y":12},{"x":96,"y":-6}],"textString":"\"yRetDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":36,"y":-88},{"x":96,"y":-106}],"textString":"\"yRetDam_min\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"extent":[{"x":-260,"y":-280},{"x":240,"y":280}],"preserveAspectRatio":"false","initialScale":0.05}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":-2},{"x":220,"y":-250}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":58},{"x":220,"y":6}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":118},{"x":220,"y":66}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":258},{"x":220,"y":130}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":158},{"x":204,"y":138}],"textString":"\"Outdoor air\nconditions\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":52},{"x":298,"y":18}],"textString":"\"Freeze protection -\ndisable if stage1\nand above\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":-198},{"x":288,"y":-246}],"textString":"\"Damper position\nlimit assignments\nwith delays\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":84},{"x":214,"y":74}],"textString":"\"Supply fan status\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is a multi zone VAV AHU economizer enable/disable sequence\nbased on the Section 5.16.7 of the ASHRAE Guideline 36, May 2020. Additional\nconditions included in the sequence are: freeze protection (freeze protection\nstage 0-3, see Section 5.16.12), supply fan status (on or off, see Section 5.16.5).\n

\n

\nThe economizer is disabled whenever the outdoor air conditions\nexceed the economizer high limit setpoint.\nThis sequence allows for all device types listed in\nASHRAE 90.1-2013 and Title 24-2013.\n

\n

\nIn addition, the economizer gets disabled without a delay whenever any of the\nfollowing is true:\n

\n\n

\nThe following state machine chart illustrates the transitions between enabling and disabling:\n

\n

\n\\\"Image\n

\n

\nAfter the disable signal is activated, the following procedure is applied, in order to\nprevent pressure fluctuations in the HVAC system:\n

\n\n\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"revisions","modification":{"equal":true,"expression":{"simple_expression":"\"\n\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/Enable.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo","checksum":"91bcd83720b7c80a8ac4c5c5ea9bebac"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Enable","description_string":"Multi zone VAV AHU economizer enable/disable switch","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"use_enthalpy","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Set to true to evaluate outdoor air (OA) enthalpy in addition to temperature","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Conditional\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"delTOutHis","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"TemperatureDifference\""}}}}}],"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Delta between the temperature hysteresis high and low limit","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Hysteresis\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"delEntHis","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}],"equal":true,"expression":{"simple_expression":"1000"}}},"description":{"description_string":"Delta between the enthalpy hysteresis high and low limits","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Hysteresis\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"use_enthalpy"}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"retDamFulOpeTim","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"s\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"Time\""}}}}}],"equal":true,"expression":{"simple_expression":"180"}}},"description":{"description_string":"Time period to keep RA damper fully open before releasing it for minimum outdoor airflow control\n at disable to avoid pressure fluctuations","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Delays at disable\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"disDel","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"s\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"Time\""}}}}}],"equal":true,"expression":{"simple_expression":"15"}}},"description":{"description_string":"Short time delay before closing the OA damper at disable to avoid pressure fluctuations","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Delays at disable\""}}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"degC\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"description":{"description_string":"Outdoor air temperature","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":232},{"x":-260,"y":272}]},"iconTransformation":{"extent":[{"x":-140,"y":110},{"x":-100,"y":150}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"hOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"Outdoor air enthalpy","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":152},{"x":-260,"y":192}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TOutCut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"degC\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"description":{"description_string":"OA temperature high limit cutoff. For differential dry bulb temperature condition use return air temperature measurement","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":192},{"x":-260,"y":232}]},"iconTransformation":{"extent":[{"x":-140,"y":90},{"x":-100,"y":130}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"hOutCut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"OA enthalpy high limit cutoff. For differential enthalpy use return air enthalpy measurement","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":112},{"x":-260,"y":152}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"uOutDam_min","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Minimum outdoor air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-98},{"x":-260,"y":-58}]},"iconTransformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"uOutDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum outdoor air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-58},{"x":-260,"y":-18}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"uRetDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum return air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-178},{"x":-260,"y":-138}]},"iconTransformation":{"extent":[{"x":-140,"y":-130},{"x":-100,"y":-90}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"uRetDam_min","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Minimum return air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-218},{"x":-260,"y":-178}]},"iconTransformation":{"extent":[{"x":-140,"y":-150},{"x":-100,"y":-110}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"uRetDamPhy_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Physical maximum return air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-138},{"x":-260,"y":-98}]},"iconTransformation":{"extent":[{"x":-140,"y":-110},{"x":-100,"y":-70}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanInput","component_list":[{"declaration":{"identifier":"u1SupFan"},"description":{"description_string":"Supply fan proven on","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":62},{"x":-260,"y":102}]},"iconTransformation":{"extent":[{"x":-140,"y":10},{"x":-100,"y":50}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.IntegerInput","component_list":[{"declaration":{"identifier":"uFreProSta"},"description":{"description_string":"Freeze protection stage status signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":22},{"x":-260,"y":62}]},"iconTransformation":{"extent":[{"x":-140,"y":-10},{"x":-100,"y":30}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"yOutDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum outdoor air damper position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":22},{"x":280,"y":62}]},"iconTransformation":{"extent":[{"x":100,"y":80},{"x":140,"y":120}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"yRetDam_min","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Minimum return air damper position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":-98},{"x":280,"y":-58}]},"iconTransformation":{"extent":[{"x":100,"y":-120},{"x":140,"y":-80}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"yRetDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum return air damper position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":-38},{"x":280,"y":2}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueFalseHold","component_list":[{"declaration":{"identifier":"truFalHol","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"trueHoldDuration","modification":{"equal":true,"expression":{"simple_expression":"600"}}}}}]}},"description":{"description_string":"Economizer should not be enabled or disabled within 10 minutes of change","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":182},{"x":40,"y":202}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","component_list":[{"declaration":{"identifier":"andEnaDis"},"description":{"description_string":"Check freeze protection stage and zone state","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":12},{"x":80,"y":32}]}}}}}]}}]}}],"element_sections":[{"protected_element_list":[{"final":true,"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"TOutHigLimCutHig","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"TemperatureDifference\""}}}}}],"equal":true,"expression":{"simple_expression":"0"}}},"description":{"description_string":"Hysteresis high limit cutoff"}}]}},{"final":true,"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"TOutHigLimCutLow","modification":{"equal":true,"expression":{"simple_expression":"TOutHigLimCutHig -delTOutHis"}}},"description":{"description_string":"Hysteresis low limit cutoff"}}]}},{"final":true,"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"hOutHigLimCutHig","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}],"equal":true,"expression":{"simple_expression":"0"}}},"description":{"description_string":"Hysteresis block high limit cutoff"}}]}},{"final":true,"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"hOutHigLimCutLow","modification":{"equal":true,"expression":{"simple_expression":"hOutHigLimCutHig -delEntHis"}}},"description":{"description_string":"Hysteresis block low limit cutoff"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Subtract","component_list":[{"declaration":{"identifier":"sub2"},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"Add block determines difference between hOut and hOutCut","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-200,"y":140},{"x":-180,"y":160}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Subtract","component_list":[{"declaration":{"identifier":"sub1"},"description":{"description_string":"Add block determines difference between TOut and TOutCut","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-200,"y":220},{"x":-180,"y":240}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Hysteresis","component_list":[{"declaration":{"identifier":"hysOutTem","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uLow","modification":{"equal":true,"expression":{"simple_expression":"TOutHigLimCutLow"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uHigh","modification":{"equal":true,"expression":{"simple_expression":"TOutHigLimCutHig"}}}}}]}},"description":{"description_string":"Outdoor air temperature hysteresis for both fixed and differential dry bulb temperature cutoff conditions","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":220},{"x":-140,"y":240}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Hysteresis","component_list":[{"declaration":{"identifier":"hysOutEnt","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uLow","modification":{"equal":true,"expression":{"simple_expression":"hOutHigLimCutLow"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uHigh","modification":{"equal":true,"expression":{"simple_expression":"hOutHigLimCutHig"}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"Outdoor air enthalpy hysteresis for both fixed and differential enthalpy cutoff conditions","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":140},{"x":-140,"y":160}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","component_list":[{"declaration":{"identifier":"outDamSwitch"},"description":{"description_string":"Set maximum OA damper position to minimum at disable (after a given time delay)","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":82,"y":-78},{"x":102,"y":-58}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","component_list":[{"declaration":{"identifier":"retDamSwitch"},"description":{"description_string":"Set minimum RA damper position to maximum at disable","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-176},{"x":0,"y":-156}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","component_list":[{"declaration":{"identifier":"maxRetDamSwitch"},"description":{"description_string":"Keep maximum RA damper position at physical maximum for a short time period after disable signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":-136},{"x":80,"y":-116}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","component_list":[{"declaration":{"identifier":"minRetDamSwitch"},"description":{"description_string":"Keep minimum RA damper position at physical maximum for a short time period after disable","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":-178},{"x":80,"y":-158}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Not","component_list":[{"declaration":{"identifier":"not2"},"description":{"description_string":"Logical not that starts the timer at disable signal ","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-58},{"x":-40,"y":-38}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","component_list":[{"declaration":{"identifier":"and2"},"description":{"description_string":"Logical and","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":160,"y":-100},{"x":180,"y":-80}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","component_list":[{"declaration":{"identifier":"and1"},"description":{"description_string":"Check supply fan status","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":80},{"x":40,"y":100}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","component_list":[{"declaration":{"identifier":"and3"},"description":{"description_string":"Check if delay time has been passed after economizer being disabled","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":40,"y":-54},{"x":60,"y":-34}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Integers.Equal","component_list":[{"declaration":{"identifier":"intEqu"},"description":{"description_string":"Logical block to check if the freeze protection is deactivated","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-78,"y":32},{"x":-58,"y":52}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueDelay","component_list":[{"declaration":{"identifier":"delOutDamOsc","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"delayTime","modification":{"equal":true,"expression":{"simple_expression":"disDel"}}}}}]}},"description":{"description_string":"Small delay before closing the outdoor air damper to avoid pressure fluctuations","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-58},{"x":0,"y":-38}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueDelay","component_list":[{"declaration":{"identifier":"delRetDam","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"delayTime","modification":{"equal":true,"expression":{"simple_expression":"retDamFulOpeTim"}}}}}]}},"description":{"description_string":"Keep return damper open to its physical maximum for a short period of time before closing the outdoor air damper and resuming the maximum return air damper position, per G36 Part N7","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-108},{"x":0,"y":-88}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Not","component_list":[{"declaration":{"identifier":"not1"},"description":{"description_string":"Logical not","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":-108},{"x":40,"y":-88}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Integers.Sources.Constant","component_list":[{"declaration":{"identifier":"conInt","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeProtectionStages.stage0"}}}}}]}},"description":{"description_string":"Integer constant, stage 0","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-118,"y":12},{"x":-98,"y":32}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Sources.Constant","component_list":[{"declaration":{"identifier":"entSubst1","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"not use_enthalpy"}},"description":{"description_string":"Deactivates outdoor air enthalpy condition if there is no enthalpy sensor","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":180},{"x":-140,"y":200}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Or","component_list":[{"declaration":{"identifier":"or2"},"description":{"description_string":"Check if either the temperature or the enthalpy condition is satisfied","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":182},{"x":-40,"y":202}]}}}}}]}}]}}]},{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"TOut"}],"to":[{"dot_op":false,"identifier":"sub1"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":252},{"x":-240,"y":252},{"x":-240,"y":236},{"x":-202,"y":236}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"TOutCut"}],"to":[{"dot_op":false,"identifier":"sub1"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":212},{"x":-240,"y":212},{"x":-240,"y":224},{"x":-202,"y":224}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"sub1"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"hysOutTem"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-178,"y":230},{"x":-162,"y":230}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"hOut"}],"to":[{"dot_op":false,"identifier":"sub2"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":172},{"x":-240,"y":172},{"x":-240,"y":156},{"x":-202,"y":156}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"hOutCut"}],"to":[{"dot_op":false,"identifier":"sub2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":132},{"x":-240,"y":132},{"x":-240,"y":144},{"x":-202,"y":144}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"sub2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"hysOutEnt"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-178,"y":150},{"x":-162,"y":150}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uOutDam_min"}],"to":[{"dot_op":false,"identifier":"outDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-78},{"x":10,"y":-78},{"x":10,"y":-60},{"x":80,"y":-60}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uOutDam_max"}],"to":[{"dot_op":false,"identifier":"outDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u3"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-38},{"x":-220,"y":-38},{"x":-220,"y":-76},{"x":80,"y":-76}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uRetDamPhy_max"}],"to":[{"dot_op":false,"identifier":"maxRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-118},{"x":58,"y":-118}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uRetDam_max"}],"to":[{"dot_op":false,"identifier":"maxRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u3"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-158},{"x":-158,"y":-158},{"x":-158,"y":-134},{"x":58,"y":-134}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"andEnaDis"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"not2"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":82,"y":22},{"x":92,"y":22},{"x":92,"y":-8},{"x":-80,"y":-8},{"x":-80,"y":-48},{"x":-62,"y":-48}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"maxRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"yRetDam_max"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":82,"y":-126},{"x":200,"y":-126},{"x":200,"y":-18},{"x":260,"y":-18}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"and2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"maxRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":182,"y":-90},{"x":190,"y":-90},{"x":190,"y":-148},{"x":40,"y":-148},{"x":40,"y":-126},{"x":58,"y":-126}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"and2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"minRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":182,"y":-90},{"x":190,"y":-90},{"x":190,"y":-148},{"x":40,"y":-148},{"x":40,"y":-168},{"x":58,"y":-168}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"not2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"retDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-38,"y":-48},{"x":-30,"y":-48},{"x":-30,"y":-166},{"x":-22,"y":-166}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uRetDam_max"}],"to":[{"dot_op":false,"identifier":"retDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-158},{"x":-22,"y":-158}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uRetDam_min"}],"to":[{"dot_op":false,"identifier":"retDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u3"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-198},{"x":-152,"y":-198},{"x":-152,"y":-174},{"x":-22,"y":-174}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"retDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"minRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u3"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":2,"y":-166},{"x":20,"y":-166},{"x":20,"y":-176},{"x":58,"y":-176}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uRetDamPhy_max"}],"to":[{"dot_op":false,"identifier":"minRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":-118},{"x":20,"y":-118},{"x":20,"y":-160},{"x":58,"y":-160}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"truFalHol"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"and1"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":42,"y":192},{"x":50,"y":192},{"x":50,"y":112},{"x":10,"y":112},{"x":10,"y":90},{"x":18,"y":90}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"and1"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"andEnaDis"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":42,"y":90},{"x":50,"y":90},{"x":50,"y":22},{"x":58,"y":22}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u1SupFan"}],"to":[{"dot_op":false,"identifier":"and1"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":82},{"x":18,"y":82}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"outDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"and3"},{"dot_op":true},{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":80,"y":-68},{"x":70,"y":-68},{"x":70,"y":-44},{"x":62,"y":-44}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"not2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"and3"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-38,"y":-48},{"x":-30,"y":-48},{"x":-30,"y":-22},{"x":28,"y":-22},{"x":28,"y":-44},{"x":38,"y":-44}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"and2"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}],"to":[{"dot_op":false,"identifier":"not2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":158,"y":-90},{"x":126,"y":-90},{"x":126,"y":-22},{"x":-30,"y":-22},{"x":-30,"y":-48},{"x":-38,"y":-48}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"and3"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"delOutDamOsc"},{"dot_op":true},{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":38,"y":-52},{"x":20,"y":-52},{"x":20,"y":-48},{"x":2,"y":-48}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"delOutDamOsc"},{"dot_op":true},{"dot_op":false,"identifier":"u"}],"to":[{"dot_op":false,"identifier":"not2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-22,"y":-48},{"x":-38,"y":-48}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"not2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"delRetDam"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-38,"y":-48},{"x":-30,"y":-48},{"x":-30,"y":-98},{"x":-22,"y":-98}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"delRetDam"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"not1"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":2,"y":-98},{"x":18,"y":-98}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"not1"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"and2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":42,"y":-98},{"x":158,"y":-98}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"uFreProSta"}],"to":[{"dot_op":false,"identifier":"intEqu"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-280,"y":42},{"x":-80,"y":42}],"color":{"r":255,"g":127,"b":0}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"conInt"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"intEqu"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-96,"y":22},{"x":-90,"y":22},{"x":-90,"y":34},{"x":-80,"y":34}],"color":{"r":255,"g":127,"b":0}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"intEqu"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"andEnaDis"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-56,"y":42},{"x":40,"y":42},{"x":40,"y":14},{"x":58,"y":14}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"outDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"yOutDam_max"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":104,"y":-68},{"x":190,"y":-68},{"x":190,"y":42},{"x":260,"y":42}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"minRetDamSwitch"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"yRetDam_min"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":82,"y":-168},{"x":210,"y":-168},{"x":210,"y":-78},{"x":260,"y":-78}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"or2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"truFalHol"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-38,"y":192},{"x":18,"y":192}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"hysOutTem"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"or2"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-138,"y":230},{"x":-80,"y":230},{"x":-80,"y":192},{"x":-62,"y":192}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"hysOutEnt"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"or2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-138,"y":150},{"x":-100,"y":150},{"x":-100,"y":184},{"x":-62,"y":184}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"entSubst1"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"or2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-138,"y":190},{"x":-100,"y":190},{"x":-100,"y":184},{"x":-62,"y":184}],"color":{"r":255,"g":0,"b":255}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"enaDis\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"extent":[{"x":-100,"y":-140},{"x":100,"y":140}]}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-140},{"x":100,"y":140}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":180},{"x":100,"y":140}],"textString":"\"%name\"","textColor":{"r":0,"g":0,"b":255}}},{"name":"Line","attribute":{"points":[{"x":0,"y":60},{"x":80,"y":60}],"color":{"r":0,"g":0,"b":127},"thickness":0.5}},{"name":"Line","attribute":{"points":[{"x":-80,"y":-60},{"x":0,"y":-60},{"x":0,"y":60}],"color":{"r":0,"g":0,"b":127},"thickness":0.5}},{"name":"Text","attribute":{"extent":[{"x":-98,"y":38},{"x":-56,"y":24}],"textString":"\"u1SupFan\"","textColor":{"r":255,"g":0,"b":255},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":18},{"x":-44,"y":4}],"textString":"\"uFreProSta\"","textColor":{"r":255,"g":127,"b":0},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":68},{"x":-56,"y":54}],"textString":"\"hOutCut\"","textColor":{"r":0,"g":0,"b":127},"visible":"use_enthalpy","pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":86},{"x":-70,"y":72}],"textString":"\"hOut\"","textColor":{"r":0,"g":0,"b":127},"visible":"use_enthalpy","pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":116},{"x":-56,"y":102}],"textString":"\"TOutCut\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":138},{"x":-72,"y":124}],"textString":"\"TOut\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-100},{"x":-32,"y":-118}],"textString":"\"uRetDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-10},{"x":-28,"y":-28}],"textString":"\"uOutDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-30},{"x":-28,"y":-48}],"textString":"\"uOutDam_min\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-80},{"x":-12,"y":-98}],"textString":"\"uRetDamPhy_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-120},{"x":-32,"y":-138}],"textString":"\"uRetDam_min\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":36,"y":110},{"x":96,"y":92}],"textString":"\"yOutDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":36,"y":12},{"x":96,"y":-6}],"textString":"\"yRetDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":36,"y":-88},{"x":96,"y":-106}],"textString":"\"yRetDam_min\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"extent":[{"x":-260,"y":-280},{"x":240,"y":280}],"preserveAspectRatio":"false","initialScale":0.05}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":-2},{"x":220,"y":-250}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":58},{"x":220,"y":6}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":118},{"x":220,"y":66}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":258},{"x":220,"y":130}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":158},{"x":204,"y":138}],"textString":"\"Outdoor air\nconditions\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":52},{"x":298,"y":18}],"textString":"\"Freeze protection -\ndisable if stage1\nand above\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":-198},{"x":288,"y":-246}],"textString":"\"Damper position\nlimit assignments\nwith delays\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":84},{"x":214,"y":74}],"textString":"\"Supply fan status\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is a multi zone VAV AHU economizer enable/disable sequence\nbased on the Section 5.16.7 of the ASHRAE Guideline 36, May 2020. Additional\nconditions included in the sequence are: freeze protection (freeze protection\nstage 0-3, see Section 5.16.12), supply fan status (on or off, see Section 5.16.5).\n

\n

\nThe economizer is disabled whenever the outdoor air conditions\nexceed the economizer high limit setpoint.\nThis sequence allows for all device types listed in\nASHRAE 90.1-2013 and Title 24-2013.\n

\n

\nIn addition, the economizer gets disabled without a delay whenever any of the\nfollowing is true:\n

\n\n

\nThe following state machine chart illustrates the transitions between enabling and disabling:\n

\n

\n\\\"Image\n

\n

\nAfter the disable signal is activated, the following procedure is applied, in order to\nprevent pressure fluctuations in the HVAC system:\n

\n\n\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"revisions","modification":{"equal":true,"expression":{"simple_expression":"\"\n\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/Enable.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo","checksum":"91bcd83720b7c80a8ac4c5c5ea9bebac"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/ExtendsClause_1.json b/test/reference/json/test/FromModelica/ExtendsClause_1.json index f5834a1e..bf701af4 100644 --- a/test/reference/json/test/FromModelica/ExtendsClause_1.json +++ b/test/reference/json/test/FromModelica/ExtendsClause_1.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ExtendsClause_1","description_string":"model with extends clause","composition":{"element_list":[{"extends_clause":{"name":"Buildings.Controls.OBC.CDL.Continuous.PID","class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Ti","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","component_list":[{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Length","component_list":[{"declaration":{"identifier":"length"},"description":{"description_string":"Length of the pipe"}}]}}],"element_sections":[{"protected_element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Area","component_list":[{"declaration":{"identifier":"ARound","modification":{"equal":true,"expression":{"simple_expression":"dh^2*Modelica.Constants.pi/4"}}},"description":{"description_string":"Cross sectional area (assuming a round cross section area)"}}]}}]}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"res\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...test...test...\n\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"revisions","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ExtendsClause_1.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ExtendsClause_1.mo","checksum":"ab233c80e87d84cacf5f9fef7718057d"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ExtendsClause_1","description_string":"model with extends clause","composition":{"element_list":[{"extends_clause":{"name":"Buildings.Controls.OBC.CDL.Continuous.PID","class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Ti","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","component_list":[{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Length","component_list":[{"declaration":{"identifier":"length"},"description":{"description_string":"Length of the pipe"}}]}}],"element_sections":[{"protected_element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Area","component_list":[{"declaration":{"identifier":"ARound","modification":{"equal":true,"expression":{"simple_expression":"dh^2*Modelica.Constants.pi/4"}}},"description":{"description_string":"Cross sectional area (assuming a round cross section area)"}}]}}]}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"res\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...test...test...\n\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"revisions","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ExtendsClause_1.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ExtendsClause_1.mo","checksum":"ab233c80e87d84cacf5f9fef7718057d"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/ExtendsClause_2.json b/test/reference/json/test/FromModelica/ExtendsClause_2.json index 47c45e54..132c875d 100644 --- a/test/reference/json/test/FromModelica/ExtendsClause_2.json +++ b/test/reference/json/test/FromModelica/ExtendsClause_2.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ExtendsClause_2","description_string":"model with extends clause","composition":{"element_list":[{"extends_clause":{"name":"Buildings.Controls.OBC.CDL.Continuous.PID","class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Ti","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}}]}},{"extends_clause":{"name":"Buildings.Controls.OBC.CDL.Logical.TrueHoldWithReset","class_modification":[{"element_redeclaration":{"component_clause1":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueDelay","component_declaration1":{"declaration":{"identifier":"onDelay","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"delayTime","modification":{"equal":true,"expression":{"simple_expression":"duration"}}}}}]}}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"duration","modification":{"equal":true,"expression":{"simple_expression":"300"}}}}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","component_list":[{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Length","component_list":[{"declaration":{"identifier":"length"},"description":{"description_string":"Length of the pipe"}}]}}],"element_sections":[{"protected_element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Area","component_list":[{"declaration":{"identifier":"ARound","modification":{"equal":true,"expression":{"simple_expression":"dh^2*Modelica.Constants.pi/4"}}},"description":{"description_string":"Cross sectional area (assuming a round cross section area)"}}]}}]}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"res\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...test...test...\n\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"revisions","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ExtendsClause_2.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ExtendsClause_2.mo","checksum":"fa2f4fe2baeef61e8180cd6e1734c6ec"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ExtendsClause_2","description_string":"model with extends clause","composition":{"element_list":[{"extends_clause":{"name":"Buildings.Controls.OBC.CDL.Continuous.PID","class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Ti","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}}]}},{"extends_clause":{"name":"Buildings.Controls.OBC.CDL.Logical.TrueHoldWithReset","class_modification":[{"element_redeclaration":{"component_clause1":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueDelay","component_declaration1":{"declaration":{"identifier":"onDelay","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"delayTime","modification":{"equal":true,"expression":{"simple_expression":"duration"}}}}}]}}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"duration","modification":{"equal":true,"expression":{"simple_expression":"300"}}}}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","component_list":[{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Length","component_list":[{"declaration":{"identifier":"length"},"description":{"description_string":"Length of the pipe"}}]}}],"element_sections":[{"protected_element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Area","component_list":[{"declaration":{"identifier":"ARound","modification":{"equal":true,"expression":{"simple_expression":"dh^2*Modelica.Constants.pi/4"}}},"description":{"description_string":"Cross sectional area (assuming a round cross section area)"}}]}}]}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"res\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...test...test...\n\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"revisions","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ExtendsClause_2.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ExtendsClause_2.mo","checksum":"fa2f4fe2baeef61e8180cd6e1734c6ec"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/ExtendsClause_3.json b/test/reference/json/test/FromModelica/ExtendsClause_3.json index 4c7a5c04..570fa6ec 100644 --- a/test/reference/json/test/FromModelica/ExtendsClause_3.json +++ b/test/reference/json/test/FromModelica/ExtendsClause_3.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ExtendsClause_3","description_string":"model with extends clause","composition":{"element_list":[{"extends_clause":{"name":"Buildings.Controls.OBC.CDL.Constants"}},{"extends_clause":{"name":"Buildings.Controls.OBC.CDL.Logical.TrueHoldWithReset","class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"duration","modification":{"equal":true,"expression":{"simple_expression":"300"}}}}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","component_list":[{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Length","component_list":[{"declaration":{"identifier":"length"},"description":{"description_string":"Length of the pipe"}}]}}],"element_sections":[{"protected_element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Area","component_list":[{"declaration":{"identifier":"ARound","modification":{"equal":true,"expression":{"simple_expression":"dh^2*Modelica.Constants.pi/4"}}},"description":{"description_string":"Cross sectional area (assuming a round cross section area)"}}]}}]}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"res\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...test...test...\n\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"revisions","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ExtendsClause_3.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ExtendsClause_3.mo","checksum":"532ee5bd5fcbb5ec416583ec9c536b15"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ExtendsClause_3","description_string":"model with extends clause","composition":{"element_list":[{"extends_clause":{"name":"Buildings.Controls.OBC.CDL.Constants"}},{"extends_clause":{"name":"Buildings.Controls.OBC.CDL.Logical.TrueHoldWithReset","class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"duration","modification":{"equal":true,"expression":{"simple_expression":"300"}}}}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","component_list":[{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Length","component_list":[{"declaration":{"identifier":"length"},"description":{"description_string":"Length of the pipe"}}]}}],"element_sections":[{"protected_element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Area","component_list":[{"declaration":{"identifier":"ARound","modification":{"equal":true,"expression":{"simple_expression":"dh^2*Modelica.Constants.pi/4"}}},"description":{"description_string":"Cross sectional area (assuming a round cross section area)"}}]}}]}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"res\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...test...test...\n\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"revisions","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ExtendsClause_3.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ExtendsClause_3.mo","checksum":"532ee5bd5fcbb5ec416583ec9c536b15"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/MisplacedInfoWithComponent.json b/test/reference/json/test/FromModelica/MisplacedInfoWithComponent.json index 2e8d9eea..6b4a908b 100644 --- a/test/reference/json/test/FromModelica/MisplacedInfoWithComponent.json +++ b/test/reference/json/test/FromModelica/MisplacedInfoWithComponent.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"MisplacedInfoWithComponent","description_string":"A block that places info section in component annotation","composition":{"element_list":[{"component_clause":{"type_specifier":"Block1","component_list":[{"declaration":{"identifier":"bloPub"},"description":{"description_string":"A public block","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/MisplacedInfoWithComponent.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MisplacedInfoWithComponent.mo","checksum":"281aad05f29e1c0dbe664b7fd994584b"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"MisplacedInfoWithComponent","description_string":"A block that places info section in component annotation","composition":{"element_list":[{"component_clause":{"type_specifier":"Block1","component_list":[{"declaration":{"identifier":"bloPub"},"description":{"description_string":"A public block","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/MisplacedInfoWithComponent.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MisplacedInfoWithComponent.mo","checksum":"281aad05f29e1c0dbe664b7fd994584b"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/MisplacedInfoWithEquation.json b/test/reference/json/test/FromModelica/MisplacedInfoWithEquation.json index 248562fe..908790aa 100644 --- a/test/reference/json/test/FromModelica/MisplacedInfoWithEquation.json +++ b/test/reference/json/test/FromModelica/MisplacedInfoWithEquation.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"MisplacedInfoWithEquation","description_string":"A block that places info section in equation section","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"k","modification":{"equal":true,"expression":{"simple_expression":"2"}}},"description":{"description_string":"Constant gain"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"description":{"description_string":"Input signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y1"},"description":{"description_string":"Output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y2"},"description":{"description_string":"Output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","component_list":[{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":0,"y":-10},{"x":20,"y":10}]}}}}}]}}]}}],"element_sections":[{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"u"}],"to":[{"dot_op":false,"identifier":"gain"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":0},{"x":-2,"y":0}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"gain"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":22,"y":0},{"x":110,"y":0}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"assignment_equation":{"lhs":"y2","rhs":{"simple_expression":"k*u"}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nBlock that outputs y = 2 * u.\n

\n\""}}}}}]}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/MisplacedInfoWithEquation.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MisplacedInfoWithEquation.mo","checksum":"e9204a19fd3627d713513dff12e923f1"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"MisplacedInfoWithEquation","description_string":"A block that places info section in equation section","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"k","modification":{"equal":true,"expression":{"simple_expression":"2"}}},"description":{"description_string":"Constant gain"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"description":{"description_string":"Input signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y1"},"description":{"description_string":"Output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y2"},"description":{"description_string":"Output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","component_list":[{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":0,"y":-10},{"x":20,"y":10}]}}}}}]}}]}}],"element_sections":[{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"u"}],"to":[{"dot_op":false,"identifier":"gain"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":0},{"x":-2,"y":0}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"gain"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":22,"y":0},{"x":110,"y":0}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"assignment_equation":{"lhs":"y2","rhs":{"simple_expression":"k*u"}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nBlock that outputs y = 2 * u.\n

\n\""}}}}}]}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/MisplacedInfoWithEquation.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MisplacedInfoWithEquation.mo","checksum":"e9204a19fd3627d713513dff12e923f1"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/MisplacedInfoWithParameter.json b/test/reference/json/test/FromModelica/MisplacedInfoWithParameter.json index 58207f21..f60d9f62 100644 --- a/test/reference/json/test/FromModelica/MisplacedInfoWithParameter.json +++ b/test/reference/json/test/FromModelica/MisplacedInfoWithParameter.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"MisplacedInfoWithParameter","description_string":"A block that places info section in parameter annotation","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/MisplacedInfoWithParameter.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MisplacedInfoWithParameter.mo","checksum":"c204c4aff17fd78827ce77399626da43"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"MisplacedInfoWithParameter","description_string":"A block that places info section in parameter annotation","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/MisplacedInfoWithParameter.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MisplacedInfoWithParameter.mo","checksum":"c204c4aff17fd78827ce77399626da43"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/MyController.json b/test/reference/json/test/FromModelica/MyController.json index 965e5a50..ea0aa6b1 100644 --- a/test/reference/json/test/FromModelica/MyController.json +++ b/test/reference/json/test/FromModelica/MyController.json @@ -943,6 +943,6 @@ } ], "modelicaFile": "test/FromModelica/MyController.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MyController.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MyController.mo", "checksum": "f24bbd7358809191544bc5c2f05ea2be" } \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/MyControllerWithSemantics.json b/test/reference/json/test/FromModelica/MyControllerWithSemantics.json index 05b8086a..6e4d8b52 100644 --- a/test/reference/json/test/FromModelica/MyControllerWithSemantics.json +++ b/test/reference/json/test/FromModelica/MyControllerWithSemantics.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"MyControllerWithSemantics","description_string":"My controller with semantics","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u1"},"description":{"description_string":"Real input 1","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"metadataLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"Brick 1.3 text/turtle\""}},"description_string":"bldg: a Brick:Temperature_Sensor ."}}},{"element_modification_or_replaceable":{"element_modification":{"name":"naturalLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"en\""}},"description_string":" is a temperature sensor input"}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u2"},"description":{"description_string":"Real input 2","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"naturalLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"en\""}},"description_string":" is a temperature sensor input"}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Real output","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Add","component_list":[{"declaration":{"identifier":"add2"},"description":{"description_string":"Add two real inputs","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"SubController","component_list":[{"declaration":{"identifier":"heaCoi"},"description":{"description_string":"Heating Coil","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-50},{"x":10,"y":-30}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"metadataLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"Brick 1.3 text/turtle\""}},"description_string":"bldg: a Brick:Heating_Coil ."}}},{"element_modification_or_replaceable":{"element_modification":{"name":"naturalLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"en\""}},"description_string":" is a heating coil."}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"SubControllerWithSemantics","component_list":[{"declaration":{"identifier":"subCon2"},"description":{"description_string":"Cooling Coil","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-90},{"x":10,"y":-70}]}}}}}]}}]}}],"element_sections":[{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"u1"}],"to":[{"dot_op":false,"identifier":"add2"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":40},{"x":-60,"y":40},{"x":-60,"y":6},{"x":-12,"y":6}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"add2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-40},{"x":-60,"y":-40},{"x":-60,"y":-6},{"x":-12,"y":-6}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"add2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":12,"y":0},{"x":120,"y":0}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"subCon1"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-40},{"x":-12,"y":-40}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"subCon2"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-40},{"x":-60,"y":-40},{"x":-60,"y":-80},{"x":-12,"y":-80}],"color":{"r":0,"g":0,"b":127}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"controlledDevice","modification":{"equal":true,"expression":{"simple_expression":"\"My Device\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"metadataLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"Brick 1.3 text/turtle\""}},"description_string":"@prefix Brick: .\n @prefix bldg: . "}}}]}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"myCon\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":100},{"x":100,"y":140}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/MyControllerWithSemantics.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MyControllerWithSemantics.mo","checksum":"c654ee9c91e0bf10d5bb2d01d8f40a26"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"MyControllerWithSemantics","description_string":"My controller with semantics","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u1"},"description":{"description_string":"Real input 1","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"metadataLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"Brick 1.3 text/turtle\""}},"description_string":"bldg: a Brick:Temperature_Sensor ."}}},{"element_modification_or_replaceable":{"element_modification":{"name":"naturalLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"en\""}},"description_string":" is a temperature sensor input"}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u2"},"description":{"description_string":"Real input 2","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"naturalLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"en\""}},"description_string":" is a temperature sensor input"}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Real output","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Add","component_list":[{"declaration":{"identifier":"add2"},"description":{"description_string":"Add two real inputs","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"SubController","component_list":[{"declaration":{"identifier":"heaCoi"},"description":{"description_string":"Heating Coil","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-50},{"x":10,"y":-30}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"metadataLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"Brick 1.3 text/turtle\""}},"description_string":"bldg: a Brick:Heating_Coil ."}}},{"element_modification_or_replaceable":{"element_modification":{"name":"naturalLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"en\""}},"description_string":" is a heating coil."}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"SubControllerWithSemantics","component_list":[{"declaration":{"identifier":"subCon2"},"description":{"description_string":"Cooling Coil","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-90},{"x":10,"y":-70}]}}}}}]}}]}}],"element_sections":[{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"u1"}],"to":[{"dot_op":false,"identifier":"add2"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":40},{"x":-60,"y":40},{"x":-60,"y":6},{"x":-12,"y":6}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"add2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-40},{"x":-60,"y":-40},{"x":-60,"y":-6},{"x":-12,"y":-6}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"add2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":12,"y":0},{"x":120,"y":0}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"subCon1"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-40},{"x":-12,"y":-40}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"subCon2"},{"dot_op":true},{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-40},{"x":-60,"y":-40},{"x":-60,"y":-80},{"x":-12,"y":-80}],"color":{"r":0,"g":0,"b":127}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"controlledDevice","modification":{"equal":true,"expression":{"simple_expression":"\"My Device\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"metadataLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"Brick 1.3 text/turtle\""}},"description_string":"@prefix Brick: .\n @prefix bldg: . "}}}]}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"myCon\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":100},{"x":100,"y":140}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/MyControllerWithSemantics.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MyControllerWithSemantics.mo","checksum":"c654ee9c91e0bf10d5bb2d01d8f40a26"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/NoClassComment.json b/test/reference/json/test/FromModelica/NoClassComment.json index 894da52e..6cade5b9 100644 --- a/test/reference/json/test/FromModelica/NoClassComment.json +++ b/test/reference/json/test/FromModelica/NoClassComment.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"NoClassComment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}]}}}}],"modelicaFile":"test/FromModelica/NoClassComment.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/NoClassComment.mo","checksum":"bc50f3b9de57424453c131ccb74edd18"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"NoClassComment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}]}}}}],"modelicaFile":"test/FromModelica/NoClassComment.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/NoClassComment.mo","checksum":"bc50f3b9de57424453c131ccb74edd18"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/NoWithin.json b/test/reference/json/test/FromModelica/NoWithin.json index 303fa7bc..dd90894e 100644 --- a/test/reference/json/test/FromModelica/NoWithin.json +++ b/test/reference/json/test/FromModelica/NoWithin.json @@ -1 +1 @@ -{"class_definition":[{"class_prefixes":"package","class_specifier":{"long_class_specifier":{"identifier":"FromModelica","description_string":"Package with test models","composition":{"element_list":[{"component_clause":{"type_prefix":"constant","type_specifier":"Integer","component_list":[{"declaration":{"identifier":"one","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"An integer constant with value 1"}}]}}]}}}}],"modelicaFile":"test/FromModelica/NoWithin.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/NoWithin.mo","checksum":"6946b4805e8b2df0d49bf78a3b7dcbf1"} \ No newline at end of file +{"class_definition":[{"class_prefixes":"package","class_specifier":{"long_class_specifier":{"identifier":"FromModelica","description_string":"Package with test models","composition":{"element_list":[{"component_clause":{"type_prefix":"constant","type_specifier":"Integer","component_list":[{"declaration":{"identifier":"one","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"An integer constant with value 1"}}]}}]}}}}],"modelicaFile":"test/FromModelica/NoWithin.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/NoWithin.mo","checksum":"6946b4805e8b2df0d49bf78a3b7dcbf1"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/Parameter1.json b/test/reference/json/test/FromModelica/Parameter1.json index c0ef24e2..d41d115d 100644 --- a/test/reference/json/test/FromModelica/Parameter1.json +++ b/test/reference/json/test/FromModelica/Parameter1.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Parameter1","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}]}}}}],"modelicaFile":"test/FromModelica/Parameter1.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter1.mo","checksum":"0e923225decf43f3a5d2909de067020a"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Parameter1","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}]}}}}],"modelicaFile":"test/FromModelica/Parameter1.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter1.mo","checksum":"0e923225decf43f3a5d2909de067020a"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/Parameter1WithVendorAnnotation.json b/test/reference/json/test/FromModelica/Parameter1WithVendorAnnotation.json index 1358d3f9..38f09c67 100644 --- a/test/reference/json/test/FromModelica/Parameter1WithVendorAnnotation.json +++ b/test/reference/json/test/FromModelica/Parameter1WithVendorAnnotation.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Parameter1WithVendorAnnotation","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"haystack","modification":{"equal":true,"expression":{"simple_expression":"\"{ \\\"dis\\\": \\\"site\\\",\n \\\"area\\\": 400 }\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"brick","modification":{"equal":true,"expression":{"simple_expression":"\"xxxxx\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"point","modification":{"equal":true,"expression":{"simple_expression":"digital"}}}}}]}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/Parameter1WithVendorAnnotation.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter1WithVendorAnnotation.mo","checksum":"0989e7e5efae6c250452ffe516f27b6a"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Parameter1WithVendorAnnotation","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"haystack","modification":{"equal":true,"expression":{"simple_expression":"\"{ \\\"dis\\\": \\\"site\\\",\n \\\"area\\\": 400 }\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"brick","modification":{"equal":true,"expression":{"simple_expression":"\"xxxxx\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"point","modification":{"equal":true,"expression":{"simple_expression":"digital"}}}}}]}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/Parameter1WithVendorAnnotation.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter1WithVendorAnnotation.mo","checksum":"0989e7e5efae6c250452ffe516f27b6a"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/Parameter2.json b/test/reference/json/test/FromModelica/Parameter2.json index 3edf68a5..c4996c80 100644 --- a/test/reference/json/test/FromModelica/Parameter2.json +++ b/test/reference/json/test/FromModelica/Parameter2.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Parameter2","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myPar1","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParNoValue"},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParMin","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}}]}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParMax","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}}]}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParUnit","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}}]}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParInGroup"},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Gains\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParInTab"},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParInTabInGroup1"},"description":{"description_string":"Some comment 1","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Initial state\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParInTabInGroup2"},"description":{"description_string":"Some comment 2","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Initial state\""}}}}}]}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/Parameter2.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter2.mo","checksum":"f32d29f67c0b2c67f8d9d1cc431a9a7a"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Parameter2","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myPar1","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParNoValue"},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParMin","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}}]}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParMax","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}}]}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParUnit","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}}]}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParInGroup"},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Gains\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParInTab"},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParInTabInGroup1"},"description":{"description_string":"Some comment 1","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Initial state\""}}}}}]}}}}]}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myParInTabInGroup2"},"description":{"description_string":"Some comment 2","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Initial state\""}}}}}]}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/Parameter2.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter2.mo","checksum":"f32d29f67c0b2c67f8d9d1cc431a9a7a"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/Parameter3.json b/test/reference/json/test/FromModelica/Parameter3.json index 4e6e9206..ee11b77f 100644 --- a/test/reference/json/test/FromModelica/Parameter3.json +++ b/test/reference/json/test/FromModelica/Parameter3.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Parameter3","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myPar1","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Temperature","component_list":[{"declaration":{"identifier":"myParUnit"},"description":{"description_string":"Some comment"}}]}}]}}}}],"modelicaFile":"test/FromModelica/Parameter3.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter3.mo","checksum":"501764c45f288d6fc10f2033200915fe"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"Parameter3","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"myPar1","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Temperature","component_list":[{"declaration":{"identifier":"myParUnit"},"description":{"description_string":"Some comment"}}]}}]}}}}],"modelicaFile":"test/FromModelica/Parameter3.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter3.mo","checksum":"501764c45f288d6fc10f2033200915fe"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/ParameterWithAttributes.json b/test/reference/json/test/FromModelica/ParameterWithAttributes.json index 9f15a5d0..b4478568 100644 --- a/test/reference/json/test/FromModelica/ParameterWithAttributes.json +++ b/test/reference/json/test/FromModelica/ParameterWithAttributes.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ParameterWithAttributes","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"start","modification":{"equal":true,"expression":{"simple_expression":"0.2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"fixed","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"PressureDifference\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"Pa\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"nominal","modification":{"equal":true,"expression":{"simple_expression":"0.5"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"stateSelect","modification":{"equal":true,"expression":{"simple_expression":"StateSelect.default"}}}}}],"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ParameterWithAttributes.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ParameterWithAttributes.mo","checksum":"eb2254fd49d797804e87f15abe4f5f90"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ParameterWithAttributes","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"start","modification":{"equal":true,"expression":{"simple_expression":"0.2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"fixed","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"PressureDifference\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"Pa\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"nominal","modification":{"equal":true,"expression":{"simple_expression":"0.5"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"stateSelect","modification":{"equal":true,"expression":{"simple_expression":"StateSelect.default"}}}}}],"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ParameterWithAttributes.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ParameterWithAttributes.mo","checksum":"eb2254fd49d797804e87f15abe4f5f90"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/ParameterWithDefaultName.json b/test/reference/json/test/FromModelica/ParameterWithDefaultName.json index a71da5bb..531d1582 100644 --- a/test/reference/json/test/FromModelica/ParameterWithDefaultName.json +++ b/test/reference/json/test/FromModelica/ParameterWithDefaultName.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ParameterWithDefaultName","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"testName\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ParameterWithDefaultName.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ParameterWithDefaultName.mo","checksum":"5f503f9e0a1faba6be8d40bf8b47b17a"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ParameterWithDefaultName","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"testName\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ParameterWithDefaultName.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ParameterWithDefaultName.mo","checksum":"5f503f9e0a1faba6be8d40bf8b47b17a"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/ParameterWithInfo.json b/test/reference/json/test/FromModelica/ParameterWithInfo.json index ab33e03f..962d428d 100644 --- a/test/reference/json/test/FromModelica/ParameterWithInfo.json +++ b/test/reference/json/test/FromModelica/ParameterWithInfo.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ParameterWithInfo","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ParameterWithInfo.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ParameterWithInfo.mo","checksum":"fa8ebd448412a8412c3e7c9a5e435b54"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ParameterWithInfo","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ParameterWithInfo.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ParameterWithInfo.mo","checksum":"fa8ebd448412a8412c3e7c9a5e435b54"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/ParameterWithVendorAnnotationInInfo.json b/test/reference/json/test/FromModelica/ParameterWithVendorAnnotationInInfo.json index 10c3f620..3acdf4e7 100644 --- a/test/reference/json/test/FromModelica/ParameterWithVendorAnnotationInInfo.json +++ b/test/reference/json/test/FromModelica/ParameterWithVendorAnnotationInInfo.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ParameterWithVendorAnnotationInInfo","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"haystack","modification":{"equal":true,"expression":{"simple_expression":"\"{ \\\"dis\\\": \\\"site\\\",\n \\\"area\\\": 400 }\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"brick","modification":{"equal":true,"expression":{"simple_expression":"\"xxxxx\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"point","modification":{"equal":true,"expression":{"simple_expression":"digital"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ParameterWithVendorAnnotationInInfo.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ParameterWithVendorAnnotationInInfo.mo","checksum":"83588dec36f54d69b94596dffb0570c6"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"ParameterWithVendorAnnotationInInfo","description_string":"Some class comment","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"haystack","modification":{"equal":true,"expression":{"simple_expression":"\"{ \\\"dis\\\": \\\"site\\\",\n \\\"area\\\": 400 }\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"brick","modification":{"equal":true,"expression":{"simple_expression":"\"xxxxx\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"point","modification":{"equal":true,"expression":{"simple_expression":"digital"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/ParameterWithVendorAnnotationInInfo.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ParameterWithVendorAnnotationInInfo.mo","checksum":"83588dec36f54d69b94596dffb0570c6"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/PointList.json b/test/reference/json/test/FromModelica/PointList.json index 31fd35ce..e9259674 100644 --- a/test/reference/json/test/FromModelica/PointList.json +++ b/test/reference/json/test/FromModelica/PointList.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"PointList","description_string":"Block demonstrating point list generation","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u1"},"description":{"description_string":"Input one","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u2"},"description":{"description_string":"Input two","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"120"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y1"},"description":{"description_string":"Output one","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-80},{"x":140,"y":-40}]},"iconTransformation":{"extent":[{"x":100,"y":40},{"x":140,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y2"},"description":{"description_string":"Output two","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":40},{"x":140,"y":80}]},"iconTransformation":{"extent":[{"x":100,"y":-80},{"x":140,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"MyController","component_list":[{"declaration":{"identifier":"con1"},"description":{"description_string":"Subcontroller one","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon1\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon2\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon2.u\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"120"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":50},{"x":10,"y":70}]}}}}}]}}]}},{"component_clause":{"type_specifier":"MyController","component_list":[{"declaration":{"identifier":"con2"},"description":{"description_string":"Subcontroller two","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-70},{"x":10,"y":-50}]}}}}}]}}]}}],"element_sections":[{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"u1"}],"to":[{"dot_op":false,"identifier":"con1"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":60},{"x":-80,"y":60},{"x":-80,"y":66},{"x":-12,"y":66}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u1"}],"to":[{"dot_op":false,"identifier":"con2"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":60},{"x":-80,"y":60},{"x":-80,"y":-54},{"x":-12,"y":-54}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"con1"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-60},{"x":-60,"y":-60},{"x":-60,"y":54},{"x":-12,"y":54}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"con2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-60},{"x":-60,"y":-60},{"x":-60,"y":-66},{"x":-12,"y":-66}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"con1"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":12,"y":60},{"x":120,"y":60}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"con2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":12,"y":-60},{"x":120,"y":-60}],"color":{"r":0,"g":0,"b":127}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"controlledDevice","modification":{"equal":true,"expression":{"simple_expression":"\"Test device\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"poiLis\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":100},{"x":100,"y":140}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/PointList.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/PointList.mo","checksum":"a338cdddb4ffca9427753c7e548c9913"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"PointList","description_string":"Block demonstrating point list generation","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u1"},"description":{"description_string":"Input one","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u2"},"description":{"description_string":"Input two","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"120"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y1"},"description":{"description_string":"Output one","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-80},{"x":140,"y":-40}]},"iconTransformation":{"extent":[{"x":100,"y":40},{"x":140,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y2"},"description":{"description_string":"Output two","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":40},{"x":140,"y":80}]},"iconTransformation":{"extent":[{"x":100,"y":-80},{"x":140,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"MyController","component_list":[{"declaration":{"identifier":"con1"},"description":{"description_string":"Subcontroller one","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon1\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon2\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon2.u\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"120"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":50},{"x":10,"y":70}]}}}}}]}}]}},{"component_clause":{"type_specifier":"MyController","component_list":[{"declaration":{"identifier":"con2"},"description":{"description_string":"Subcontroller two","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-70},{"x":10,"y":-50}]}}}}}]}}]}}],"element_sections":[{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"u1"}],"to":[{"dot_op":false,"identifier":"con1"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":60},{"x":-80,"y":60},{"x":-80,"y":66},{"x":-12,"y":66}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u1"}],"to":[{"dot_op":false,"identifier":"con2"},{"dot_op":true},{"dot_op":false,"identifier":"u1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":60},{"x":-80,"y":60},{"x":-80,"y":-54},{"x":-12,"y":-54}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"con1"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-60},{"x":-60,"y":-60},{"x":-60,"y":54},{"x":-12,"y":54}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"u2"}],"to":[{"dot_op":false,"identifier":"con2"},{"dot_op":true},{"dot_op":false,"identifier":"u2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-120,"y":-60},{"x":-60,"y":-60},{"x":-60,"y":-66},{"x":-12,"y":-66}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"con1"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y2"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":12,"y":60},{"x":120,"y":60}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"con2"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y1"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":12,"y":-60},{"x":120,"y":-60}],"color":{"r":0,"g":0,"b":127}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"controlledDevice","modification":{"equal":true,"expression":{"simple_expression":"\"Test device\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"poiLis\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":100},{"x":100,"y":140}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/PointList.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/PointList.mo","checksum":"a338cdddb4ffca9427753c7e548c9913"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/RemovableInputs.json b/test/reference/json/test/FromModelica/RemovableInputs.json index 15b02227..619b0b54 100644 --- a/test/reference/json/test/FromModelica/RemovableInputs.json +++ b/test/reference/json/test/FromModelica/RemovableInputs.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"RemovableInputs","description_string":"A block with a flag for disabling instances","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"enaBlo","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Flag for enabling instance"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"have_winSen"},"description":{"description_string":"True: there is window status sensor"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"have_occSen"},"description":{"description_string":"True: there is occupancy sensor"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Temperature input","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TOutWitDef","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Temperature input with specified default value","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-70},{"x":-100,"y":-30}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"default","modification":{"equal":true,"expression":{"simple_expression":"300.15"}}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanInput","component_list":[{"declaration":{"identifier":"uWin"},"condition_attribute":{"expression":{"simple_expression":"have_winSen"}},"description":{"description_string":"Window opening status","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-100},{"x":-100,"y":-60}]},"iconTransformation":{"extent":[{"x":-140,"y":-110},{"x":-100,"y":-70}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.IntegerInput","component_list":[{"declaration":{"identifier":"nOcc"},"condition_attribute":{"expression":{"simple_expression":"have_occSen"}},"description":{"description_string":"Occupancy","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Output connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Abs","component_list":[{"declaration":{"identifier":"abs"},"condition_attribute":{"expression":{"simple_expression":"not enaBlo"}},"description":{"description_string":"Instance could be conditional disabled","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/RemovableInputs.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/RemovableInputs.mo","checksum":"7a988d501ae4cbf362d7ebe12fc22ec3"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"RemovableInputs","description_string":"A block with a flag for disabling instances","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"enaBlo","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Flag for enabling instance"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"have_winSen"},"description":{"description_string":"True: there is window status sensor"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"have_occSen"},"description":{"description_string":"True: there is occupancy sensor"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Temperature input","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TOutWitDef","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Temperature input with specified default value","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-70},{"x":-100,"y":-30}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"default","modification":{"equal":true,"expression":{"simple_expression":"300.15"}}}}}]}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanInput","component_list":[{"declaration":{"identifier":"uWin"},"condition_attribute":{"expression":{"simple_expression":"have_winSen"}},"description":{"description_string":"Window opening status","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-100},{"x":-100,"y":-60}]},"iconTransformation":{"extent":[{"x":-140,"y":-110},{"x":-100,"y":-70}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.IntegerInput","component_list":[{"declaration":{"identifier":"nOcc"},"condition_attribute":{"expression":{"simple_expression":"have_occSen"}},"description":{"description_string":"Occupancy","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Output connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Abs","component_list":[{"declaration":{"identifier":"abs"},"condition_attribute":{"expression":{"simple_expression":"not enaBlo"}},"description":{"description_string":"Instance could be conditional disabled","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/RemovableInputs.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/RemovableInputs.mo","checksum":"7a988d501ae4cbf362d7ebe12fc22ec3"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/SubController.json b/test/reference/json/test/FromModelica/SubController.json index 732ed62b..b37ab831 100644 --- a/test/reference/json/test/FromModelica/SubController.json +++ b/test/reference/json/test/FromModelica/SubController.json @@ -405,6 +405,6 @@ } ], "modelicaFile": "test/FromModelica/SubController.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/SubController.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/SubController.mo", "checksum": "38c289724f1c7e4b77eaf836a931110c" } \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/SubControllerWithSemantics.json b/test/reference/json/test/FromModelica/SubControllerWithSemantics.json index fd7049a7..af27f606 100644 --- a/test/reference/json/test/FromModelica/SubControllerWithSemantics.json +++ b/test/reference/json/test/FromModelica/SubControllerWithSemantics.json @@ -441,6 +441,6 @@ } ], "modelicaFile": "test/FromModelica/SubControllerWithSemantics.mo", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/SubControllerWithSemantics.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/SubControllerWithSemantics.mo", "checksum": "4bf6e54db7eee06827ce2fb950e39cd8" } \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/TestEvaluation_1.json b/test/reference/json/test/FromModelica/TestEvaluation_1.json index 01ace663..37d80d02 100644 --- a/test/reference/json/test/FromModelica/TestEvaluation_1.json +++ b/test/reference/json/test/FromModelica/TestEvaluation_1.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"TestEvaluation_1","description_string":"Example for real parameter evaluation","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"k1","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Constant output value"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Sources.Constant","component_list":[{"declaration":{"identifier":"con","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k1"}}}}}]}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":10},{"x":0,"y":30}]}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"uses","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"Buildings","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"version","modification":{"equal":true,"expression":{"simple_expression":"\"8.0.0\""}}}}}]}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/TestEvaluation_1.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_1.mo","checksum":"0676898cf3a851d88a18a05c8341d611"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"TestEvaluation_1","description_string":"Example for real parameter evaluation","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"k1","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Constant output value"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Sources.Constant","component_list":[{"declaration":{"identifier":"con","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k1"}}}}}]}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":10},{"x":0,"y":30}]}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"uses","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"Buildings","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"version","modification":{"equal":true,"expression":{"simple_expression":"\"8.0.0\""}}}}}]}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/TestEvaluation_1.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_1.mo","checksum":"0676898cf3a851d88a18a05c8341d611"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/TestEvaluation_2.json b/test/reference/json/test/FromModelica/TestEvaluation_2.json index 6a289d78..06446580 100644 --- a/test/reference/json/test/FromModelica/TestEvaluation_2.json +++ b/test/reference/json/test/FromModelica/TestEvaluation_2.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"TestEvaluation_2","description_string":"Example for real parameter evaluation","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"uLow","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}}],"equal":true,"expression":{"simple_expression":"0.5"}}},"description":{"description_string":"if y=true and uuHigh, switch to y=true"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"description":{"description_string":"Real input signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-118,"y":-20},{"x":-78,"y":20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Boolean output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":80,"y":-20},{"x":120,"y":20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Hysteresis","component_list":[{"declaration":{"identifier":"hys","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uLow","modification":{"equal":true,"expression":{"simple_expression":"uLow"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"uHigh","modification":{"equal":true,"expression":{"simple_expression":"uHigh"}}}}}]}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}]}}]}}],"element_sections":[{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"hys"},{"dot_op":true},{"dot_op":false,"identifier":"u"}],"to":[{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-12,"y":0},{"x":-120,"y":0}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"hys"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":12,"y":0},{"x":120,"y":0}],"color":{"r":255,"g":0,"b":255}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"uses","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"Buildings","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"version","modification":{"equal":true,"expression":{"simple_expression":"\"8.0.0\""}}}}}]}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/TestEvaluation_2.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_2.mo","checksum":"4c2cde0f2d1974697cd2c355f56ce1c0"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"TestEvaluation_2","description_string":"Example for real parameter evaluation","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"uLow","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}}],"equal":true,"expression":{"simple_expression":"0.5"}}},"description":{"description_string":"if y=true and uuHigh, switch to y=true"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"description":{"description_string":"Real input signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-118,"y":-20},{"x":-78,"y":20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Boolean output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":80,"y":-20},{"x":120,"y":20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Hysteresis","component_list":[{"declaration":{"identifier":"hys","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uLow","modification":{"equal":true,"expression":{"simple_expression":"uLow"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"uHigh","modification":{"equal":true,"expression":{"simple_expression":"uHigh"}}}}}]}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}]}}]}}],"element_sections":[{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"hys"},{"dot_op":true},{"dot_op":false,"identifier":"u"}],"to":[{"dot_op":false,"identifier":"u"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-12,"y":0},{"x":-120,"y":0}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"hys"},{"dot_op":true},{"dot_op":false,"identifier":"y"}],"to":[{"dot_op":false,"identifier":"y"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":12,"y":0},{"x":120,"y":0}],"color":{"r":255,"g":0,"b":255}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"uses","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"Buildings","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"version","modification":{"equal":true,"expression":{"simple_expression":"\"8.0.0\""}}}}}]}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/TestEvaluation_2.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_2.mo","checksum":"4c2cde0f2d1974697cd2c355f56ce1c0"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/TestEvaluation_3.json b/test/reference/json/test/FromModelica/TestEvaluation_3.json index a12a1a49..877b08e8 100644 --- a/test/reference/json/test/FromModelica/TestEvaluation_3.json +++ b/test/reference/json/test/FromModelica/TestEvaluation_3.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"TestEvaluation_3","description_string":"Example for boolean parameter evaluation","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"k1","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Constant output value"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"k2","modification":{"equal":true,"expression":{"simple_expression":"not k1"}}}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Sources.Constant","component_list":[{"declaration":{"identifier":"con","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k2"}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"not k1"}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":10},{"x":10,"y":30}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Sources.Constant","component_list":[{"declaration":{"identifier":"con1","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k1"}}}}}]}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-30},{"x":12,"y":-10}]}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/TestEvaluation_3.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_3.mo","checksum":"a5e1a1f6126e2aa9474451639d6d6b01"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"TestEvaluation_3","description_string":"Example for boolean parameter evaluation","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"k1","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Constant output value"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Boolean","component_list":[{"declaration":{"identifier":"k2","modification":{"equal":true,"expression":{"simple_expression":"not k1"}}}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Sources.Constant","component_list":[{"declaration":{"identifier":"con","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k2"}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"not k1"}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":10},{"x":10,"y":30}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Sources.Constant","component_list":[{"declaration":{"identifier":"con1","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k1"}}}}}]}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-30},{"x":12,"y":-10}]}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/TestEvaluation_3.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_3.mo","checksum":"a5e1a1f6126e2aa9474451639d6d6b01"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/TestEvaluation_4.json b/test/reference/json/test/FromModelica/TestEvaluation_4.json index 6b8b5da3..f11713d5 100644 --- a/test/reference/json/test/FromModelica/TestEvaluation_4.json +++ b/test/reference/json/test/FromModelica/TestEvaluation_4.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"TestEvaluation_4","description_string":"Example for enumerate parameter evaluation","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Buildings.Controls.OBC.CDL.Types.SimpleController","component_list":[{"declaration":{"identifier":"controllerTypeCooCoi","modification":{"equal":true,"expression":{"simple_expression":"Buildings.Controls.OBC.CDL.Types.SimpleController.PI"}}},"description":{"description_string":"Type of controller"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kCooCoi","modification":{"equal":true,"expression":{"simple_expression":"0.1"}}},"description":{"description_string":"Gain for cooling coil control loop signal"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"TiCooCoi","modification":{"equal":true,"expression":{"simple_expression":"900"}}},"description":{"description_string":"Time constant of integrator block for cooling coil control loop signal"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TSupCooSet"},"description":{"description_string":"Cooling supply air temperature setpoint","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TAirSup"},"description":{"description_string":"Supply air temperature measurement","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":0},{"x":-100,"y":40}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.IntegerInput","component_list":[{"declaration":{"identifier":"uZonSta"},"description":{"description_string":"Zone state","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]},"iconTransformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanInput","component_list":[{"declaration":{"identifier":"u1SupFan"},"description":{"description_string":"Supply fan proven on","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]},"iconTransformation":{"extent":[{"x":-140,"y":-98},{"x":-100,"y":-58}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"yCooCoi"},"description":{"description_string":"Cooling coil position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints.CoolingCoil","component_list":[{"declaration":{"identifier":"cooCoi","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"controllerTypeCooCoi","modification":{"equal":true,"expression":{"simple_expression":"controllerTypeCooCoi"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"kCooCoi","modification":{"equal":true,"expression":{"simple_expression":"kCooCoi"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"TiCooCoi","modification":{"equal":true,"expression":{"simple_expression":"TiCooCoi"}}}}}]}},"description":{"description_string":"Cooling coil control","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}]}}]}}],"element_sections":[{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"cooCoi"},{"dot_op":true},{"dot_op":false,"identifier":"TSupCooSet"}],"to":[{"dot_op":false,"identifier":"TSupCooSet"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-12,"y":8},{"x":-40,"y":8},{"x":-40,"y":60},{"x":-120,"y":60}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"cooCoi"},{"dot_op":true},{"dot_op":false,"identifier":"TAirSup"}],"to":[{"dot_op":false,"identifier":"TAirSup"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-12,"y":4},{"x":-60,"y":4},{"x":-60,"y":20},{"x":-120,"y":20}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"cooCoi"},{"dot_op":true},{"dot_op":false,"identifier":"uZonSta"}],"to":[{"dot_op":false,"identifier":"uZonSta"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-12,"y":-4},{"x":-60,"y":-4},{"x":-60,"y":-20},{"x":-120,"y":-20}],"color":{"r":255,"g":127,"b":0}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"cooCoi"},{"dot_op":true},{"dot_op":false,"identifier":"u1SupFan"}],"to":[{"dot_op":false,"identifier":"u1SupFan"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-12,"y":-8},{"x":-40,"y":-8},{"x":-40,"y":-60},{"x":-120,"y":-60}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"cooCoi"},{"dot_op":true},{"dot_op":false,"identifier":"yCooCoi"}],"to":[{"dot_op":false,"identifier":"yCooCoi"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":12,"y":0},{"x":58,"y":0},{"x":58,"y":0},{"x":120,"y":0}],"color":{"r":0,"g":0,"b":127}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/TestEvaluation_4.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_4.mo","checksum":"c082f3e1f48da1d1fbcccde2a6123039"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"TestEvaluation_4","description_string":"Example for enumerate parameter evaluation","composition":{"element_list":[{"component_clause":{"type_prefix":"parameter","type_specifier":"Buildings.Controls.OBC.CDL.Types.SimpleController","component_list":[{"declaration":{"identifier":"controllerTypeCooCoi","modification":{"equal":true,"expression":{"simple_expression":"Buildings.Controls.OBC.CDL.Types.SimpleController.PI"}}},"description":{"description_string":"Type of controller"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"kCooCoi","modification":{"equal":true,"expression":{"simple_expression":"0.1"}}},"description":{"description_string":"Gain for cooling coil control loop signal"}}]}},{"component_clause":{"type_prefix":"parameter","type_specifier":"Real","component_list":[{"declaration":{"identifier":"TiCooCoi","modification":{"equal":true,"expression":{"simple_expression":"900"}}},"description":{"description_string":"Time constant of integrator block for cooling coil control loop signal"}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TSupCooSet"},"description":{"description_string":"Cooling supply air temperature setpoint","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TAirSup"},"description":{"description_string":"Supply air temperature measurement","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":0},{"x":-100,"y":40}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.IntegerInput","component_list":[{"declaration":{"identifier":"uZonSta"},"description":{"description_string":"Zone state","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]},"iconTransformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanInput","component_list":[{"declaration":{"identifier":"u1SupFan"},"description":{"description_string":"Supply fan proven on","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]},"iconTransformation":{"extent":[{"x":-140,"y":-98},{"x":-100,"y":-58}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"yCooCoi"},"description":{"description_string":"Cooling coil position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints.CoolingCoil","component_list":[{"declaration":{"identifier":"cooCoi","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"controllerTypeCooCoi","modification":{"equal":true,"expression":{"simple_expression":"controllerTypeCooCoi"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"kCooCoi","modification":{"equal":true,"expression":{"simple_expression":"kCooCoi"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"TiCooCoi","modification":{"equal":true,"expression":{"simple_expression":"TiCooCoi"}}}}}]}},"description":{"description_string":"Cooling coil control","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}]}}]}}],"element_sections":[{"equation_section":{"equation":[{"connect_clause":{"from":[{"dot_op":false,"identifier":"cooCoi"},{"dot_op":true},{"dot_op":false,"identifier":"TSupCooSet"}],"to":[{"dot_op":false,"identifier":"TSupCooSet"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-12,"y":8},{"x":-40,"y":8},{"x":-40,"y":60},{"x":-120,"y":60}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"cooCoi"},{"dot_op":true},{"dot_op":false,"identifier":"TAirSup"}],"to":[{"dot_op":false,"identifier":"TAirSup"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-12,"y":4},{"x":-60,"y":4},{"x":-60,"y":20},{"x":-120,"y":20}],"color":{"r":0,"g":0,"b":127}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"cooCoi"},{"dot_op":true},{"dot_op":false,"identifier":"uZonSta"}],"to":[{"dot_op":false,"identifier":"uZonSta"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-12,"y":-4},{"x":-60,"y":-4},{"x":-60,"y":-20},{"x":-120,"y":-20}],"color":{"r":255,"g":127,"b":0}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"cooCoi"},{"dot_op":true},{"dot_op":false,"identifier":"u1SupFan"}],"to":[{"dot_op":false,"identifier":"u1SupFan"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":-12,"y":-8},{"x":-40,"y":-8},{"x":-40,"y":-60},{"x":-120,"y":-60}],"color":{"r":255,"g":0,"b":255}}}}}]}},{"connect_clause":{"from":[{"dot_op":false,"identifier":"cooCoi"},{"dot_op":true},{"dot_op":false,"identifier":"yCooCoi"}],"to":[{"dot_op":false,"identifier":"yCooCoi"}]},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Line":{"points":[{"x":12,"y":0},{"x":58,"y":0},{"x":58,"y":0},{"x":120,"y":0}],"color":{"r":0,"g":0,"b":127}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/TestEvaluation_4.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_4.mo","checksum":"c082f3e1f48da1d1fbcccde2a6123039"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/VariableModification.json b/test/reference/json/test/FromModelica/VariableModification.json index e8727469..557e5ad3 100644 --- a/test/reference/json/test/FromModelica/VariableModification.json +++ b/test/reference/json/test/FromModelica/VariableModification.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"VariableModification","description_string":"Block with instantiated class that the connector attribute being specified","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"description":{"description_string":"Temperature input","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Abs","component_list":[{"declaration":{"identifier":"abs","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"u","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"degC\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"y","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"degC\""}}}}}]}}}}]}},"description":{"description_string":"Instance with modified input and output attributes","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/VariableModification.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/VariableModification.mo","checksum":"3e596d52cb5abe379faf93b30dca6e4a"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"VariableModification","description_string":"Block with instantiated class that the connector attribute being specified","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"TOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"description":{"description_string":"Temperature input","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Abs","component_list":[{"declaration":{"identifier":"abs","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"u","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"degC\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"y","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"degC\""}}}}}]}}}}]}},"description":{"description_string":"Instance with modified input and output attributes","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}}]}}]}}}}],"modelicaFile":"test/FromModelica/VariableModification.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/VariableModification.mo","checksum":"3e596d52cb5abe379faf93b30dca6e4a"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/WithCDLElementary.json b/test/reference/json/test/FromModelica/WithCDLElementary.json index 6b353988..ec8c4b3a 100644 --- a/test/reference/json/test/FromModelica/WithCDLElementary.json +++ b/test/reference/json/test/FromModelica/WithCDLElementary.json @@ -1 +1 @@ -{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"WithCDLElementary","description_string":"Block that instantiates CDL elementary block that there is inside class","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Greater","component_list":[{"declaration":{"identifier":"gre"},"description":{"description_string":"CDL elementary block with inside class","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"description":{"description_string":"Real input","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-212,"y":-12},{"x":-172,"y":28}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Real output","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":-184,"y":-4},{"x":-144,"y":36}]}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/WithCDLElementary.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/WithCDLElementary.mo","checksum":"b5aa5a10d527ee146cd5b35d14da12e8"} \ No newline at end of file +{"within":"FromModelica","class_definition":[{"class_prefixes":"block","class_specifier":{"long_class_specifier":{"identifier":"WithCDLElementary","description_string":"Block that instantiates CDL elementary block that there is inside class","composition":{"element_list":[{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Greater","component_list":[{"declaration":{"identifier":"gre"},"description":{"description_string":"CDL elementary block with inside class","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","component_list":[{"declaration":{"identifier":"u"},"description":{"description_string":"Real input","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-212,"y":-12},{"x":-172,"y":28}]}}}}}]}}]}},{"component_clause":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","component_list":[{"declaration":{"identifier":"y"},"description":{"description_string":"Real output","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":-184,"y":-4},{"x":-144,"y":36}]}}}}}]}}]}}],"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}]}}}}],"modelicaFile":"test/FromModelica/WithCDLElementary.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/WithCDLElementary.mo","checksum":"b5aa5a10d527ee146cd5b35d14da12e8"} \ No newline at end of file diff --git a/test/reference/json/test/FromModelica/package.json b/test/reference/json/test/FromModelica/package.json index 1dcd2bcd..7490bb4c 100644 --- a/test/reference/json/test/FromModelica/package.json +++ b/test/reference/json/test/FromModelica/package.json @@ -1 +1 @@ -{"class_definition":[{"class_prefixes":"package","class_specifier":{"long_class_specifier":{"identifier":"FromModelica","description_string":"Package with test models","composition":{"element_list":[{"component_clause":{"type_prefix":"constant","type_specifier":"Integer","component_list":[{"declaration":{"identifier":"one","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"An integer constant with value 1"}}]}}]}}}}],"modelicaFile":"test/FromModelica/package.mo","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/package.mo","checksum":"b2a471abbf3ca9f2e2d994e7ce1539b4"} \ No newline at end of file +{"class_definition":[{"class_prefixes":"package","class_specifier":{"long_class_specifier":{"identifier":"FromModelica","description_string":"Package with test models","composition":{"element_list":[{"component_clause":{"type_prefix":"constant","type_specifier":"Integer","component_list":[{"declaration":{"identifier":"one","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"An integer constant with value 1"}}]}}]}}}}],"modelicaFile":"test/FromModelica/package.mo","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/package.mo","checksum":"b2a471abbf3ca9f2e2d994e7ce1539b4"} \ No newline at end of file diff --git a/test/reference/objects/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.json b/test/reference/objects/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.json index e1887016..af76e109 100644 --- a/test/reference/objects/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.json +++ b/test/reference/objects/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.json @@ -2,7 +2,7 @@ "instances": { "CoolingCoil": { "within": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo", "type": "long_class_specifier", "annotation": [ { @@ -274,7 +274,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" }, "kCooCoi": { "type_prefix": "parameter", @@ -413,7 +413,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" }, "TiCooCoi": { "type_prefix": "parameter", @@ -648,7 +648,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" }, "TdCooCoi": { "type_prefix": "parameter", @@ -883,7 +883,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" }, "TSupCooSet": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealInput", @@ -989,7 +989,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" }, "TAirSup": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealInput", @@ -1095,7 +1095,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" }, "uZonSta": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.IntegerInput", @@ -1179,7 +1179,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" }, "u1SupFan": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.BooleanInput", @@ -1239,7 +1239,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" }, "yCooCoi": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealOutput", @@ -1323,10 +1323,10 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" }, "conCoi": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.PIDWithReset", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.PIDWithReset", "type": "element", "long_class_specifier_identifier": "CoolingCoil", "single_component_list": { @@ -1457,7 +1457,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" }, "intEqu": { "type_specifier": "Buildings.Controls.OBC.CDL.Integers.Equal", @@ -1517,7 +1517,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" }, "conInt": { "type_specifier": "Buildings.Controls.OBC.CDL.Integers.Sources.Constant", @@ -1595,10 +1595,10 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" }, "switch": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Switch", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Switch", "type": "element", "long_class_specifier_identifier": "CoolingCoil", "single_component_list": { @@ -1655,10 +1655,10 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" }, "const": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Sources.Constant", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Sources.Constant", "type": "element", "long_class_specifier_identifier": "CoolingCoil", "single_component_list": { @@ -1732,7 +1732,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" }, "and2": { "type_specifier": "Buildings.Controls.OBC.CDL.Logical.And", @@ -1792,7 +1792,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/ASHRAE/G36/AHUs/SingleZone/VAV/SetPoints/CoolingCoil.mo" } }, "requiredReferences": { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Constants.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Constants.json index f10877f8..d14000fa 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Constants.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Constants.json @@ -2,7 +2,7 @@ "instances": { "Constants": { "within": "Buildings.Controls.OBC.CDL", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Constants.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Constants.mo", "type": "long_class_specifier", "annotation": [ { @@ -341,7 +341,7 @@ "annotation": null, "semantics": {}, "within": "Buildings.Controls.OBC.CDL", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Constants.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Constants.mo" }, "small": { "type_prefix": "constant", @@ -365,7 +365,7 @@ "annotation": null, "semantics": {}, "within": "Buildings.Controls.OBC.CDL", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Constants.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Constants.mo" }, "pi": { "type_prefix": "constant", @@ -389,7 +389,7 @@ "annotation": null, "semantics": {}, "within": "Buildings.Controls.OBC.CDL", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Constants.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Constants.mo" } }, "requiredReferences": {} diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Abs.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Abs.json deleted file mode 100644 index 95a829e8..00000000 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Abs.json +++ /dev/null @@ -1,439 +0,0 @@ -{ - "instances": { - "Abs": { - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Abs.mo", - "type": "long_class_specifier", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "defaultComponentName", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"abs\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Icon", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "coordinateSystem": { - "extent": [ - { - "x": -100, - "y": -100 - }, - { - "x": 100, - "y": 100 - } - ], - "preserveAspectRatio": "true" - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "graphics": [ - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -150, - "y": 110 - }, - { - "x": 150, - "y": 150 - } - ], - "textString": "\"%name\"", - "textColor": { - "r": 0, - "g": 0, - "b": 255 - } - } - }, - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -100, - "y": -100 - }, - { - "x": 100, - "y": 100 - } - ], - "lineColor": { - "r": 0, - "g": 0, - "b": 127 - }, - "fillColor": { - "r": 255, - "g": 255, - "b": 255 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Polygon", - "attribute": { - "points": [ - { - "x": 92, - "y": 0 - }, - { - "x": 70, - "y": 8 - }, - { - "x": 70, - "y": -8 - }, - { - "x": 92, - "y": 0 - } - ], - "lineColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -80, - "y": 80 - }, - { - "x": 0, - "y": 0 - }, - { - "x": 80, - "y": 80 - } - ] - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": 0, - "y": -14 - }, - { - "x": 0, - "y": 68 - } - ], - "color": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Polygon", - "attribute": { - "points": [ - { - "x": 0, - "y": 90 - }, - { - "x": -8, - "y": 68 - }, - { - "x": 8, - "y": 68 - }, - { - "x": 0, - "y": 90 - } - ], - "lineColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -34, - "y": -28 - }, - { - "x": 38, - "y": -76 - } - ], - "textString": "\"abs\"", - "textColor": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -88, - "y": 0 - }, - { - "x": 76, - "y": 0 - } - ], - "color": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": 226, - "y": 60 - }, - { - "x": 106, - "y": 10 - } - ], - "textString": "DynamicSelect(\"\",String(y", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - } - } - } - ] - } - } - } - ] - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Documentation", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "info", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n

\nBlock that outputs y = abs(u),\nwhere\nu is an input.\n

\n\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "revisions", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n
    \n
  • \nMarch 2, 2020, by Michael Wetter:
    \nChanged icon to display dynamically the output value.\n
  • \n
  • \nJanuary 3, 2017, by Michael Wetter:
    \nFirst implementation, based on the implementation of the\nModelica Standard Library.\n
  • \n
\n\"" - } - } - } - } - } - ] - } - } - } - } - ], - "semantics": {} - }, - "u": { - "type_specifier": "Interfaces.RealInput", - "type": "element", - "long_class_specifier_identifier": "Abs", - "single_component_list": { - "declaration": { - "identifier": "u" - }, - "description": { - "description_string": "Connector of Real input signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -20 - }, - { - "x": -100, - "y": 20 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -20 - }, - { - "x": -100, - "y": 20 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Abs.mo" - }, - "y": { - "type_specifier": "Interfaces.RealOutput", - "type": "element", - "long_class_specifier_identifier": "Abs", - "single_component_list": { - "declaration": { - "identifier": "y" - }, - "description": { - "description_string": "Connector of Real output signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, - { - "x": 140, - "y": 20 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, - { - "x": 140, - "y": 20 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Abs.mo" - } - }, - "requiredReferences": { - "connections": {} - } -} \ No newline at end of file diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Greater.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Greater.json deleted file mode 100644 index 86b2d531..00000000 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Greater.json +++ /dev/null @@ -1,1100 +0,0 @@ -{ - "instances": { - "Greater": { - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Greater.mo", - "type": "long_class_specifier", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "defaultComponentName", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"gre\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Icon", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "coordinateSystem": { - "extent": [ - { - "x": -100, - "y": -100 - }, - { - "x": 100, - "y": 100 - } - ], - "preserveAspectRatio": "false" - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "graphics": [ - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -100, - "y": 100 - }, - { - "x": 100, - "y": -100 - } - ], - "borderPattern": "BorderPattern.Raised", - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 210, - "g": 210, - "b": 210 - }, - "fillPattern": "FillPattern.Solid", - "lineThickness": 5 - } - }, - { - "name": "Ellipse", - "attribute": { - "extent": [ - { - "x": 73, - "y": 7 - }, - { - "x": 87, - "y": -7 - } - ], - "lineColor": { - "r": 235, - "g": 235, - "b": null - }, - "fillColor": { - "r": 235, - "g": 235, - "b": null - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -100, - "y": -80 - }, - { - "x": 42, - "y": -80 - }, - { - "x": 42, - "y": -62 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 127 - } - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -12, - "y": 14 - }, - { - "x": 18, - "y": 2 - }, - { - "x": -12, - "y": -8 - } - ], - "thickness": 0.5 - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -150, - "y": 150 - }, - { - "x": 150, - "y": 110 - } - ], - "textString": "\"%name\"", - "textColor": { - "r": 0, - "g": 0, - "b": 255 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -64, - "y": 62 - }, - { - "x": 62, - "y": 92 - } - ], - "textString": ",textString=", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -88, - "y": -18 - }, - { - "x": -21, - "y": 24 - } - ], - "textString": "DynamicSelect(\"\",String(u1", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -86, - "y": -76 - }, - { - "x": -19, - "y": -34 - } - ], - "textString": "DynamicSelect(\"\",String(u2", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": 22, - "y": 20 - }, - { - "x": 89, - "y": 62 - } - ], - "textString": "DynamicSelect(\"\",String(u2", - "textColor": { - "r": 235, - "g": 235, - "b": null - }, - "visible": ",visible=" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": 22, - "y": 20 - }, - { - "x": 89, - "y": 62 - } - ], - "textString": "DynamicSelect(\"\",String(u2", - "textColor": { - "r": 235, - "g": 235, - "b": null - }, - "visible": ",visible=" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": 20, - "y": -56 - }, - { - "x": 87, - "y": -14 - } - ], - "textString": "DynamicSelect(\"\",String(u2 -h", - "textColor": { - "r": 235, - "g": 235, - "b": null - }, - "visible": ",visible=" - } - } - ] - } - } - } - ] - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Documentation", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "info", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n

\nBlock that outputs true if the Real input u1\nis greater than the Real input u2, optionally within a hysteresis h.\n

\n

\nThe parameter h ≥ 0 is used to specify a hysteresis.\nFor any h ≥ 0, the output switches to true if u1 > u2,\nand it switches to false if u1 ≤ u2 - h.\nNote that in the special case of h = 0, this produces the output y=u1 > u2.\n

\n

\nTo disable hysteresis, set h=0.\n

\n

Usage

\n

\nEnabling hysteresis can avoid frequent switching.
\nIn simulation, adding hysteresis is recommended to guard against numerical noise.\nOtherwise, numerical noise from a nonlinear solver or from an\nimplicit time integration algorithm may cause the simulation to stall.\nNumerical noise can be present if an input depends\non a state variable or a quantity that requires an iterative solution,\nsuch as a temperature or a mass flow rate of an HVAC system.
\nIn real controllers, adding hysteresis is recommended to guard against measurement noise.\nOtherwise, measurement noise may cause the output to change frequently.\n

\n\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "revisions", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n
    \n
  • \nApril 29, 2022, by Jianjun Hu:
    \nCorrected the condition of swiching true back to false.
    \nThis is for issue 2981.\n
  • \n
  • \nFebruary 3, 2021, by Antoine Gautier:
    \nCorrected documentation.
    \nThis is for issue 2246.\n
  • \n
  • \nAugust 5, 2020, by Michael Wetter:
    \nAdded hysteresis.
    \nThis is for issue 2076.\n
  • \n
  • \nJanuary 3, 2017, by Michael Wetter:
    \nFirst implementation, based on the implementation of the\nModelica Standard Library.\n
  • \n
\n\"" - } - } - } - } - } - ] - } - } - } - } - ], - "semantics": {} - }, - "h": { - "type_prefix": "parameter", - "type_specifier": "Real", - "type": "element", - "long_class_specifier_identifier": "Greater", - "single_component_list": { - "declaration": { - "identifier": "h", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "min", - "modification": { - "equal": true, - "expression": { - "simple_expression": "0" - } - } - } - } - } - ], - "equal": true, - "expression": { - "simple_expression": "0" - } - } - }, - "description": { - "description_string": "Hysteresis", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Evaluate", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Evaluate", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Greater.mo" - }, - "pre_y_start": { - "type_prefix": "parameter", - "type_specifier": "Boolean", - "type": "element", - "long_class_specifier_identifier": "Greater", - "single_component_list": { - "declaration": { - "identifier": "pre_y_start", - "modification": { - "equal": true, - "expression": { - "simple_expression": "false" - } - } - }, - "description": { - "description_string": "Value of pre(y) at initial time", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "tab", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Advanced\"" - } - } - } - } - } - ] - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "tab", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Advanced\"" - } - } - } - } - } - ] - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Greater.mo" - }, - "u1": { - "type_specifier": "Interfaces.RealInput", - "type": "element", - "long_class_specifier_identifier": "Greater", - "single_component_list": { - "declaration": { - "identifier": "u1" - }, - "description": { - "description_string": "Input u1", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -20 - }, - { - "x": -100, - "y": 20 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -20 - }, - { - "x": -100, - "y": 20 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Greater.mo" - }, - "u2": { - "type_specifier": "Interfaces.RealInput", - "type": "element", - "long_class_specifier_identifier": "Greater", - "single_component_list": { - "declaration": { - "identifier": "u2" - }, - "description": { - "description_string": "Input u2", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -100 - }, - { - "x": -100, - "y": -60 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -100 - }, - { - "x": -100, - "y": -60 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Greater.mo" - }, - "y": { - "type_specifier": "Interfaces.BooleanOutput", - "type": "element", - "long_class_specifier_identifier": "Greater", - "single_component_list": { - "declaration": { - "identifier": "y" - }, - "description": { - "description_string": "Output y", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, - { - "x": 140, - "y": 20 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, - { - "x": 140, - "y": 20 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Greater.mo" - }, - "have_hysteresis": { - "type_prefix": "parameter", - "type_specifier": "Boolean", - "type": "element", - "long_class_specifier_identifier": "Greater", - "single_component_list": { - "declaration": { - "identifier": "have_hysteresis", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "h" - }, - { - "name": "1e-10" - } - ], - "relation_operator": ">=" - } - ] - } - ] - } - } - } - } - }, - "description": { - "description_string": "True if the block has no hysteresis", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Evaluate", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Evaluate", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Greater.mo" - }, - "greHys": { - "type_specifier": "GreaterWithHysteresis", - "type": "element", - "long_class_specifier_identifier": "Greater", - "single_component_list": { - "declaration": { - "identifier": "greHys", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "h", - "modification": { - "equal": true, - "expression": { - "simple_expression": "h" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "pre_y_start", - "modification": { - "equal": true, - "expression": { - "simple_expression": "pre_y_start" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "have_hysteresis" - } - }, - "description": { - "description_string": "Block with hysteresis", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -10, - "y": 20 - }, - { - "x": 10, - "y": 40 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -10, - "y": 20 - }, - { - "x": 10, - "y": 40 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Greater.mo" - }, - "greNoHys": { - "type_specifier": "GreaterNoHysteresis", - "type": "element", - "long_class_specifier_identifier": "Greater", - "single_component_list": { - "declaration": { - "identifier": "greNoHys" - }, - "condition_attribute": { - "expression": { - "simple_expression": "not have_hysteresis" - } - }, - "description": { - "description_string": "Block without hysteresis", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -10, - "y": -40 - }, - { - "x": 10, - "y": -20 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -10, - "y": -40 - }, - { - "x": 10, - "y": -20 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Greater.mo" - }, - "GreaterNoHysteresis": { - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Greater.mo", - "classPrefixes": "block", - "type": "long_class_specifier", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Icon", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "graphics": [ - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -100, - "y": 100 - }, - { - "x": 100, - "y": -100 - } - ], - "borderPattern": "BorderPattern.Raised", - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 210, - "g": 210, - "b": 210 - }, - "fillPattern": "FillPattern.Solid", - "lineThickness": 5 - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -150, - "y": 150 - }, - { - "x": 150, - "y": 110 - } - ], - "textString": "\"%name\"", - "textColor": { - "r": 0, - "g": 0, - "b": 255 - } - } - } - ] - } - } - } - ] - } - } - } - } - ], - "semantics": {} - }, - "GreaterWithHysteresis": { - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Greater.mo", - "classPrefixes": "block", - "type": "long_class_specifier", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Icon", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "graphics": [ - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -100, - "y": 100 - }, - { - "x": 100, - "y": -100 - } - ], - "borderPattern": "BorderPattern.Raised", - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 210, - "g": 210, - "b": 210 - }, - "fillPattern": "FillPattern.Solid", - "lineThickness": 5 - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -150, - "y": 150 - }, - { - "x": 150, - "y": 110 - } - ], - "textString": "\"%name\"", - "textColor": { - "r": 0, - "g": 0, - "b": 255 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -64, - "y": 62 - }, - { - "x": 62, - "y": 92 - } - ], - "textString": ",textString=", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - } - } - } - ] - } - } - } - ] - } - } - } - } - ], - "semantics": {} - } - }, - "requiredReferences": { - "connections": { - "u1": [ - "greHys.u1", - "greNoHys.u1" - ], - "u2": [ - "greHys.u2", - "greNoHys.u2" - ], - "greHys.y": [ - "y" - ], - "greNoHys.y": [ - "y" - ] - } - } -} \ No newline at end of file diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Hysteresis.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Hysteresis.json deleted file mode 100644 index a8443144..00000000 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Hysteresis.json +++ /dev/null @@ -1,724 +0,0 @@ -{ - "instances": { - "Hysteresis": { - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Hysteresis.mo", - "type": "long_class_specifier", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "defaultComponentName", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"hys\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Icon", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "coordinateSystem": { - "extent": [ - { - "x": -100, - "y": -100 - }, - { - "x": 100, - "y": 100 - } - ], - "preserveAspectRatio": "true" - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "graphics": [ - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -100, - "y": 100 - }, - { - "x": 100, - "y": -100 - } - ], - "borderPattern": "BorderPattern.Raised", - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 210, - "g": 210, - "b": 210 - }, - "fillPattern": "FillPattern.Solid", - "lineThickness": 5 - } - }, - { - "name": "Ellipse", - "attribute": { - "extent": [ - { - "x": 71, - "y": 7 - }, - { - "x": 85, - "y": -7 - } - ], - "lineColor": { - "r": 235, - "g": 235, - "b": null - }, - "fillColor": { - "r": 235, - "g": 235, - "b": null - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Polygon", - "attribute": { - "points": [ - { - "x": -80, - "y": 90 - }, - { - "x": -88, - "y": 68 - }, - { - "x": -72, - "y": 68 - }, - { - "x": -80, - "y": 90 - } - ], - "lineColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -80, - "y": 68 - }, - { - "x": -80, - "y": -29 - } - ], - "color": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Polygon", - "attribute": { - "points": [ - { - "x": 92, - "y": -29 - }, - { - "x": 70, - "y": -21 - }, - { - "x": 70, - "y": -37 - }, - { - "x": 92, - "y": -29 - } - ], - "lineColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -79, - "y": -29 - }, - { - "x": 84, - "y": -29 - } - ], - "color": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -79, - "y": -29 - }, - { - "x": 41, - "y": -29 - } - ] - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -15, - "y": -21 - }, - { - "x": 1, - "y": -29 - }, - { - "x": -15, - "y": -36 - } - ] - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": 41, - "y": 51 - }, - { - "x": 41, - "y": -29 - } - ] - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": 33, - "y": 3 - }, - { - "x": 41, - "y": 22 - }, - { - "x": 50, - "y": 3 - } - ] - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -49, - "y": 51 - }, - { - "x": 81, - "y": 51 - } - ] - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -4, - "y": 59 - }, - { - "x": -19, - "y": 51 - }, - { - "x": -4, - "y": 43 - } - ] - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -59, - "y": 29 - }, - { - "x": -49, - "y": 11 - }, - { - "x": -39, - "y": 29 - } - ] - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -49, - "y": 51 - }, - { - "x": -49, - "y": -29 - } - ] - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -92, - "y": -49 - }, - { - "x": -9, - "y": -92 - } - ], - "textString": "\"%uLow\"", - "textColor": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": 2, - "y": -49 - }, - { - "x": 91, - "y": -92 - } - ], - "textString": "\"%uHigh\"", - "textColor": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -91, - "y": -49 - }, - { - "x": -8, - "y": -92 - } - ], - "lineColor": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -49, - "y": -29 - }, - { - "x": -49, - "y": -49 - } - ], - "color": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": 2, - "y": -49 - }, - { - "x": 91, - "y": -92 - } - ], - "lineColor": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": 41, - "y": -29 - }, - { - "x": 41, - "y": -49 - } - ], - "color": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -150, - "y": 150 - }, - { - "x": 150, - "y": 110 - } - ], - "textString": "\"%name\"", - "textColor": { - "r": 0, - "g": 0, - "b": 255 - } - } - } - ] - } - } - } - ] - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Documentation", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "info", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n

\nBlock that transforms a Real input signal into a Boolean\noutput signal:\n

\n
    \n
  • When the output was false and the input becomes\n greater than the parameter uHigh, the output\n switches to true.\n
  • \n
  • When the output was true and the input becomes\n less than the parameter uLow, the output\n switches to false.\n
  • \n
\n

\nThe start value of the output is defined via parameter\npre_y_start (= value of pre(y) at initial time).\nThe default value of this parameter is false.\n

\n

\n\\\"Hysteresis.png\\\"\n

\n\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "revisions", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n
    \n
  • \nOctober 3, 2017, by Michael Wetter:
    \nRemoved start value for parameters, and moved assertion to initial equation.\n
  • \n
  • \nJanuary 3, 2017, by Michael Wetter:
    \nFirst implementation, based on the implementation of the\nModelica Standard Library.\n
  • \n
\n\"" - } - } - } - } - } - ] - } - } - } - } - ], - "semantics": {} - }, - "uLow": { - "type_prefix": "parameter", - "type_specifier": "Real", - "type": "element", - "long_class_specifier_identifier": "Hysteresis", - "single_component_list": { - "declaration": { - "identifier": "uLow" - }, - "description": { - "description_string": "if y=true and uuHigh, switch to y=true" - } - }, - "annotation": null, - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Hysteresis.mo" - }, - "pre_y_start": { - "type_prefix": "parameter", - "type_specifier": "Boolean", - "type": "element", - "long_class_specifier_identifier": "Hysteresis", - "single_component_list": { - "declaration": { - "identifier": "pre_y_start", - "modification": { - "equal": true, - "expression": { - "simple_expression": "false" - } - } - }, - "description": { - "description_string": "Value of pre(y) at initial time" - } - }, - "annotation": null, - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Hysteresis.mo" - }, - "u": { - "type_specifier": "Interfaces.RealInput", - "type": "element", - "long_class_specifier_identifier": "Hysteresis", - "single_component_list": { - "declaration": { - "identifier": "u" - }, - "description": { - "description_string": "Real input signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -20 - }, - { - "x": -100, - "y": 20 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -20 - }, - { - "x": -100, - "y": 20 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Hysteresis.mo" - }, - "y": { - "type_specifier": "Interfaces.BooleanOutput", - "type": "element", - "long_class_specifier_identifier": "Hysteresis", - "single_component_list": { - "declaration": { - "identifier": "y" - }, - "description": { - "description_string": "Boolean output signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, - { - "x": 140, - "y": 20 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, - { - "x": 140, - "y": 20 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Hysteresis.mo" - } - }, - "requiredReferences": { - "connections": {} - } -} \ No newline at end of file diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Min.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Min.json deleted file mode 100644 index e84624f9..00000000 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Min.json +++ /dev/null @@ -1,372 +0,0 @@ -{ - "instances": { - "Min": { - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Min.mo", - "type": "long_class_specifier", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "defaultComponentName", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"min\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Documentation", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "info", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n

\nBlock that outputs y = min(u1, u2),\nwhere\nu1 and u2 are inputs.\n

\n\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "revisions", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n
    \n
  • \nMarch 2, 2020, by Michael Wetter:
    \nChanged icon to display dynamically the output value.\n
  • \n
  • \nJanuary 3, 2017, by Michael Wetter:
    \nFirst implementation, based on the implementation of the\nModelica Standard Library.\n
  • \n
\n\"" - } - } - } - } - } - ] - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Icon", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "coordinateSystem": { - "extent": [ - { - "x": -100, - "y": -100 - }, - { - "x": 100, - "y": 100 - } - ], - "preserveAspectRatio": "true" - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "graphics": [ - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -100, - "y": -100 - }, - { - "x": 100, - "y": 100 - } - ], - "lineColor": { - "r": 0, - "g": 0, - "b": 127 - }, - "fillColor": { - "r": 255, - "g": 255, - "b": 255 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -150, - "y": 150 - }, - { - "x": 150, - "y": 110 - } - ], - "textString": "\"%name\"", - "textColor": { - "r": 0, - "g": 0, - "b": 255 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -90, - "y": 36 - }, - { - "x": 90, - "y": -36 - } - ], - "textString": "\"min()\"", - "textColor": { - "r": 160, - "g": 160, - "b": 164 - } - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": 226, - "y": 60 - }, - { - "x": 106, - "y": 10 - } - ], - "textString": "DynamicSelect(\"\",String(y", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - } - } - } - ] - } - } - } - ] - } - } - } - } - ], - "semantics": {} - }, - "u1": { - "type_specifier": "Interfaces.RealInput", - "type": "element", - "long_class_specifier_identifier": "Min", - "single_component_list": { - "declaration": { - "identifier": "u1" - }, - "description": { - "description_string": "Connector of Real input signal 1", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": 40 - }, - { - "x": -100, - "y": 80 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": 40 - }, - { - "x": -100, - "y": 80 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Min.mo" - }, - "u2": { - "type_specifier": "Interfaces.RealInput", - "type": "element", - "long_class_specifier_identifier": "Min", - "single_component_list": { - "declaration": { - "identifier": "u2" - }, - "description": { - "description_string": "Connector of Real input signal 2", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -80 - }, - { - "x": -100, - "y": -40 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -80 - }, - { - "x": -100, - "y": -40 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Min.mo" - }, - "y": { - "type_specifier": "Interfaces.RealOutput", - "type": "element", - "long_class_specifier_identifier": "Min", - "single_component_list": { - "declaration": { - "identifier": "y" - }, - "description": { - "description_string": "Connector of Real output signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, - { - "x": 140, - "y": 20 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, - { - "x": 140, - "y": 20 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Min.mo" - } - }, - "requiredReferences": { - "connections": {} - } -} \ No newline at end of file diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/PID.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/PID.json deleted file mode 100644 index ff046a37..00000000 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/PID.json +++ /dev/null @@ -1,4587 +0,0 @@ -{ - "instances": { - "PID": { - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo", - "type": "long_class_specifier", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "defaultComponentName", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"conPID\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Icon", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "coordinateSystem": { - "extent": [ - { - "x": -100, - "y": -100 - }, - { - "x": 100, - "y": 100 - } - ] - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "graphics": [ - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -100, - "y": -100 - }, - { - "x": 100, - "y": 100 - } - ], - "lineColor": { - "r": 0, - "g": 0, - "b": 127 - }, - "fillColor": { - "r": 255, - "g": 255, - "b": 255 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -6, - "y": -20 - }, - { - "x": 66, - "y": -66 - } - ], - "lineColor": { - "r": 255, - "g": 255, - "b": 255 - }, - "fillColor": { - "r": 255, - "g": 255, - "b": 255 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -32, - "y": -22 - }, - { - "x": 68, - "y": -62 - } - ], - "textString": "\"P\"", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "visible": "([object Object])", - "fillColor": { - "r": 175, - "g": 175, - "b": 175 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -26, - "y": -22 - }, - { - "x": 74, - "y": -62 - } - ], - "textString": "\"PI\"", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "visible": "([object Object])", - "fillColor": { - "r": 175, - "g": 175, - "b": 175 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -16, - "y": -22 - }, - { - "x": 88, - "y": -62 - } - ], - "textString": "\"P D\"", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "visible": "([object Object])", - "fillColor": { - "r": 175, - "g": 175, - "b": 175 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -14, - "y": -22 - }, - { - "x": 86, - "y": -62 - } - ], - "textString": "\"PID\"", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "visible": "([object Object])", - "fillColor": { - "r": 175, - "g": 175, - "b": 175 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Polygon", - "attribute": { - "points": [ - { - "x": -80, - "y": 82 - }, - { - "x": -88, - "y": 60 - }, - { - "x": -72, - "y": 60 - }, - { - "x": -80, - "y": 82 - } - ], - "lineColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -80, - "y": 68 - }, - { - "x": -80, - "y": -100 - } - ], - "color": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -90, - "y": -80 - }, - { - "x": 70, - "y": -80 - } - ], - "color": { - "r": 192, - "g": 192, - "b": 192 - } - } - }, - { - "name": "Polygon", - "attribute": { - "points": [ - { - "x": 74, - "y": -80 - }, - { - "x": 52, - "y": -72 - }, - { - "x": 52, - "y": -88 - }, - { - "x": 74, - "y": -80 - } - ], - "lineColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillColor": { - "r": 192, - "g": 192, - "b": 192 - }, - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -150, - "y": 150 - }, - { - "x": 150, - "y": 110 - } - ], - "textString": "\"%name\"", - "textColor": { - "r": 0, - "g": 0, - "b": 255 - } - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -80, - "y": -80 - }, - { - "x": -80, - "y": -22 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 0 - } - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": -80, - "y": -22 - }, - { - "x": 6, - "y": 56 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 0 - } - } - }, - { - "name": "Line", - "attribute": { - "points": [ - { - "x": 6, - "y": 56 - }, - { - "x": 68, - "y": 56 - } - ], - "color": { - "r": 0, - "g": 0, - "b": 0 - } - } - }, - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": 100, - "y": -100 - }, - { - "x": 84, - "y": -100 - }, - { - "x": null, - "y": null - }, - { - "x": 100, - "y": -100 - }, - { - "x": 84, - "y": null - } - ], - "lineColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 175, - "g": 175, - "b": 175 - }, - "pattern": "LinePattern.None", - "fillPattern": "FillPattern.Solid" - } - } - ] - } - } - } - ] - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Diagram", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "coordinateSystem": { - "extent": [ - { - "x": -220, - "y": -200 - }, - { - "x": 220, - "y": 200 - } - ] - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "graphics": [ - { - "name": "Rectangle", - "attribute": { - "extent": [ - { - "x": -56, - "y": 180 - }, - { - "x": -24, - "y": -16 - } - ], - "fillColor": { - "r": 215, - "g": 215, - "b": 215 - }, - "pattern": "LinePattern.None", - "fillPattern": "FillPattern.Solid" - } - }, - { - "name": "Text", - "attribute": { - "extent": [ - { - "x": -52, - "y": 184 - }, - { - "x": -28, - "y": 156 - } - ], - "textString": "\"PID\"", - "textColor": { - "r": 0, - "g": 0, - "b": 0 - }, - "fillColor": { - "r": 215, - "g": 215, - "b": 215 - }, - "pattern": "LinePattern.None", - "fillPattern": "FillPattern.Solid" - } - } - ] - } - } - } - ] - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Documentation", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "info", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n

\nPID controller in the standard form\n

\n

\nyu = k/r   (e(t) + 1 ⁄ Ti   ∫ e(τ) dτ + Td d⁄dt e(t)),\n

\n

\nwhere\nyu is the control signal before output limitation,\ne(t) = us(t) - um(t) is the control error,\nwith us being the set point and um being\nthe measured quantity,\nk is the gain,\nTi is the time constant of the integral term,\nTd is the time constant of the derivative term,\nand\nr is a scaling factor, with default r=1.\nThe scaling factor should be set to the typical order of magnitude of the range of the error e.\nFor example, you may set r=100 to r=1000\nif the control input is a pressure of a heating water circulation pump in units of Pascal, or\nleave r=1 if the control input is a room temperature.\n

\n

\nNote that the units of k are the inverse of the units of the control error,\nwhile the units of Ti and Td are seconds.\n

\n

\nThe actual control output is\n

\n

\ny = min( ymax, max( ymin, y)),\n

\n

\nwhere ymin and ymax are limits for the control signal.\n

\n

P, PI, PD, or PID action

\n

\nThrough the parameter controllerType, the controller can be configured\nas P, PI, PD or PID controller. The default configuration is PI.\n

\n

Reverse or direct action

\n

\nThrough the parameter reverseActing, the controller can be configured to\nbe reverse or direct acting.\nThe above standard form is reverse acting, which is the default configuration.\nFor a reverse acting controller, for a constant set point,\nan increase in measurement signal u_m decreases the control output signal y\n(Montgomery and McDowall, 2008).\nThus,\n

\n
    \n
  • \n for a heating coil with a two-way valve, leave reverseActing = true, but\n
  • \n
  • \n for a cooling coil with a two-way valve, set reverseActing = false.\n
  • \n
\n

\nIf reverseAction=false, then the error e above is multiplied by -1.\n

\n

Anti-windup compensation

\n

\nThe controller anti-windup compensation is as follows:\nInstead of the above basic control law, the implementation is\n

\n

\nyu = k   (e(t) ⁄ r + 1 ⁄ Ti   ∫ (-Δy + e(τ) ⁄ r) dτ + Td ⁄ r d⁄dt e(t)),\n

\n

\nwhere the anti-windup compensation Δy is\n

\n

\nΔy = (yu - y) ⁄ (k Ni),\n

\n

\nwhere\nNi > 0 is the time constant for the anti-windup compensation.\nTo accelerate the anti-windup, decrease Ni.\n

\n

\nNote that the anti-windup term (-Δy + e(τ) ⁄ r) shows that the range of\nthe typical control error r should be set to a reasonable value so that\n

\n

\ne(τ) ⁄ r = (us(τ) - um(τ)) ⁄ r\n

\n

\nhas order of magnitude one, and hence the anti-windup compensation should work well.\n

\n

Reset of the controller output

\n

\nNote that this controller implements an integrator anti-windup. Therefore,\nfor most applications, the controller output does not need to be reset.\nHowever, if the controller is used in conjuction with equipment that is being\nswitched on, better control performance may be achieved by resetting the controller\noutput when the equipment is switched on. This is in particular the case in situations\nwhere the equipment control input should continuously increase as the equipment is\nswitched on, such as a light dimmer that may slowly increase the luminance, or\na variable speed drive of a motor that should continuously increase the speed. In\nthis case, the controller\n\nBuildings.Controls.OBC.CDL.Continuous.PIDWithReset\nthat can reset the output should be used.\n

\n

Approximation of the derivative term

\n

\nThe derivative of the control error d ⁄ dt e(t) is approximated using\n

\n

\nd⁄dt x(t) = (e(t)-x(t)) Nd ⁄ Td,\n

\n

\nand\n

\n

\nd⁄dt e(t) ≈ Nd (e(t)-x(t)),\n

\n

\nwhere x(t) is an internal state.\n

\n

Guidance for tuning the control gains

\n

\nThe parameters of the controller can be manually adjusted by performing\nclosed loop tests (= controller + plant connected\ntogether) and using the following strategy:\n

\n
    \n
  1. Set very large limits, e.g., set ymax = 1000.\n
  2. \n
  3. \nSelect a P-controller and manually enlarge the parameter k\n(the total gain of the controller) until the closed-loop response\ncannot be improved any more.\n
  4. \n
  5. \nSelect a PI-controller and manually adjust the parameters\nk and Ti (the time constant of the integrator).\nThe first value of Ti can be selected such that it is in the\norder of the time constant of the oscillations occurring with\nthe P-controller. If, e.g., oscillations in the order of 100 seconds\noccur in the previous step, start with Ti=1/100 seconds.\n
  6. \n
  7. \nIf you want to make the reaction of the control loop faster\n(but probably less robust against disturbances and measurement noise)\nselect a PID-controller and manually adjust parameters\nk, Ti, Td (time constant of derivative block).\n
  8. \n
  9. \nSet the limits yMax and yMin according to your specification.\n
  10. \n
  11. \nPerform simulations such that the output of the PID controller\ngoes in its limits. Tune Ni (Ni Ti is the time constant of\nthe anti-windup compensation) such that the input to the limiter\nblock (= lim.u) goes quickly enough back to its limits.\nIf Ni is decreased, this happens faster. If Ni is very large, the\nanti-windup compensation is not effective and the controller works bad.\n
  12. \n
\n

References

\n

\nR. Montgomery and R. McDowall (2008).\n\\\"Fundamentals of HVAC Control Systems.\\\"\nAmerican Society of Heating Refrigerating and Air-Conditioning Engineers Inc. Atlanta, GA.\n

\n\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "revisions", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"\n
    \n
  • \nMay 20, 2022, by Michael Wetter:
    \nRefactored implementation to use new derivative block from CDL package.
    \nThis is for\nissue 3022.\n
  • \n
  • \nMay 6, 2022, by Michael Wetter:
    \nCorrected wrong documentation in how the derivative of the control error is approximated.
    \nThis is for\nissue 2994.\n
  • \n
  • \nNovember 12, 2020, by Michael Wetter:
    \nReformulated to remove dependency to Modelica.Units.SI.
    \nThis is for\nissue 2243.\n
  • \n
  • \nOctober 15, 2020, by Michael Wetter:
    \nAdded scaling factor r, removed set point weights wp and wd.\nRevised documentation.
    \nThis is for issue 2182.\n
  • \n
  • \nAugust 4, 2020, by Jianjun Hu:
    \nRemoved the conditional inputs trigger and y_rest_in.\nRefactored to internally implement the derivative block.
    \nThis is for issue 2056.\n
  • \n
  • \nJune 1, 2020, by Michael Wetter:
    \nCorrected wrong convention of reverse and direct action.
    \nThis is for issue 1365.\n
  • \n
  • \nApril 23, 2020, by Michael Wetter:
    \nChanged default parameters for limits yMax from unspecified to 1\nand yMin from -yMax to 0.
    \nThis is for\nissue 1888.\n
  • \n
  • \nApril 7, 2020, by Michael Wetter:
    \nReimplemented block using only CDL constructs.\nThis refactoring removes the no longer use parameters xd_start that was\nused to initialize the state of the derivative term. This state is now initialized\nbased on the requested initial output yd_start which is a new parameter\nwith a default of 0.\nAlso, removed the parameters y_start and initType because\nthe initial output of the controller can be set by using xi_start\nand yd_start.\nThis is a non-backward compatible change, made to simplify the controller through\nthe removal of options that can be realized differently and are hardly ever used.\nThis refactoring also removes the parameter strict that\nwas used in the output limiter. The new implementation enforces a strict check by default.
    \nThis is for\nissue 1878.\n
  • \n
  • \nMarch 9, 2020, by Michael Wetter:
    \nCorrected unit declaration for gain k.
    \nSee issue 1821.\n
  • \n
  • \nMarch 2, 2020, by Michael Wetter:
    \nChanged icon to display dynamically the output value.\n
  • \n
  • \nFebruary 25, 2020, by Michael Wetter:
    \nChanged icon to display the output value.\n
  • \n
  • \nOctober 19, 2019, by Michael Wetter:
    \nDisabled homotopy to ensure bounded outputs\nby copying the implementation from MSL 3.2.3 and by\nhardcoding the implementation for homotopyType=NoHomotopy.
    \nSee issue 1221.\n
  • \n
  • \nNovember 13, 2017, by Michael Wetter:
    \nChanged default controller type from PID to PI.\n
  • \n
  • \nNovember 6, 2017, by Michael Wetter:
    \nExplicitly declared types and used integrator with reset from CDL.\n
  • \n
  • \nOctober 22, 2017, by Michael Wetter:
    \nAdded to CDL to have a PI controller with integrator reset.\n
  • \n
  • \nSeptember 29, 2016, by Michael Wetter:
    \nRefactored model.\n
  • \n
  • \nAugust 25, 2016, by Michael Wetter:
    \nRemoved parameter limitsAtInit because it was only propagated to\nthe instance limiter, but this block no longer makes use of this parameter.\nThis is a non-backward compatible change.
    \nRevised implemenentation, added comments, made some parameter in the instances final.\n
  • \n
  • July 18, 2016, by Philipp Mehrfeld:
    \nAdded integrator reset.\nThis is for issue 494.\n
  • \n
  • \nMarch 15, 2016, by Michael Wetter:
    \nChanged the default value to strict=true in order to avoid events\nwhen the controller saturates.\nThis is for issue 433.\n
  • \n
  • \nFebruary 24, 2010, by Michael Wetter:
    \nFirst implementation.\n
  • \n
\n\"" - } - } - } - } - } - ] - } - } - } - } - ], - "semantics": {} - }, - "controllerType": { - "type_prefix": "parameter", - "type_specifier": "Buildings.Controls.OBC.CDL.Types.SimpleController", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "controllerType", - "modification": { - "equal": true, - "expression": { - "simple_expression": "Buildings.Controls.OBC.CDL.Types.SimpleController.PI" - } - } - }, - "description": { - "description_string": "Type of controller" - } - }, - "annotation": null, - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "k": { - "type_prefix": "parameter", - "type_specifier": "Real", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "k", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "min", - "modification": { - "equal": true, - "expression": { - "simple_expression": "100*Constants.eps" - } - } - } - } - } - ], - "equal": true, - "expression": { - "simple_expression": "1" - } - } - }, - "description": { - "description_string": "Gain of controller", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Control gains\"" - } - } - } - } - } - ] - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Control gains\"" - } - } - } - } - } - ] - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "Ti": { - "type_prefix": "parameter", - "type_specifier": "Real", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "Ti", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "quantity", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Time\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "unit", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"s\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "min", - "modification": { - "equal": true, - "expression": { - "simple_expression": "100*Constants.eps" - } - } - } - } - } - ], - "equal": true, - "expression": { - "simple_expression": "0.5" - } - } - }, - "description": { - "description_string": "Time constant of integrator block", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Control gains\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "enable", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PI" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Control gains\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "enable", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PI" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "Td": { - "type_prefix": "parameter", - "type_specifier": "Real", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "Td", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "quantity", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Time\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "unit", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"s\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "min", - "modification": { - "equal": true, - "expression": { - "simple_expression": "100*Constants.eps" - } - } - } - } - } - ], - "equal": true, - "expression": { - "simple_expression": "0.1" - } - } - }, - "description": { - "description_string": "Time constant of derivative block", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Control gains\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "enable", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PD" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Control gains\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "enable", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PD" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "r": { - "type_prefix": "parameter", - "type_specifier": "Real", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "r", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "min", - "modification": { - "equal": true, - "expression": { - "simple_expression": "100*Constants.eps" - } - } - } - } - } - ], - "equal": true, - "expression": { - "simple_expression": "1" - } - } - }, - "description": { - "description_string": "Typical range of control error, used for scaling the control error" - } - }, - "annotation": null, - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "yMax": { - "type_prefix": "parameter", - "type_specifier": "Real", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "yMax", - "modification": { - "equal": true, - "expression": { - "simple_expression": "1" - } - } - }, - "description": { - "description_string": "Upper limit of output", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Limits\"" - } - } - } - } - } - ] - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Limits\"" - } - } - } - } - } - ] - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "yMin": { - "type_prefix": "parameter", - "type_specifier": "Real", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "yMin", - "modification": { - "equal": true, - "expression": { - "simple_expression": "0" - } - } - }, - "description": { - "description_string": "Lower limit of output", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Limits\"" - } - } - } - } - } - ] - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Limits\"" - } - } - } - } - } - ] - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "Ni": { - "type_prefix": "parameter", - "type_specifier": "Real", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "Ni", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "min", - "modification": { - "equal": true, - "expression": { - "simple_expression": "100*Constants.eps" - } - } - } - } - } - ], - "equal": true, - "expression": { - "simple_expression": "0.9" - } - } - }, - "description": { - "description_string": "Ni*Ti is time constant of anti-windup compensation", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "tab", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Advanced\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Integrator anti-windup\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "enable", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PI" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "tab", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Advanced\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Integrator anti-windup\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "enable", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PI" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "Nd": { - "type_prefix": "parameter", - "type_specifier": "Real", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "Nd", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "min", - "modification": { - "equal": true, - "expression": { - "simple_expression": "100*Constants.eps" - } - } - } - } - } - ], - "equal": true, - "expression": { - "simple_expression": "10" - } - } - }, - "description": { - "description_string": "The higher Nd, the more ideal the derivative block", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "tab", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Advanced\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Derivative block\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "enable", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PD" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "tab", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Advanced\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Derivative block\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "enable", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PD" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "xi_start": { - "type_prefix": "parameter", - "type_specifier": "Real", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "xi_start", - "modification": { - "equal": true, - "expression": { - "simple_expression": "0" - } - } - }, - "description": { - "description_string": "Initial value of integrator state", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "tab", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Advanced\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Initialization\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "enable", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PI" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "tab", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Advanced\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Initialization\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "enable", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PI" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "yd_start": { - "type_prefix": "parameter", - "type_specifier": "Real", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "yd_start", - "modification": { - "equal": true, - "expression": { - "simple_expression": "0" - } - } - }, - "description": { - "description_string": "Initial value of derivative output", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "tab", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Advanced\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Initialization\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "enable", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PD" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Dialog", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "tab", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Advanced\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "group", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"Initialization\"" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "enable", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PD" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "reverseActing": { - "type_prefix": "parameter", - "type_specifier": "Boolean", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "reverseActing", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - }, - "description": { - "description_string": "Set to true for reverse acting, or false for direct acting control action" - } - }, - "annotation": null, - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "u_s": { - "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealInput", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "u_s" - }, - "description": { - "description_string": "Connector of setpoint input signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -260, - "y": -20 - }, - { - "x": -220, - "y": 20 - } - ] - }, - "iconTransformation": { - "extent": [ - { - "x": -140, - "y": -20 - }, - { - "x": -100, - "y": 20 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -260, - "y": -20 - }, - { - "x": -220, - "y": 20 - } - ] - }, - "iconTransformation": { - "extent": [ - { - "x": -140, - "y": -20 - }, - { - "x": -100, - "y": 20 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "u_m": { - "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealInput", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "u_m" - }, - "description": { - "description_string": "Connector of measurement input signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "origin": { - "x": 0, - "y": -220 - }, - "extent": [ - { - "x": 20, - "y": -20 - }, - { - "x": -20, - "y": 20 - } - ], - "rotation": 270 - }, - "iconTransformation": { - "origin": { - "x": 0, - "y": -120 - }, - "extent": [ - { - "x": 20, - "y": -20 - }, - { - "x": -20, - "y": 20 - } - ], - "rotation": 270 - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "origin": { - "x": 0, - "y": -220 - }, - "extent": [ - { - "x": 20, - "y": -20 - }, - { - "x": -20, - "y": 20 - } - ], - "rotation": 270 - }, - "iconTransformation": { - "origin": { - "x": 0, - "y": -120 - }, - "extent": [ - { - "x": 20, - "y": -20 - }, - { - "x": -20, - "y": 20 - } - ], - "rotation": 270 - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "y": { - "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealOutput", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "y" - }, - "description": { - "description_string": "Connector of actuator output signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 220, - "y": -20 - }, - { - "x": 260, - "y": 20 - } - ] - }, - "iconTransformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, - { - "x": 140, - "y": 20 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 220, - "y": -20 - }, - { - "x": 260, - "y": 20 - } - ] - }, - "iconTransformation": { - "extent": [ - { - "x": 100, - "y": -20 - }, - { - "x": 140, - "y": 20 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "controlError": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "controlError" - }, - "description": { - "description_string": "Control error (set point - measurement)", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -200, - "y": -16 - }, - { - "x": -180, - "y": 4 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -200, - "y": -16 - }, - { - "x": -180, - "y": 4 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "P": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "P", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "k" - } - } - } - } - } - ] - } - }, - "description": { - "description_string": "Gain for proportional control action", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -50, - "y": 130 - }, - { - "x": -30, - "y": 150 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -50, - "y": 130 - }, - { - "x": -30, - "y": 150 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "I": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.IntegratorWithReset", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "I", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "k/Ti" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "y_start", - "modification": { - "equal": true, - "expression": { - "simple_expression": "xi_start" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_I" - } - }, - "description": { - "description_string": "Integral term", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -50, - "y": -10 - }, - { - "x": -30, - "y": 10 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -50, - "y": -10 - }, - { - "x": -30, - "y": 10 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "D": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Derivative", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "D", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "y_start", - "modification": { - "equal": true, - "expression": { - "simple_expression": "yd_start" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_D" - } - }, - "description": { - "description_string": "Derivative term", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -50, - "y": 60 - }, - { - "x": -30, - "y": 80 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -50, - "y": 60 - }, - { - "x": -30, - "y": 80 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "errP": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "errP" - }, - "description": { - "description_string": "P error", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": 130 - }, - { - "x": -120, - "y": 150 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": 130 - }, - { - "x": -120, - "y": 150 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "errD": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "errD" - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_D" - } - }, - "description": { - "description_string": "D error", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": 60 - }, - { - "x": -120, - "y": 80 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": 60 - }, - { - "x": -120, - "y": 80 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "errI1": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "errI1" - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_I" - } - }, - "description": { - "description_string": "I error (before anti-windup compensation)", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -4 - }, - { - "x": -120, - "y": 16 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -140, - "y": -4 - }, - { - "x": -120, - "y": 16 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "errI2": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "errI2" - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_I" - } - }, - "description": { - "description_string": "I error (after anti-windup compensation)", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -100, - "y": -10 - }, - { - "x": -80, - "y": 10 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -100, - "y": -10 - }, - { - "x": -80, - "y": 10 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "lim": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Limiter", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "lim", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "uMax", - "modification": { - "equal": true, - "expression": { - "simple_expression": "yMax" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "uMin", - "modification": { - "equal": true, - "expression": { - "simple_expression": "yMin" - } - } - } - } - } - ] - } - }, - "description": { - "description_string": "Limiter", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 120, - "y": 80 - }, - { - "x": 140, - "y": 100 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 120, - "y": 80 - }, - { - "x": 140, - "y": 100 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "revAct": { - "type_prefix": "parameter", - "type_specifier": "Real", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "revAct", - "modification": { - "equal": true, - "expression": { - "if_expression": { - "if_elseif": [ - { - "condition": { - "simple_expression": "reverseActing" - }, - "then": { - "simple_expression": "1" - } - } - ], - "else_expression": { - "simple_expression": "-1" - } - } - } - } - }, - "description": { - "description_string": "Switch for sign for reverse or direct acting controller" - } - }, - "annotation": null, - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "with_I": { - "type_prefix": "parameter", - "type_specifier": "Boolean", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "with_I", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "Buildings.Controls.OBC.CDL.Types.SimpleController.PI" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "Buildings.Controls.OBC.CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - }, - "description": { - "description_string": "Boolean flag to enable integral action", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Evaluate", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "HideResult", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Evaluate", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "HideResult", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "with_D": { - "type_prefix": "parameter", - "type_specifier": "Boolean", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "with_D", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "Buildings.Controls.OBC.CDL.Types.SimpleController.PD" - } - ], - "relation_operator": "==" - } - ] - }, - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "controllerType" - }, - { - "name": "Buildings.Controls.OBC.CDL.Types.SimpleController.PID" - } - ], - "relation_operator": "==" - } - ] - } - ] - } - } - } - } - }, - "description": { - "description_string": "Boolean flag to enable derivative action", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Evaluate", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "HideResult", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Evaluate", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "HideResult", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "kDer": { - "type_specifier": "Sources.Constant", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "kDer", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "k*Td" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_D" - } - }, - "description": { - "description_string": "Gain for derivative block", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -100, - "y": 110 - }, - { - "x": -80, - "y": 130 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -100, - "y": 110 - }, - { - "x": -80, - "y": 130 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "TDer": { - "type_specifier": "Sources.Constant", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "TDer", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "Td/Nd" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_D" - } - }, - "description": { - "description_string": "Time constant for approximation in derivative block", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -100, - "y": 80 - }, - { - "x": -80, - "y": 100 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -100, - "y": 80 - }, - { - "x": -80, - "y": 100 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "Dzero": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Sources.Constant", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "Dzero", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "0" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "not with_D" - } - }, - "description": { - "description_string": "Zero input signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Evaluate", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "HideResult", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -50, - "y": 90 - }, - { - "x": -30, - "y": 110 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "Evaluate", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "HideResult", - "modification": { - "equal": true, - "expression": { - "simple_expression": "true" - } - } - } - } - }, - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -50, - "y": 90 - }, - { - "x": -30, - "y": 110 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "uS_revAct": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "uS_revAct", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "revAct/r" - } - } - } - } - } - ] - } - }, - "description": { - "description_string": "Set point multiplied by reverse action sign", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -200, - "y": 30 - }, - { - "x": -180, - "y": 50 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -200, - "y": 30 - }, - { - "x": -180, - "y": 50 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "uMea_revAct": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "uMea_revAct", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "revAct/r" - } - } - } - } - } - ] - } - }, - "description": { - "description_string": "Set point multiplied by reverse action sign", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -200, - "y": -50 - }, - { - "x": -180, - "y": -30 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -200, - "y": -50 - }, - { - "x": -180, - "y": -30 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "addPD": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Add", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "addPD" - }, - "description": { - "description_string": "Outputs P and D gains added", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 20, - "y": 124 - }, - { - "x": 40, - "y": 144 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 20, - "y": 124 - }, - { - "x": 40, - "y": 144 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "addPID": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Add", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "addPID" - }, - "description": { - "description_string": "Outputs P, I and D gains added", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 80, - "y": 80 - }, - { - "x": 100, - "y": 100 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 80, - "y": 80 - }, - { - "x": 100, - "y": 100 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "antWinErr": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "antWinErr" - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_I" - } - }, - "description": { - "description_string": "Error for anti-windup compensation", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 160, - "y": 50 - }, - { - "x": 180, - "y": 70 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 160, - "y": 50 - }, - { - "x": 180, - "y": 70 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "antWinGai": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "antWinGai", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "1/(k*Ni)" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_I" - } - }, - "description": { - "description_string": "Gain for anti-windup compensation", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 180, - "y": -30 - }, - { - "x": 160, - "y": -10 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 180, - "y": -30 - }, - { - "x": 160, - "y": -10 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "cheYMinMax": { - "type_specifier": "Buildings.Controls.OBC.CDL.Logical.Sources.Constant", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "cheYMinMax", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": { - "logical_expression": { - "logical_or": [ - { - "logical_and": [ - { - "arithmetic_expressions": [ - { - "name": "yMin" - }, - { - "name": "yMax" - } - ], - "relation_operator": "<" - } - ] - } - ] - } - } - } - } - } - } - } - ] - } - }, - "description": { - "description_string": "Check for values of yMin and yMax", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 120, - "y": -160 - }, - { - "x": 140, - "y": -140 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 120, - "y": -160 - }, - { - "x": 140, - "y": -140 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "assMesYMinMax": { - "type_specifier": "Buildings.Controls.OBC.CDL.Utilities.Assert", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "assMesYMinMax", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "name": "message", - "modification": { - "equal": true, - "expression": { - "simple_expression": "\"LimPID: Limits must be yMin < yMax\"" - } - } - } - } - } - ] - } - }, - "description": { - "description_string": "Assertion on yMin and yMax", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 160, - "y": -160 - }, - { - "x": 180, - "y": -140 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": 160, - "y": -160 - }, - { - "x": 180, - "y": -140 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "Izero": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Sources.Constant", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "Izero", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "0" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "not with_I" - } - }, - "description": { - "description_string": "Zero input signal", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -50, - "y": 20 - }, - { - "x": -30, - "y": 40 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -50, - "y": 20 - }, - { - "x": -30, - "y": 40 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "con": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Sources.Constant", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "con", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "0" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_I" - } - }, - "description": { - "description_string": "Constant zero", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -100, - "y": -50 - }, - { - "x": -80, - "y": -30 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -100, - "y": -50 - }, - { - "x": -80, - "y": -30 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - }, - "con1": { - "type_specifier": "Buildings.Controls.OBC.CDL.Logical.Sources.Constant", - "type": "element", - "long_class_specifier_identifier": "PID", - "single_component_list": { - "declaration": { - "identifier": "con1", - "modification": { - "class_modification": [ - { - "element_modification_or_replaceable": { - "final": true, - "element_modification": { - "name": "k", - "modification": { - "equal": true, - "expression": { - "simple_expression": "false" - } - } - } - } - } - ] - } - }, - "condition_attribute": { - "expression": { - "simple_expression": "with_I" - } - }, - "description": { - "description_string": "Constant false", - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -100, - "y": -90 - }, - { - "x": -80, - "y": -70 - } - ] - } - } - } - } - } - ] - } - }, - "annotation": [ - { - "element_modification_or_replaceable": { - "element_modification": { - "Placement": { - "transformation": { - "extent": [ - { - "x": -100, - "y": -90 - }, - { - "x": -80, - "y": -70 - } - ] - } - } - } - } - } - ], - "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PID.mo" - } - }, - "requiredReferences": { - "connections": { - "u_s": [ - "uS_revAct.u", - "controlError.u1" - ], - "u_m": [ - "uMea_revAct.u", - "controlError.u2" - ], - "D.u": [ - "errD.y" - ], - "errI1.u1": [ - "uS_revAct.y" - ], - "addPID.u1": [ - "addPD.y" - ], - "lim.y": [ - "y" - ], - "antWinErr.y": [ - "antWinGai.u" - ], - "addPD.u2": [ - "Dzero.y" - ], - "D.y": [ - "addPD.u2" - ], - "addPID.u2": [ - "I.y" - ], - "antWinErr.u2": [ - "lim.y" - ], - "I.u": [ - "errI2.y" - ], - "errI1.y": [ - "errI2.u1" - ], - "cheYMinMax.y": [ - "assMesYMinMax.u" - ], - "Izero.y": [ - "addPID.u2" - ], - "con.y": [ - "I.y_reset_in" - ], - "con1.y": [ - "I.trigger" - ], - "uS_revAct.y": [ - "errP.u1" - ], - "errD.u1": [ - "uS_revAct.y" - ], - "addPD.u1": [ - "P.y" - ], - "P.u": [ - "errP.y" - ], - "addPID.y": [ - "lim.u", - "antWinErr.u1" - ], - "uMea_revAct.y": [ - "errP.u2", - "errD.u2", - "errI1.u2" - ], - "antWinGai.y": [ - "errI2.u2" - ], - "kDer.y": [ - "D.k" - ], - "TDer.y": [ - "D.T" - ] - } - } -} \ No newline at end of file diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Integers/Equal.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Integers/Equal.json index f0f13efe..4f729e00 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Integers/Equal.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Integers/Equal.json @@ -2,7 +2,7 @@ "instances": { "Equal": { "within": "Buildings.Controls.OBC.CDL.Integers", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Equal.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Equal.mo", "type": "long_class_specifier", "annotation": [ { @@ -294,7 +294,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Integers", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Equal.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Equal.mo" }, "u2": { "type_specifier": "Interfaces.IntegerInput", @@ -354,7 +354,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Integers", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Equal.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Equal.mo" }, "y": { "type_specifier": "Interfaces.BooleanOutput", @@ -414,7 +414,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Integers", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Equal.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Equal.mo" } }, "requiredReferences": { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.json index 245f50ff..7b2c00aa 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.json @@ -2,7 +2,7 @@ "instances": { "Constant": { "within": "Buildings.Controls.OBC.CDL.Integers.Sources", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.mo", "type": "long_class_specifier", "annotation": [ { @@ -290,7 +290,7 @@ "annotation": null, "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Integers.Sources", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.mo" }, "y": { "type_specifier": "Interfaces.IntegerOutput", @@ -350,7 +350,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Integers.Sources", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Integers/Sources/Constant.mo" } }, "requiredReferences": { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.json index bb89ee5c..d4427fff 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.json @@ -226,7 +226,7 @@ } }, "within": "Buildings.Controls.OBC.CDL.Interfaces", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/BooleanInput.mo" } }, "requiredReferences": {} diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.json index 4cab10d7..1dc5f320 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.json @@ -226,7 +226,7 @@ } }, "within": "Buildings.Controls.OBC.CDL.Interfaces", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/BooleanOutput.mo" } }, "requiredReferences": {} diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.json index d30b020c..def3ea62 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.json @@ -226,7 +226,7 @@ } }, "within": "Buildings.Controls.OBC.CDL.Interfaces", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/IntegerInput.mo" } }, "requiredReferences": {} diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.json index 32e7e6cf..27254871 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.json @@ -226,7 +226,7 @@ } }, "within": "Buildings.Controls.OBC.CDL.Interfaces", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/IntegerOutput.mo" } }, "requiredReferences": {} diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/RealInput.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/RealInput.json index 45098cf7..a67199eb 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/RealInput.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/RealInput.json @@ -226,7 +226,7 @@ } }, "within": "Buildings.Controls.OBC.CDL.Interfaces", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/RealInput.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/RealInput.mo" } }, "requiredReferences": {} diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/RealOutput.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/RealOutput.json index 4f46396f..549bebea 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/RealOutput.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/RealOutput.json @@ -222,7 +222,7 @@ } }, "within": "Buildings.Controls.OBC.CDL.Interfaces", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/RealOutput.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/RealOutput.mo" } }, "requiredReferences": {} diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/package.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/package.json index 9988f317..af5f82fd 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/package.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Interfaces/package.json @@ -2,7 +2,7 @@ "instances": { "Interfaces": { "within": "Buildings.Controls.OBC.CDL", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/package.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Interfaces/package.mo", "type": "long_class_specifier", "annotation": [ { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/And.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/And.json index 91c572e3..15bdaef4 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/And.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/And.json @@ -2,7 +2,7 @@ "instances": { "And": { "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/And.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/And.mo", "type": "long_class_specifier", "annotation": [ { @@ -297,7 +297,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/And.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/And.mo" }, "u2": { "type_specifier": "Interfaces.BooleanInput", @@ -357,7 +357,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/And.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/And.mo" }, "y": { "type_specifier": "Interfaces.BooleanOutput", @@ -417,7 +417,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/And.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/And.mo" } }, "requiredReferences": { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/Not.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/Not.json index c396ca57..e705ba2b 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/Not.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/Not.json @@ -2,7 +2,7 @@ "instances": { "Not": { "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Not.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Not.mo", "type": "long_class_specifier", "annotation": [ { @@ -250,7 +250,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Not.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Not.mo" }, "y": { "type_specifier": "Interfaces.BooleanOutput", @@ -310,7 +310,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Not.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Not.mo" } }, "requiredReferences": { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/Or.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/Or.json index 47577de7..f6f6a0fe 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/Or.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/Or.json @@ -2,7 +2,7 @@ "instances": { "Or": { "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Or.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Or.mo", "type": "long_class_specifier", "annotation": [ { @@ -297,7 +297,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Or.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Or.mo" }, "u2": { "type_specifier": "Interfaces.BooleanInput", @@ -357,7 +357,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Or.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Or.mo" }, "y": { "type_specifier": "Interfaces.BooleanOutput", @@ -417,7 +417,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Or.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Or.mo" } }, "requiredReferences": { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.json index 8e8d748f..f76b44a7 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.json @@ -2,7 +2,7 @@ "instances": { "Constant": { "within": "Buildings.Controls.OBC.CDL.Logical.Sources", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.mo", "type": "long_class_specifier", "annotation": [ { @@ -313,7 +313,7 @@ "annotation": null, "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical.Sources", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.mo" }, "y": { "type_specifier": "Interfaces.BooleanOutput", @@ -373,7 +373,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical.Sources", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/Sources/Constant.mo" } }, "requiredReferences": { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/TrueDelay.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/TrueDelay.json index bcded9a6..13c70f9a 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/TrueDelay.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/TrueDelay.json @@ -2,7 +2,7 @@ "instances": { "TrueDelay": { "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo", "type": "long_class_specifier", "annotation": [ { @@ -309,7 +309,7 @@ "annotation": null, "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo" }, "delayOnInit": { "type_prefix": "parameter", @@ -333,7 +333,7 @@ "annotation": null, "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo" }, "u": { "type_specifier": "Interfaces.BooleanInput", @@ -393,7 +393,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo" }, "y": { "type_specifier": "Interfaces.BooleanOutput", @@ -453,7 +453,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo" }, "t_past": { "type_prefix": "parameter", @@ -516,7 +516,7 @@ "annotation": null, "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo" }, "t_next": { "type_specifier": "Real", @@ -565,7 +565,7 @@ "annotation": null, "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueDelay.mo" } }, "requiredReferences": { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.json index 5862a8ea..c129550e 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.json @@ -2,7 +2,7 @@ "instances": { "TrueFalseHold": { "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo", "type": "long_class_specifier", "annotation": [ { @@ -431,7 +431,7 @@ "annotation": null, "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" }, "falseHoldDuration": { "type_prefix": "parameter", @@ -485,7 +485,7 @@ "annotation": null, "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" }, "u": { "type_specifier": "Interfaces.BooleanInput", @@ -569,7 +569,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" }, "y": { "type_specifier": "Interfaces.BooleanOutput", @@ -653,7 +653,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" }, "onDel1": { "type_specifier": "Buildings.Controls.OBC.CDL.Logical.TrueDelay", @@ -730,7 +730,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" }, "onDel2": { "type_specifier": "Buildings.Controls.OBC.CDL.Logical.TrueDelay", @@ -807,7 +807,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" }, "stateGraphRoot": { "type_specifier": "Modelica.StateGraph.StateGraphRoot", @@ -867,7 +867,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" }, "outputFalse": { "type_specifier": "Modelica.StateGraph.StepWithSignal", @@ -957,7 +957,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" }, "toTrue": { "type_specifier": "Modelica.StateGraph.TransitionWithSignal", @@ -1017,7 +1017,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" }, "notU": { "type_specifier": "CDL.Logical.Not", @@ -1077,7 +1077,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" }, "outputTrue": { "type_specifier": "Modelica.StateGraph.StepWithSignal", @@ -1167,7 +1167,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" }, "toFalse": { "type_specifier": "Modelica.StateGraph.TransitionWithSignal", @@ -1227,7 +1227,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" }, "and2": { "type_specifier": "CDL.Logical.And", @@ -1287,7 +1287,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" }, "and1": { "type_specifier": "CDL.Logical.And", @@ -1347,7 +1347,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" }, "initialStep": { "type_specifier": "Modelica.StateGraph.InitialStep", @@ -1437,7 +1437,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" }, "toTrue1": { "type_specifier": "Modelica.StateGraph.TransitionWithSignal", @@ -1497,7 +1497,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" }, "toFalse1": { "type_specifier": "Modelica.StateGraph.TransitionWithSignal", @@ -1557,23 +1557,23 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueFalseHold.mo" } }, "requiredReferences": { "connections": { - "outputTrue.outPort": [ + "outputTrue.outPort[1]": [ "toFalse.inPort" ], "outputTrue.active": [ "y", "onDel2.u" ], - "outputFalse.outPort": [ + "outputFalse.outPort[1]": [ "toTrue.inPort" ], "toFalse.outPort": [ - "outputFalse.inPort" + "outputFalse.inPort[1]" ], "notU.y": [ "and2.u2", @@ -1593,16 +1593,18 @@ "toTrue.condition" ], "toTrue1.outPort": [ - "outputTrue.inPort" + "outputTrue.inPort[1]" ], "toTrue.outPort": [ - "outputTrue.inPort" + "outputTrue.inPort[2]" ], "toFalse1.outPort": [ - "outputFalse.inPort" + "outputFalse.inPort[2]" ], - "initialStep.outPort": [ - "toTrue1.inPort", + "initialStep.outPort[1]": [ + "toTrue1.inPort" + ], + "initialStep.outPort[2]": [ "toFalse1.inPort" ], "notU.u": [ diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.json index 00939c9a..6503b4d4 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.json @@ -2,7 +2,7 @@ "instances": { "TrueHoldWithReset": { "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo", "type": "long_class_specifier", "annotation": [ { @@ -309,7 +309,7 @@ "annotation": null, "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo" }, "u": { "type_specifier": "Interfaces.BooleanInput", @@ -369,7 +369,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo" }, "y": { "type_specifier": "Interfaces.BooleanOutput", @@ -429,7 +429,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo" }, "stateGraphRoot": { "type_specifier": "Modelica.StateGraph.StateGraphRoot", @@ -489,7 +489,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo" }, "onDelay": { "type_specifier": "Buildings.Controls.OBC.CDL.Logical.TrueDelay", @@ -567,7 +567,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo" }, "initialStep": { "type_specifier": "Modelica.StateGraph.InitialStep", @@ -657,7 +657,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo" }, "outputTrue": { "type_specifier": "Modelica.StateGraph.StepWithSignal", @@ -747,7 +747,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo" }, "toOutputTrue": { "type_specifier": "Modelica.StateGraph.TransitionWithSignal", @@ -807,7 +807,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo" }, "toInitial": { "type_specifier": "Modelica.StateGraph.TransitionWithSignal", @@ -867,12 +867,12 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Logical", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Logical/TrueHoldWithReset.mo" } }, "requiredReferences": { "connections": { - "initialStep.outPort": [ + "initialStep.outPort[1]": [ "toOutputTrue.inPort" ], "outputTrue.active": [ @@ -883,12 +883,12 @@ "u" ], "toInitial.outPort": [ - "initialStep.inPort" + "initialStep.inPort[1]" ], "toOutputTrue.outPort": [ - "outputTrue.inPort" + "outputTrue.inPort[1]" ], - "outputTrue.outPort": [ + "outputTrue.outPort[1]": [ "toInitial.inPort" ], "onDelay.y": [ diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Add.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Reals/Add.json similarity index 95% rename from test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Add.json rename to test/reference/objects/Buildings/Controls/OBC/CDL/Reals/Add.json index f658a685..fc154148 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Add.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Reals/Add.json @@ -1,8 +1,8 @@ { "instances": { "Add": { - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Add.mo", + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Add.mo", "type": "long_class_specifier", "annotation": [ { @@ -331,8 +331,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Add.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Add.mo" }, "u2": { "type_specifier": "Interfaces.RealInput", @@ -391,8 +391,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Add.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Add.mo" }, "y": { "type_specifier": "Interfaces.RealOutput", @@ -451,8 +451,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Add.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Add.mo" } }, "requiredReferences": { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Derivative.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Reals/Derivative.json similarity index 94% rename from test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Derivative.json rename to test/reference/objects/Buildings/Controls/OBC/CDL/Reals/Derivative.json index a61e60a3..a3b3d201 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Derivative.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Reals/Derivative.json @@ -1,8 +1,8 @@ { "instances": { "Derivative": { - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Derivative.mo", + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Derivative.mo", "type": "long_class_specifier", "annotation": [ { @@ -452,8 +452,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Derivative.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Derivative.mo" }, "k": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealInput", @@ -512,8 +512,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Derivative.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Derivative.mo" }, "T": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealInput", @@ -617,8 +617,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Derivative.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Derivative.mo" }, "u": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealInput", @@ -677,8 +677,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Derivative.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Derivative.mo" }, "y": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealOutput", @@ -737,8 +737,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Derivative.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Derivative.mo" }, "T_nonZero": { "type_specifier": "Real", @@ -772,8 +772,8 @@ }, "annotation": null, "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Derivative.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Derivative.mo" }, "x": { "type_prefix": "output", @@ -790,8 +790,8 @@ }, "annotation": null, "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Derivative.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Derivative.mo" } }, "requiredReferences": { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Reals/IntegratorWithReset.json similarity index 93% rename from test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.json rename to test/reference/objects/Buildings/Controls/OBC/CDL/Reals/IntegratorWithReset.json index 5cee2ddb..6cdd9f53 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Reals/IntegratorWithReset.json @@ -1,8 +1,8 @@ { "instances": { "IntegratorWithReset": { - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.mo", + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/IntegratorWithReset.mo", "type": "long_class_specifier", "annotation": [ { @@ -108,7 +108,7 @@ "y": 50 } ], - "fileName": "\"modelica://Buildings/Resources/Images/Controls/OBC/CDL/Continuous/int.png\"" + "fileName": "\"modelica://Buildings/Resources/Images/Controls/OBC/CDL/Reals/int.png\"" } }, { @@ -289,8 +289,8 @@ }, "annotation": null, "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/IntegratorWithReset.mo" }, "y_start": { "type_prefix": "parameter", @@ -364,8 +364,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/IntegratorWithReset.mo" }, "u": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealInput", @@ -424,8 +424,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/IntegratorWithReset.mo" }, "y_reset_in": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealInput", @@ -484,8 +484,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/IntegratorWithReset.mo" }, "trigger": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.BooleanInput", @@ -588,8 +588,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/IntegratorWithReset.mo" }, "y": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealOutput", @@ -648,8 +648,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/IntegratorWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/IntegratorWithReset.mo" } }, "requiredReferences": { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Limiter.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Reals/Limiter.json similarity index 95% rename from test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Limiter.json rename to test/reference/objects/Buildings/Controls/OBC/CDL/Reals/Limiter.json index 8c1680a5..ce33d86b 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Limiter.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Reals/Limiter.json @@ -1,8 +1,8 @@ { "instances": { "Limiter": { - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Limiter.mo", + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Limiter.mo", "type": "long_class_specifier", "annotation": [ { @@ -384,8 +384,8 @@ }, "annotation": null, "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Limiter.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Limiter.mo" }, "uMin": { "type_prefix": "parameter", @@ -402,8 +402,8 @@ }, "annotation": null, "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Limiter.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Limiter.mo" }, "u": { "type_specifier": "Interfaces.RealInput", @@ -462,8 +462,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Limiter.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Limiter.mo" }, "y": { "type_specifier": "Interfaces.RealOutput", @@ -522,8 +522,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Limiter.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Limiter.mo" } }, "requiredReferences": { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Reals/MultiplyByParameter.json similarity index 93% rename from test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.json rename to test/reference/objects/Buildings/Controls/OBC/CDL/Reals/MultiplyByParameter.json index 63f94cea..8c666f32 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Reals/MultiplyByParameter.json @@ -1,8 +1,8 @@ { "instances": { "MultiplyByParameter": { - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.mo", + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/MultiplyByParameter.mo", "type": "long_class_specifier", "annotation": [ { @@ -208,8 +208,8 @@ }, "annotation": null, "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/MultiplyByParameter.mo" }, "u": { "type_specifier": "Interfaces.RealInput", @@ -268,8 +268,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/MultiplyByParameter.mo" }, "y": { "type_specifier": "Interfaces.RealOutput", @@ -328,8 +328,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/MultiplyByParameter.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/MultiplyByParameter.mo" } }, "requiredReferences": { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.json similarity index 94% rename from test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.json rename to test/reference/objects/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.json index a2564a0f..38c64163 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.json @@ -1,8 +1,8 @@ { "instances": { "PIDWithReset": { - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo", + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo", "type": "long_class_specifier", "annotation": [ { @@ -595,8 +595,8 @@ }, "annotation": null, "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "k": { "type_prefix": "parameter", @@ -685,8 +685,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "Ti": { "type_prefix": "parameter", @@ -899,8 +899,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "Td": { "type_prefix": "parameter", @@ -1113,8 +1113,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "r": { "type_prefix": "parameter", @@ -1152,8 +1152,8 @@ }, "annotation": null, "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "yMax": { "type_prefix": "parameter", @@ -1227,8 +1227,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "yMin": { "type_prefix": "parameter", @@ -1302,8 +1302,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "Ni": { "type_prefix": "parameter", @@ -1514,8 +1514,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "Nd": { "type_prefix": "parameter", @@ -1726,8 +1726,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "xi_start": { "type_prefix": "parameter", @@ -1923,8 +1923,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "yd_start": { "type_prefix": "parameter", @@ -2120,8 +2120,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "reverseActing": { "type_prefix": "parameter", @@ -2144,8 +2144,8 @@ }, "annotation": null, "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "y_reset": { "type_prefix": "parameter", @@ -2315,8 +2315,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "u_s": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealInput", @@ -2399,8 +2399,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "u_m": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealInput", @@ -2503,8 +2503,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "y": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealOutput", @@ -2587,8 +2587,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "trigger": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.BooleanInput", @@ -2691,11 +2691,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "controlError": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Subtract", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -2751,11 +2751,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "P": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -2829,11 +2829,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "I": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.IntegratorWithReset", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.IntegratorWithReset", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -2926,11 +2926,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "D": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Derivative", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Derivative", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -3009,11 +3009,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "errP": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Subtract", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -3069,11 +3069,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "errD": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Subtract", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -3134,11 +3134,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "errI1": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Subtract", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -3199,11 +3199,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "errI2": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Subtract", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -3264,11 +3264,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "lim": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Limiter", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Limiter", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -3356,8 +3356,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "revAct": { "type_prefix": "parameter", @@ -3394,8 +3394,8 @@ }, "annotation": null, "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "with_I": { "type_prefix": "parameter", @@ -3508,8 +3508,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "with_D": { "type_prefix": "parameter", @@ -3622,8 +3622,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "kDer": { "type_specifier": "Sources.Constant", @@ -3704,8 +3704,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "TDer": { "type_specifier": "Sources.Constant", @@ -3786,11 +3786,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "Dzero": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Sources.Constant", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Sources.Constant", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -3921,11 +3921,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "Izero": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Sources.Constant", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Sources.Constant", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -4004,11 +4004,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "uS_revAct": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -4082,11 +4082,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "uMea_revAct": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -4160,11 +4160,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "addPD": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Add", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Add", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -4220,11 +4220,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "addPID": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Add", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Add", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -4280,11 +4280,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "antWinErr": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Subtract", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -4345,11 +4345,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "antWinGai": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.MultiplyByParameter", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -4427,11 +4427,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "yResSig": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Sources.Constant", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Sources.Constant", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -4510,11 +4510,11 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "addRes": { - "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Subtract", + "type_specifier": "Buildings.Controls.OBC.CDL.Reals.Subtract", "type": "element", "long_class_specifier_identifier": "PIDWithReset", "single_component_list": { @@ -4575,8 +4575,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "cheYMinMax": { "type_specifier": "Buildings.Controls.OBC.CDL.Logical.Sources.Constant", @@ -4673,8 +4673,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" }, "assMesYMinMax": { "type_specifier": "Buildings.Controls.OBC.CDL.Utilities.Assert", @@ -4750,8 +4750,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/PIDWithReset.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/PIDWithReset.mo" } }, "requiredReferences": { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Sources/Constant.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Reals/Sources/Constant.json similarity index 95% rename from test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Sources/Constant.json rename to test/reference/objects/Buildings/Controls/OBC/CDL/Reals/Sources/Constant.json index c7cc27d2..09b5e78b 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Sources/Constant.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Reals/Sources/Constant.json @@ -1,8 +1,8 @@ { "instances": { "Constant": { - "within": "Buildings.Controls.OBC.CDL.Continuous.Sources", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Sources/Constant.mo", + "within": "Buildings.Controls.OBC.CDL.Reals.Sources", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Sources/Constant.mo", "type": "long_class_specifier", "annotation": [ { @@ -281,7 +281,7 @@ "modification": { "equal": true, "expression": { - "simple_expression": "\"\n

\nBlock that outputs a constant signal y = k,\nwhere k is a real-valued parameter.\n

\n

\n\\\"Constant.png\\\"\n

\n\"" + "simple_expression": "\"\n

\nBlock that outputs a constant signal y = k,\nwhere k is a real-valued parameter.\n

\n

\n\\\"Constant.png\\\"\n

\n\"" } } } @@ -323,8 +323,8 @@ }, "annotation": null, "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous.Sources", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Sources/Constant.mo" + "within": "Buildings.Controls.OBC.CDL.Reals.Sources", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Sources/Constant.mo" }, "y": { "type_specifier": "Interfaces.RealOutput", @@ -383,8 +383,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous.Sources", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Sources/Constant.mo" + "within": "Buildings.Controls.OBC.CDL.Reals.Sources", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Sources/Constant.mo" } }, "requiredReferences": { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Subtract.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Reals/Subtract.json similarity index 95% rename from test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Subtract.json rename to test/reference/objects/Buildings/Controls/OBC/CDL/Reals/Subtract.json index 44d82d7e..d2ae902c 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Subtract.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Reals/Subtract.json @@ -1,8 +1,8 @@ { "instances": { "Subtract": { - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Subtract.mo", + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Subtract.mo", "type": "long_class_specifier", "annotation": [ { @@ -336,8 +336,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Subtract.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Subtract.mo" }, "u2": { "type_specifier": "Interfaces.RealInput", @@ -396,8 +396,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Subtract.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Subtract.mo" }, "y": { "type_specifier": "Interfaces.RealOutput", @@ -456,8 +456,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Subtract.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Subtract.mo" } }, "requiredReferences": { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Switch.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Reals/Switch.json similarity index 95% rename from test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Switch.json rename to test/reference/objects/Buildings/Controls/OBC/CDL/Reals/Switch.json index ea4cb801..c8fc3def 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Continuous/Switch.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Reals/Switch.json @@ -1,8 +1,8 @@ { "instances": { "Switch": { - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Switch.mo", + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Switch.mo", "type": "long_class_specifier", "annotation": [ { @@ -428,8 +428,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Switch.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Switch.mo" }, "u2": { "type_specifier": "Interfaces.BooleanInput", @@ -488,8 +488,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Switch.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Switch.mo" }, "u3": { "type_specifier": "Interfaces.RealInput", @@ -548,8 +548,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Switch.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Switch.mo" }, "y": { "type_specifier": "Interfaces.RealOutput", @@ -608,8 +608,8 @@ } ], "semantics": {}, - "within": "Buildings.Controls.OBC.CDL.Continuous", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Continuous/Switch.mo" + "within": "Buildings.Controls.OBC.CDL.Reals", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Reals/Switch.mo" } }, "requiredReferences": { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Types/SimpleController.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Types/SimpleController.json index e0007f0e..bb55a50f 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Types/SimpleController.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Types/SimpleController.json @@ -1,49 +1,4 @@ { - "instances": { - "P": { - "type": "enumeration", - "enumeration_literal": { - "identifier": "P", - "description": { - "description_string": "P controller" - } - }, - "within": "Buildings.Controls.OBC.CDL.Types", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Types/SimpleController.mo" - }, - "PI": { - "type": "enumeration", - "enumeration_literal": { - "identifier": "PI", - "description": { - "description_string": "PI controller" - } - }, - "within": "Buildings.Controls.OBC.CDL.Types", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Types/SimpleController.mo" - }, - "PD": { - "type": "enumeration", - "enumeration_literal": { - "identifier": "PD", - "description": { - "description_string": "PD controller" - } - }, - "within": "Buildings.Controls.OBC.CDL.Types", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Types/SimpleController.mo" - }, - "PID": { - "type": "enumeration", - "enumeration_literal": { - "identifier": "PID", - "description": { - "description_string": "PID controller" - } - }, - "within": "Buildings.Controls.OBC.CDL.Types", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Types/SimpleController.mo" - } - }, + "instances": {}, "requiredReferences": {} } \ No newline at end of file diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/Utilities/Assert.json b/test/reference/objects/Buildings/Controls/OBC/CDL/Utilities/Assert.json index 6855805d..af83d3ee 100644 --- a/test/reference/objects/Buildings/Controls/OBC/CDL/Utilities/Assert.json +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/Utilities/Assert.json @@ -2,7 +2,7 @@ "instances": { "Assert": { "within": "Buildings.Controls.OBC.CDL.Utilities", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Utilities/Assert.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Utilities/Assert.mo", "type": "long_class_specifier", "annotation": [ { @@ -253,7 +253,7 @@ "annotation": null, "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Utilities", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Utilities/Assert.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Utilities/Assert.mo" }, "u": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.BooleanInput", @@ -313,7 +313,7 @@ ], "semantics": {}, "within": "Buildings.Controls.OBC.CDL.Utilities", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-buildings/Buildings/Controls/OBC/CDL/Utilities/Assert.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/Utilities/Assert.mo" } }, "requiredReferences": { diff --git a/test/reference/objects/Buildings/Controls/OBC/CDL/package.json b/test/reference/objects/Buildings/Controls/OBC/CDL/package.json new file mode 100644 index 00000000..093aec73 --- /dev/null +++ b/test/reference/objects/Buildings/Controls/OBC/CDL/package.json @@ -0,0 +1,220 @@ +{ + "instances": { + "CDL": { + "within": "Buildings.Controls.OBC", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-buildings/Buildings/Controls/OBC/CDL/package.mo", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nPackage that has elementary input-output blocks\nthat form the Control Description Language (CDL).\nThe implementation is structured into sub-packages.\nThe packages Validation and Examples\ncontain validation and example models.\nThese are not part of the CDL specification, but rather\nimplemented to provide reference responses computed by the CDL blocks.\nFor a specification of CDL, see\n\nhttps://obc.lbl.gov/specification/cdl.html.\n

\n\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "revisions", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n
    \n
  • \nDecember 22, 2016, by Michael Wetter:
    \nFirt implementation, based on the blocks from the Modelica Standard Library.\n
  • \n
\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 200, + "g": 200, + "b": 200 + }, + "fillColor": { + "r": 248, + "g": 248, + "b": 248 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + } + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -80, + "y": -80 + }, + { + "x": -20, + "y": -20 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "fillColor": { + "r": 76, + "g": 76, + "b": 76 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 0, + "y": -80 + }, + { + "x": 60, + "y": -20 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 60 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -80, + "y": 0 + }, + { + "x": -20, + "y": 60 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + } + ], + "semantics": {} + } + }, + "requiredReferences": {} +} \ No newline at end of file diff --git a/test/reference/objects/Modelica/Icons.json b/test/reference/objects/Modelica/Icons.json new file mode 100644 index 00000000..87383e5b --- /dev/null +++ b/test/reference/objects/Modelica/Icons.json @@ -0,0 +1,6670 @@ +{ + "instances": { + "Icons": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -15.833, + "y": 20 + }, + { + "x": -15.833, + "y": 30 + }, + { + "x": 14.167, + "y": 40 + }, + { + "x": 24.167, + "y": 20 + }, + { + "x": 4.167, + "y": -30 + }, + { + "x": 14.167, + "y": -30 + }, + { + "x": 24.167, + "y": -30 + }, + { + "x": 24.167, + "y": -40 + }, + { + "x": -5.833, + "y": -50 + }, + { + "x": -15.833, + "y": -30 + }, + { + "x": 4.167, + "y": 20 + }, + { + "x": -5.833, + "y": 20 + } + ], + "smooth": "Smooth.Bezier", + "origin": { + "x": -8.167, + "y": -17 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -12.5, + "y": -12.5 + }, + { + "x": 12.5, + "y": 12.5 + } + ], + "origin": { + "x": -0.5, + "y": 56.5 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This package contains definitions for the graphical layout of components which may be used in different libraries. The icons can be utilized by inheriting them in the desired class using "extends" or by directly copying the "icon" layer.

\n\n

Main Authors:

\n\n
\n
Martin Otter
\n
Deutsches Zentrum fuer Luft und Raumfahrt e.V. (DLR)
\n
Oberpfaffenhofen
\n
Postfach 1116
\n
D-82230 Wessling
\n
email: Martin.Otter@dlr.de
\n
Christian Kral
\n\n
Electric Machines, Drives and Systems
\n
\n
1060 Vienna, Austria
\n
email: dr.christian.kral@gmail.com
\n
Johan Andreasson
\n
Modelon AB
\n
Ideon Science Park
\n
22370 Lund, Sweden
\n
email: johan.andreasson@modelon.se
\n
\n\n

\nCopyright © 1998-2019, Modelica Association and contributors\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "Information": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial class", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "lineColor": { + "r": 75, + "g": 138, + "b": 73 + }, + "fillColor": { + "r": 75, + "g": 138, + "b": 73 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -15.833, + "y": 20 + }, + { + "x": -15.833, + "y": 30 + }, + { + "x": 14.167, + "y": 40 + }, + { + "x": 24.167, + "y": 20 + }, + { + "x": 4.167, + "y": -30 + }, + { + "x": 14.167, + "y": -30 + }, + { + "x": 24.167, + "y": -30 + }, + { + "x": 24.167, + "y": -40 + }, + { + "x": -5.833, + "y": -50 + }, + { + "x": -15.833, + "y": -30 + }, + { + "x": 4.167, + "y": 20 + }, + { + "x": -5.833, + "y": 20 + } + ], + "smooth": "Smooth.Bezier", + "origin": { + "x": -4.167, + "y": -15 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -12.5, + "y": -12.5 + }, + { + "x": 12.5, + "y": 12.5 + } + ], + "origin": { + "x": 7.5, + "y": 56.5 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates classes containing only documentation, intended for general description of, e.g., concepts and features of a package.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "Contact": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial class", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 70 + }, + { + "x": 100, + "y": -72 + } + ], + "fillColor": { + "r": 235, + "g": 235, + "b": 235 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": -72 + }, + { + "x": 100, + "y": -72 + }, + { + "x": 0, + "y": 20 + }, + { + "x": -100, + "y": -72 + } + ], + "fillColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 22, + "y": 0 + }, + { + "x": 100, + "y": 70 + }, + { + "x": 100, + "y": -72 + }, + { + "x": 22, + "y": 0 + } + ], + "fillColor": { + "r": 235, + "g": 235, + "b": 235 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": 70 + }, + { + "x": 100, + "y": 70 + }, + { + "x": 0, + "y": -20 + }, + { + "x": -100, + "y": 70 + } + ], + "fillColor": { + "r": 241, + "g": 241, + "b": 241 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon shall be used for the contact information of the library developers.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "ReleaseNotes": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial class", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -80, + "y": -100 + }, + { + "x": -80, + "y": 100 + }, + { + "x": 0, + "y": 100 + }, + { + "x": 0, + "y": 20 + }, + { + "x": 80, + "y": 20 + }, + { + "x": 80, + "y": -100 + }, + { + "x": -80, + "y": -100 + } + ], + "fillColor": { + "r": 245, + "g": 245, + "b": 245 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 0, + "y": 100 + }, + { + "x": 80, + "y": 20 + }, + { + "x": 0, + "y": 20 + }, + { + "x": 0, + "y": 100 + } + ], + "fillColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 2, + "y": -12 + }, + { + "x": 50, + "y": -12 + } + ] + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -56, + "y": 2 + }, + { + "x": -28, + "y": -26 + } + ], + "fillColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 2, + "y": -60 + }, + { + "x": 50, + "y": -60 + } + ] + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -56, + "y": -46 + }, + { + "x": -28, + "y": -74 + } + ], + "fillColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates release notes and the revision history of a library.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "References": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial class", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": -80 + }, + { + "x": -100, + "y": 60 + }, + { + "x": -80, + "y": 54 + }, + { + "x": -80, + "y": 80 + }, + { + "x": -40, + "y": 58 + }, + { + "x": -40, + "y": 100 + }, + { + "x": -10, + "y": 60 + }, + { + "x": 90, + "y": 60 + }, + { + "x": 100, + "y": 40 + }, + { + "x": 100, + "y": -100 + }, + { + "x": -20, + "y": -100 + }, + { + "x": -100, + "y": -80 + } + ], + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + }, + "fillColor": { + "r": 245, + "g": 245, + "b": 245 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -20, + "y": -100 + }, + { + "x": -10, + "y": -80 + }, + { + "x": 90, + "y": -80 + }, + { + "x": 100, + "y": -100 + }, + { + "x": -20, + "y": -100 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 90, + "y": -80 + }, + { + "x": 90, + "y": 60 + }, + { + "x": 100, + "y": 40 + }, + { + "x": 100, + "y": -100 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 90, + "y": 60 + }, + { + "x": -10, + "y": 60 + }, + { + "x": -10, + "y": -80 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -10, + "y": 60 + }, + { + "x": -40, + "y": 100 + }, + { + "x": -40, + "y": -40 + }, + { + "x": -10, + "y": -80 + }, + { + "x": -10, + "y": 60 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -20, + "y": -88 + }, + { + "x": -80, + "y": -60 + }, + { + "x": -80, + "y": 80 + }, + { + "x": -40, + "y": 58 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -20, + "y": -100 + }, + { + "x": -100, + "y": -80 + }, + { + "x": -100, + "y": 60 + }, + { + "x": -80, + "y": 54 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 10, + "y": 30 + }, + { + "x": 72, + "y": 30 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 10, + "y": -10 + }, + { + "x": 70, + "y": -10 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 10, + "y": -50 + }, + { + "x": 70, + "y": -50 + } + ] + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates a documentation class containing references to external documentation and literature.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "ExamplesPackage": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -58, + "y": 46 + }, + { + "x": 42, + "y": -14 + }, + { + "x": -58, + "y": -74 + }, + { + "x": -58, + "y": 46 + } + ], + "origin": { + "x": 8, + "y": 14 + }, + "lineColor": { + "r": 78, + "g": 138, + "b": 73 + }, + "fillColor": { + "r": 78, + "g": 138, + "b": 73 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates a package that contains executable examples.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "Example": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial model", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "lineColor": { + "r": 75, + "g": 138, + "b": 73 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -36, + "y": 60 + }, + { + "x": 64, + "y": 0 + }, + { + "x": -36, + "y": -60 + }, + { + "x": -36, + "y": 60 + } + ], + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + }, + "fillColor": { + "r": 75, + "g": 138, + "b": 73 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates an example. The play button suggests that the example can be executed.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "Package": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 200, + "g": 200, + "b": 200 + }, + "fillColor": { + "r": 248, + "g": 248, + "b": 248 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

Standard package icon.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "BasesPackage": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -30, + "y": -30 + }, + { + "x": 30, + "y": 30 + } + ], + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon shall be used for a package/library that contains base models and classes, respectively.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "VariantsPackage": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -80, + "y": -80 + }, + { + "x": -20, + "y": -20 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "fillColor": { + "r": 76, + "g": 76, + "b": 76 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 0, + "y": -80 + }, + { + "x": 60, + "y": -20 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 0, + "y": 0 + }, + { + "x": 60, + "y": 60 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -80, + "y": 0 + }, + { + "x": -20, + "y": 60 + } + ], + "origin": { + "x": 10, + "y": 10 + }, + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon shall be used for a package/library that contains several variants of one component.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "InterfacesPackage": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -10, + "y": 70 + }, + { + "x": 10, + "y": 70 + }, + { + "x": 40, + "y": 20 + }, + { + "x": 80, + "y": 20 + }, + { + "x": 80, + "y": -20 + }, + { + "x": 40, + "y": -20 + }, + { + "x": 10, + "y": -70 + }, + { + "x": -10, + "y": -70 + } + ], + "origin": { + "x": 20, + "y": 0 + }, + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": 20 + }, + { + "x": -60, + "y": 20 + }, + { + "x": -30, + "y": 70 + }, + { + "x": -10, + "y": 70 + }, + { + "x": -10, + "y": -70 + }, + { + "x": -30, + "y": -70 + }, + { + "x": -60, + "y": -20 + }, + { + "x": -100, + "y": -20 + } + ], + "fillColor": { + "r": 102, + "g": 102, + "b": 102 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates packages containing interfaces.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "SourcesPackage": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -23.333, + "y": 30 + }, + { + "x": 46.667, + "y": 0 + }, + { + "x": -23.333, + "y": -30 + } + ], + "origin": { + "x": 23.3333, + "y": 0 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -70, + "y": -4.5 + }, + { + "x": 0, + "y": 4.5 + } + ], + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates a package which contains sources.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "SensorsPackage": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -90, + "y": -90 + }, + { + "x": 90, + "y": 90 + } + ], + "startAngle": 20, + "endAngle": 160, + "origin": { + "x": 0, + "y": -30 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -20, + "y": -20 + }, + { + "x": 20, + "y": 20 + } + ], + "origin": { + "x": 0, + "y": -30 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 60 + }, + { + "x": 0, + "y": 90 + } + ] + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -10, + "y": -10 + }, + { + "x": 10, + "y": 10 + } + ], + "origin": { + "x": 0, + "y": -30 + }, + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -7, + "y": 0 + }, + { + "x": -3, + "y": 85 + }, + { + "x": 0, + "y": 90 + }, + { + "x": 3, + "y": 85 + }, + { + "x": 7, + "y": 0 + } + ], + "origin": { + "x": 0, + "y": -30 + }, + "rotation": -35, + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates a package containing sensors.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "UtilitiesPackage": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -15, + "y": 93.333 + }, + { + "x": -15, + "y": 68.333 + }, + { + "x": 0, + "y": 58.333 + }, + { + "x": 15, + "y": 68.333 + }, + { + "x": 15, + "y": 93.333 + }, + { + "x": 20, + "y": 93.333 + }, + { + "x": 25, + "y": 83.333 + }, + { + "x": 25, + "y": 58.333 + }, + { + "x": 10, + "y": 43.333 + }, + { + "x": 10, + "y": -41.667 + }, + { + "x": 25, + "y": -56.667 + }, + { + "x": 25, + "y": -76.667 + }, + { + "x": 10, + "y": -91.667 + }, + { + "x": 0, + "y": -91.667 + }, + { + "x": 0, + "y": -81.667 + }, + { + "x": 5, + "y": -81.667 + }, + { + "x": 15, + "y": -71.667 + }, + { + "x": 15, + "y": -61.667 + }, + { + "x": 5, + "y": -51.667 + }, + { + "x": -5, + "y": -51.667 + }, + { + "x": -15, + "y": -61.667 + }, + { + "x": -15, + "y": -71.667 + }, + { + "x": -5, + "y": -81.667 + }, + { + "x": 0, + "y": -81.667 + }, + { + "x": 0, + "y": -91.667 + }, + { + "x": -10, + "y": -91.667 + }, + { + "x": -25, + "y": -76.667 + }, + { + "x": -25, + "y": -56.667 + }, + { + "x": -10, + "y": -41.667 + }, + { + "x": -10, + "y": 43.333 + }, + { + "x": -25, + "y": 58.333 + }, + { + "x": -25, + "y": 83.333 + }, + { + "x": -20, + "y": 93.333 + } + ], + "origin": { + "x": 1.3835, + "y": -4.1418 + }, + "rotation": 45, + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -15, + "y": 87.273 + }, + { + "x": 15, + "y": 87.273 + }, + { + "x": 20, + "y": 82.273 + }, + { + "x": 20, + "y": 27.273 + }, + { + "x": 10, + "y": 17.273 + }, + { + "x": 10, + "y": 7.273 + }, + { + "x": 20, + "y": 2.273 + }, + { + "x": 20, + "y": -2.727 + }, + { + "x": 5, + "y": -2.727 + }, + { + "x": 5, + "y": -77.727 + }, + { + "x": 10, + "y": -87.727 + }, + { + "x": 5, + "y": -112.727 + }, + { + "x": -5, + "y": -112.727 + }, + { + "x": -10, + "y": -87.727 + }, + { + "x": -5, + "y": -77.727 + }, + { + "x": -5, + "y": -2.727 + }, + { + "x": -20, + "y": -2.727 + }, + { + "x": -20, + "y": 2.273 + }, + { + "x": -10, + "y": 7.273 + }, + { + "x": -10, + "y": 17.273 + }, + { + "x": -20, + "y": 27.273 + }, + { + "x": -20, + "y": 82.273 + } + ], + "origin": { + "x": 10.1018, + "y": 5.218 + }, + "rotation": -45, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates a package containing utility classes.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "TypesPackage": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 12.167, + "y": 65 + }, + { + "x": 14.167, + "y": 93 + }, + { + "x": 36.167, + "y": 89 + }, + { + "x": 24.167, + "y": 20 + }, + { + "x": 4.167, + "y": -30 + }, + { + "x": 14.167, + "y": -30 + }, + { + "x": 24.167, + "y": -30 + }, + { + "x": 24.167, + "y": -40 + }, + { + "x": -5.833, + "y": -50 + }, + { + "x": -15.833, + "y": -30 + }, + { + "x": 4.167, + "y": 20 + }, + { + "x": 12.167, + "y": 65 + } + ], + "smooth": "Smooth.Bezier", + "origin": { + "x": -12.167, + "y": -23 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 49.2597, + "y": 22.3327 + }, + { + "x": 31.2597, + "y": 24.3327 + }, + { + "x": 7.2597, + "y": 18.3327 + }, + { + "x": -26.7403, + "y": 10.3327 + }, + { + "x": -46.7403, + "y": 14.3327 + }, + { + "x": -48.7403, + "y": 6.3327 + }, + { + "x": -32.7403, + "y": 0.3327 + }, + { + "x": -6.7403, + "y": 4.3327 + }, + { + "x": 33.2597, + "y": 14.3327 + }, + { + "x": 49.2597, + "y": 14.3327 + }, + { + "x": 49.2597, + "y": 22.3327 + } + ], + "smooth": "Smooth.Bezier", + "origin": { + "x": 2.7403, + "y": 1.6673 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "FunctionsPackage": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -90 + }, + { + "x": 90, + "y": 90 + } + ], + "textString": "\"f\"", + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + } + } + } + ] + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "IconsPackage": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -15.833, + "y": 20 + }, + { + "x": -15.833, + "y": 30 + }, + { + "x": 14.167, + "y": 40 + }, + { + "x": 24.167, + "y": 20 + }, + { + "x": 4.167, + "y": -30 + }, + { + "x": 14.167, + "y": -30 + }, + { + "x": 24.167, + "y": -30 + }, + { + "x": 24.167, + "y": -40 + }, + { + "x": -5.833, + "y": -50 + }, + { + "x": -15.833, + "y": -30 + }, + { + "x": 4.167, + "y": 20 + }, + { + "x": -5.833, + "y": 20 + } + ], + "smooth": "Smooth.Bezier", + "origin": { + "x": -8.167, + "y": -17 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -12.5, + "y": -12.5 + }, + { + "x": 12.5, + "y": 12.5 + } + ], + "origin": { + "x": -0.5, + "y": 56.5 + }, + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "InternalPackage": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 215, + "g": 215, + "b": 215 + } + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -80, + "y": 80 + }, + { + "x": 80, + "y": -80 + } + ], + "lineColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -55, + "y": 55 + }, + { + "x": 55, + "y": -55 + } + ], + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -60, + "y": 14 + }, + { + "x": 60, + "y": -14 + } + ], + "rotation": 45, + "lineColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillColor": { + "r": 215, + "g": 215, + "b": 215 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n\n

\nThis icon shall be used for a package that contains internal classes not to be\ndirectly utilized by a user.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "MaterialPropertiesPackage": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -60, + "y": -60 + }, + { + "x": 60, + "y": 60 + } + ], + "lineColor": { + "r": 102, + "g": 102, + "b": 102 + }, + "fillColor": { + "r": 204, + "g": 204, + "b": 204 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Sphere" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates a package that contains properties

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "RecordsPackage": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -80, + "y": -60 + }, + { + "x": 80, + "y": 60 + } + ], + "radius": 25, + "origin": { + "x": 0, + "y": -20 + }, + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 215, + "b": 136 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -80, + "y": 0 + }, + { + "x": 80, + "y": 0 + } + ], + "color": { + "r": 64, + "g": 64, + "b": 64 + } + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -80, + "y": 0 + }, + { + "x": 80, + "y": 0 + } + ], + "color": { + "r": 64, + "g": 64, + "b": 64 + } + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 45 + }, + { + "x": 0, + "y": -75 + } + ], + "color": { + "r": 64, + "g": 64, + "b": 64 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates a package that contains records

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "MaterialProperty": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial class", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "lineColor": { + "r": 102, + "g": 102, + "b": 102 + }, + "fillColor": { + "r": 204, + "g": 204, + "b": 204 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Sphere" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates a property class.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "RotationalSensor": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial class", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -70, + "y": -70 + }, + { + "x": 70, + "y": 70 + } + ], + "fillColor": { + "r": 245, + "g": 245, + "b": 245 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 70 + }, + { + "x": 0, + "y": 40 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 22.9, + "y": 32.8 + }, + { + "x": 40.2, + "y": 57.3 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -22.9, + "y": 32.8 + }, + { + "x": -40.2, + "y": 57.3 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 37.6, + "y": 13.7 + }, + { + "x": 65.8, + "y": 23.9 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -37.6, + "y": 13.7 + }, + { + "x": -65.8, + "y": 23.9 + } + ] + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -12, + "y": -12 + }, + { + "x": 12, + "y": 12 + } + ], + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -5, + "y": 0 + }, + { + "x": -2, + "y": 60 + }, + { + "x": 0, + "y": 65 + }, + { + "x": 2, + "y": 60 + }, + { + "x": 5, + "y": 0 + } + ], + "rotation": -17.5, + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -7, + "y": -7 + }, + { + "x": 7, + "y": 7 + } + ], + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon is designed for a rotational sensor model.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "TranslationalSensor": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial class", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -70, + "y": -60 + }, + { + "x": 70, + "y": 20 + } + ], + "fillColor": { + "r": 245, + "g": 245, + "b": 245 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 0, + "y": -40 + }, + { + "x": -10, + "y": -16 + }, + { + "x": 10, + "y": -16 + }, + { + "x": 0, + "y": -40 + } + ], + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 0 + }, + { + "x": 0, + "y": -16 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -70, + "y": 0 + }, + { + "x": 0, + "y": 0 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -50, + "y": -40 + }, + { + "x": -50, + "y": -60 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -30, + "y": -40 + }, + { + "x": -30, + "y": -60 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -10, + "y": -40 + }, + { + "x": -10, + "y": -60 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 10, + "y": -40 + }, + { + "x": 10, + "y": -60 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 30, + "y": -40 + }, + { + "x": 30, + "y": -60 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 50, + "y": -40 + }, + { + "x": 50, + "y": -60 + } + ] + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon is designed for a translational sensor model.\n

\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "Function": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial function", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -150, + "y": 105 + }, + { + "x": 150, + "y": 145 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "lineColor": { + "r": 108, + "g": 88, + "b": 49 + }, + "fillColor": { + "r": 255, + "g": 215, + "b": 136 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -90 + }, + { + "x": 90, + "y": 90 + } + ], + "textString": "\"f\"", + "lineColor": { + "r": 108, + "g": 88, + "b": 49 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicates Modelica functions.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "Record": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial record", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -150, + "y": 60 + }, + { + "x": 150, + "y": 100 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -75 + }, + { + "x": 100, + "y": 75 + } + ], + "radius": 25, + "origin": { + "x": 0, + "y": -25 + }, + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 215, + "b": 136 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -100, + "y": 0 + }, + { + "x": 100, + "y": 0 + } + ], + "color": { + "r": 64, + "g": 64, + "b": 64 + } + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -100, + "y": 0 + }, + { + "x": 100, + "y": 0 + } + ], + "color": { + "r": 64, + "g": 64, + "b": 64 + } + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 75 + }, + { + "x": 0, + "y": -75 + } + ], + "color": { + "r": 64, + "g": 64, + "b": 64 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon is indicates a record.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "TypeReal": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "type", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -50 + }, + { + "x": 90, + "y": 50 + } + ], + "textString": "\"R\"", + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon is designed for a Real type.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "TypeInteger": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "type", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -50 + }, + { + "x": 90, + "y": 50 + } + ], + "textString": "\"I\"", + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon is designed for an Integer type.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "TypeBoolean": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "type", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -50 + }, + { + "x": 90, + "y": 50 + } + ], + "textString": "\"B\"", + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon is designed for a Boolean type.\n

\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "TypeString": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "type", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillColor": { + "r": 160, + "g": 160, + "b": 164 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -90, + "y": -50 + }, + { + "x": 90, + "y": 50 + } + ], + "textString": "\"S\"", + "lineColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon is designed for a String type.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "SignalBus": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "expandable connector", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false", + "initialScale": 0.2 + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -20, + "y": -2 + }, + { + "x": 20, + "y": 2 + } + ], + "lineColor": { + "r": 255, + "g": 204, + "b": 51 + }, + "lineThickness": 0.5 + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -80, + "y": 50 + }, + { + "x": 80, + "y": 50 + }, + { + "x": 100, + "y": 30 + }, + { + "x": 80, + "y": -40 + }, + { + "x": 60, + "y": -50 + }, + { + "x": -60, + "y": -50 + }, + { + "x": -80, + "y": -40 + }, + { + "x": -100, + "y": 30 + } + ], + "smooth": "Smooth.Bezier", + "fillColor": { + "r": 255, + "g": 215, + "b": 136 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -65, + "y": 15 + }, + { + "x": -55, + "y": 25 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -5, + "y": 15 + }, + { + "x": 5, + "y": 25 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 55, + "y": 15 + }, + { + "x": 65, + "y": 25 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -35, + "y": -25 + }, + { + "x": -25, + "y": -15 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 25, + "y": -25 + }, + { + "x": 35, + "y": -15 + } + ], + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false", + "initialScale": 0.2 + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -40, + "y": 25 + }, + { + "x": 40, + "y": 25 + }, + { + "x": 50, + "y": 15 + }, + { + "x": 40, + "y": -20 + }, + { + "x": 30, + "y": -25 + }, + { + "x": -30, + "y": -25 + }, + { + "x": -40, + "y": -20 + }, + { + "x": -50, + "y": 15 + } + ], + "smooth": "Smooth.Bezier", + "fillColor": { + "r": 255, + "g": 204, + "b": 51 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -32.5, + "y": 7.5 + }, + { + "x": -27.5, + "y": 12.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -2.5, + "y": 12.5 + }, + { + "x": 2.5, + "y": 7.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 27.5, + "y": 12.5 + }, + { + "x": 32.5, + "y": 7.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -17.5, + "y": -7.5 + }, + { + "x": -12.5, + "y": -12.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 12.5, + "y": -7.5 + }, + { + "x": 17.5, + "y": -12.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -150, + "y": 70 + }, + { + "x": 150, + "y": 40 + } + ], + "textString": "\"%name\"" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\nThis icon is designed for a signal bus connector.\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "SignalSubBus": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "expandable connector", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -16, + "y": 2 + }, + { + "x": 16, + "y": 2 + } + ], + "color": { + "r": 255, + "g": 204, + "b": 51 + }, + "thickness": 0.5 + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -10, + "y": 0 + }, + { + "x": 8, + "y": 8 + } + ], + "lineColor": { + "r": 255, + "g": 204, + "b": 51 + }, + "lineThickness": 0.5 + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -80, + "y": 50 + }, + { + "x": 80, + "y": 50 + }, + { + "x": 100, + "y": 30 + }, + { + "x": 80, + "y": -40 + }, + { + "x": 60, + "y": -50 + }, + { + "x": -60, + "y": -50 + }, + { + "x": -80, + "y": -40 + }, + { + "x": -100, + "y": 30 + } + ], + "smooth": "Smooth.Bezier", + "fillColor": { + "r": 255, + "g": 215, + "b": 136 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -55, + "y": 15 + }, + { + "x": -45, + "y": 25 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 45, + "y": 15 + }, + { + "x": 55, + "y": 25 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -5, + "y": -25 + }, + { + "x": 5, + "y": -15 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -20, + "y": 0 + }, + { + "x": 20, + "y": 4 + } + ], + "lineColor": { + "r": 255, + "g": 215, + "b": 136 + }, + "lineThickness": 0.5 + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -40, + "y": 25 + }, + { + "x": 40, + "y": 25 + }, + { + "x": 50, + "y": 15 + }, + { + "x": 40, + "y": -20 + }, + { + "x": 30, + "y": -25 + }, + { + "x": -30, + "y": -25 + }, + { + "x": -40, + "y": -20 + }, + { + "x": -50, + "y": 15 + } + ], + "smooth": "Smooth.Bezier", + "fillColor": { + "r": 255, + "g": 204, + "b": 51 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -22.5, + "y": 7.5 + }, + { + "x": -17.5, + "y": 12.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 17.5, + "y": 12.5 + }, + { + "x": 22.5, + "y": 7.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -2.5, + "y": -7.5 + }, + { + "x": 2.5, + "y": -12.5 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -150, + "y": 70 + }, + { + "x": 150, + "y": 40 + } + ], + "textString": "\"%name\"" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon is designed for a sub-bus in a signal connector.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "UnderConstruction": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial class", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": -100 + }, + { + "x": 0, + "y": 80 + }, + { + "x": 100, + "y": -100 + }, + { + "x": -100, + "y": -100 + } + ], + "lineColor": { + "r": 255, + "g": 0, + "b": 0 + }, + "lineThickness": 0.5 + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

Library developers can use this icon to indicate that the respective model is under construction.

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "ObsoleteModel": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial class", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -102, + "y": 102 + }, + { + "x": 102, + "y": -102 + } + ], + "lineColor": { + "r": 255, + "g": 0, + "b": 0 + }, + "pattern": "LinePattern.Dash", + "lineThickness": 0.5 + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis partial class is intended to provide a default icon\nfor an obsolete model that will be removed from the\ncorresponding library in a future release.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "Library": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 200, + "g": 200, + "b": 200 + }, + "fillColor": { + "r": 248, + "g": 248, + "b": 248 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon of a package will be removed in future versions of the library.

\n
Note
\n

This icon will be removed in future versions of the Modelica Standard Library. Instead the icon Package shall be used.

\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete package - use Modelica.Icons.Package instead\"" + } + } + } + } + } + ], + "semantics": {} + }, + "Library2": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 200, + "g": 200, + "b": 200 + }, + "fillColor": { + "r": 248, + "g": 248, + "b": 248 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "radius": 25, + "lineColor": { + "r": 128, + "g": 128, + "b": 128 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon of a package will be removed in future versions of the library.

\n
Note
\n

This icon will be removed in future versions of the Modelica Standard Library. Instead the icon Package shall be used.

\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete package - use Modelica.Icons.Package instead\"" + } + } + } + } + } + ], + "semantics": {} + }, + "GearIcon": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial class", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -90, + "y": -10 + }, + { + "x": -60, + "y": 10 + } + ], + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -60, + "y": 10 + }, + { + "x": -60, + "y": 20 + }, + { + "x": -40, + "y": 40 + }, + { + "x": -40, + "y": -40 + }, + { + "x": -60, + "y": -20 + }, + { + "x": -60, + "y": 10 + } + ], + "fillColor": { + "r": 192, + "g": 192, + "b": 192 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -40, + "y": -60 + }, + { + "x": 40, + "y": 60 + } + ], + "radius": 10, + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 60, + "y": 20 + }, + { + "x": 40, + "y": 40 + }, + { + "x": 40, + "y": -40 + }, + { + "x": 60, + "y": -20 + }, + { + "x": 60, + "y": 20 + } + ], + "fillColor": { + "r": 192, + "g": 192, + "b": 192 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": 60, + "y": -10 + }, + { + "x": 90, + "y": 10 + } + ], + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -60, + "y": -90 + }, + { + "x": -50, + "y": -90 + }, + { + "x": -20, + "y": -30 + }, + { + "x": 20, + "y": -30 + }, + { + "x": 48, + "y": -90 + }, + { + "x": 60, + "y": -90 + }, + { + "x": 60, + "y": -100 + }, + { + "x": -60, + "y": -100 + }, + { + "x": -60, + "y": -90 + } + ], + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon of a gearbox will be removed in future versions of the library. Please use one of the icons of Mechanics.Rotational.Icons instead.\n

\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete class - use Modelica.Mechanics.Rotational.Icons instead\"" + } + } + } + } + } + ], + "semantics": {} + }, + "MotorIcon": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial class", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -50 + }, + { + "x": 30, + "y": 50 + } + ], + "radius": 10, + "lineColor": { + "r": 82, + "g": 0, + "b": 2 + }, + "fillColor": { + "r": 252, + "g": 37, + "b": 57 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -100, + "y": -90 + }, + { + "x": -90, + "y": -90 + }, + { + "x": -60, + "y": -20 + }, + { + "x": -10, + "y": -20 + }, + { + "x": 20, + "y": -90 + }, + { + "x": 30, + "y": -90 + }, + { + "x": 30, + "y": -100 + }, + { + "x": -100, + "y": -100 + }, + { + "x": -100, + "y": -90 + } + ], + "fillColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": 30, + "y": -10 + }, + { + "x": 90, + "y": 10 + } + ], + "lineColor": { + "r": 64, + "g": 64, + "b": 64 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.HorizontalCylinder" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis icon of an electrical motor model will be removed in future versions of the library. Please use a locally defined icon in your user defined libraries and applications.\n

\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete class\"" + } + } + } + } + } + ], + "semantics": {} + }, + "Info": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/Icons.mo", + "classPrefixes": "partial class", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "lineColor": { + "r": 75, + "g": 138, + "b": 73 + }, + "fillColor": { + "r": 75, + "g": 138, + "b": 73 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -15.833, + "y": 20 + }, + { + "x": -15.833, + "y": 30 + }, + { + "x": 14.167, + "y": 40 + }, + { + "x": 24.167, + "y": 20 + }, + { + "x": 4.167, + "y": -30 + }, + { + "x": 14.167, + "y": -30 + }, + { + "x": 24.167, + "y": -30 + }, + { + "x": 24.167, + "y": -40 + }, + { + "x": -5.833, + "y": -50 + }, + { + "x": -15.833, + "y": -30 + }, + { + "x": 4.167, + "y": 20 + }, + { + "x": -5.833, + "y": 20 + } + ], + "smooth": "Smooth.Bezier", + "origin": { + "x": -4.167, + "y": -15 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": -12.5, + "y": -12.5 + }, + { + "x": 12.5, + "y": 12.5 + } + ], + "origin": { + "x": 7.5, + "y": 56.5 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This icon indicate classes containing only documentation, intended for general description of e.g., concepts and features of a package.

\n
Note
\n

This icon will be removed in future versions of the Modelica Standard Library. Instead the icon Information shall be used.

\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete class - use Modelica.Icons.Information instead\"" + } + } + } + } + } + ], + "semantics": {} + } + }, + "requiredReferences": { + "extends_clause": [ + { + "name": "Icons.Package", + "long_class_specifier_identifier": "Icons", + "within": "Modelica" + } + ] + } +} \ No newline at end of file diff --git a/test/reference/objects/Modelica/SIunits.json b/test/reference/objects/Modelica/SIunits.json new file mode 100644 index 00000000..b2d0147f --- /dev/null +++ b/test/reference/objects/Modelica/SIunits.json @@ -0,0 +1,580 @@ +{ + "instances": { + "SIunits": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/SIunits.mo", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -80, + "y": -40 + }, + { + "x": -80, + "y": -40 + }, + { + "x": -55, + "y": 50 + }, + { + "x": -52.5, + "y": 62.5 + }, + { + "x": -65, + "y": 60 + }, + { + "x": -65, + "y": 65 + }, + { + "x": -35, + "y": 77.5 + }, + { + "x": -32.5, + "y": 60 + }, + { + "x": -50, + "y": 0 + }, + { + "x": -50, + "y": 0 + }, + { + "x": -30, + "y": 15 + }, + { + "x": -20, + "y": 27.5 + }, + { + "x": -32.5, + "y": 27.5 + }, + { + "x": -32.5, + "y": 27.5 + }, + { + "x": -32.5, + "y": 32.5 + }, + { + "x": -32.5, + "y": 32.5 + }, + { + "x": 2.5, + "y": 32.5 + }, + { + "x": 2.5, + "y": 32.5 + }, + { + "x": 2.5, + "y": 27.5 + }, + { + "x": 2.5, + "y": 27.5 + }, + { + "x": -7.5, + "y": 27.5 + }, + { + "x": -30, + "y": 7.5 + }, + { + "x": -30, + "y": 7.5 + }, + { + "x": -25, + "y": -25 + }, + { + "x": -17.5, + "y": -28.75 + }, + { + "x": -10, + "y": -25 + }, + { + "x": -5, + "y": -26.25 + }, + { + "x": -5, + "y": -32.5 + }, + { + "x": -16.25, + "y": -41.25 + }, + { + "x": -31.25, + "y": -43.75 + }, + { + "x": -40, + "y": -33.75 + }, + { + "x": -45, + "y": -5 + }, + { + "x": -45, + "y": -5 + }, + { + "x": -52.5, + "y": -10 + }, + { + "x": -52.5, + "y": -10 + }, + { + "x": -60, + "y": -40 + }, + { + "x": -60, + "y": -40 + } + ], + "smooth": "Smooth.Bezier", + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 87.5, + "y": 30 + }, + { + "x": 62.5, + "y": 30 + }, + { + "x": 62.5, + "y": 30 + }, + { + "x": 55, + "y": 33.75 + }, + { + "x": 36.25, + "y": 35 + }, + { + "x": 16.25, + "y": 25 + }, + { + "x": 7.5, + "y": 6.25 + }, + { + "x": 11.25, + "y": -7.5 + }, + { + "x": 22.5, + "y": -12.5 + }, + { + "x": 22.5, + "y": -12.5 + }, + { + "x": 6.25, + "y": -22.5 + }, + { + "x": 6.25, + "y": -35 + }, + { + "x": 16.25, + "y": -38.75 + }, + { + "x": 16.25, + "y": -38.75 + }, + { + "x": 21.25, + "y": -41.25 + }, + { + "x": 21.25, + "y": -41.25 + }, + { + "x": 45, + "y": -48.75 + }, + { + "x": 47.5, + "y": -61.25 + }, + { + "x": 32.5, + "y": -70 + }, + { + "x": 12.5, + "y": -65 + }, + { + "x": 7.5, + "y": -51.25 + }, + { + "x": 21.25, + "y": -41.25 + }, + { + "x": 21.25, + "y": -41.25 + }, + { + "x": 16.25, + "y": -38.75 + }, + { + "x": 16.25, + "y": -38.75 + }, + { + "x": 6.25, + "y": -41.25 + }, + { + "x": -6.25, + "y": -50 + }, + { + "x": -3.75, + "y": -68.75 + }, + { + "x": 30, + "y": -76.25 + }, + { + "x": 65, + "y": -62.5 + }, + { + "x": 63.75, + "y": -35 + }, + { + "x": 27.5, + "y": -26.25 + }, + { + "x": 22.5, + "y": -20 + }, + { + "x": 27.5, + "y": -15 + }, + { + "x": 27.5, + "y": -15 + }, + { + "x": 30, + "y": -7.5 + }, + { + "x": 30, + "y": -7.5 + }, + { + "x": 27.5, + "y": -2.5 + }, + { + "x": 28.75, + "y": 11.25 + }, + { + "x": 36.25, + "y": 27.5 + }, + { + "x": 47.5, + "y": 30 + }, + { + "x": 53.75, + "y": 22.5 + }, + { + "x": 51.25, + "y": 8.75 + }, + { + "x": 45, + "y": -6.25 + }, + { + "x": 35, + "y": -11.25 + }, + { + "x": 30, + "y": -7.5 + }, + { + "x": 30, + "y": -7.5 + }, + { + "x": 27.5, + "y": -15 + }, + { + "x": 27.5, + "y": -15 + }, + { + "x": 43.75, + "y": -16.25 + }, + { + "x": 65, + "y": -6.25 + }, + { + "x": 72.5, + "y": 10 + }, + { + "x": 70, + "y": 20 + }, + { + "x": 70, + "y": 20 + }, + { + "x": 80, + "y": 20 + } + ], + "smooth": "Smooth.Bezier", + "fillColor": { + "r": 128, + "g": 128, + "b": 128 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This package provides predefined types, such as Mass,\nAngle, Time, based on the international standard\non units, e.g.,\n

\n\n
   type Angle = Real(final quantity = \\\"Angle\\\",\n                     final unit     = \\\"rad\\\",\n                     displayUnit    = \\\"deg\\\");\n
\n\n

\nSome of the types are derived SI units that are utilized in package Modelica\n(such as ComplexCurrent, which is a complex number where both the real and imaginary\npart have the SI unit Ampere).\n

\n\n

\nFurthermore, conversion functions from non SI-units to SI-units and vice versa\nare provided in subpackage\nConversions.\n

\n\n

\nFor an introduction how units are used in the Modelica standard library\nwith package SIunits, have a look at:\nHow to use SIunits.\n

\n\n

\nCopyright © 1998-2019, Modelica Association and contributors\n

\n\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "revisions", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n
    \n
  • May 25, 2011 by Stefan Wischhusen:
    Added molar units for energy and enthalpy.
  • \n
  • Jan. 27, 2010 by Christian Kral:
    Added complex units.
  • \n
  • Dec. 14, 2005 by Martin Otter:
    Add User's Guide and removed "min" values for Resistance and Conductance.
  • \n
  • October 21, 2002 by Martin Otter and Christian Schweiger:
    Added new package Conversions. Corrected typo Wavelenght.
  • \n
  • June 6, 2000 by Martin Otter:
    Introduced the following new types
    type Temperature = ThermodynamicTemperature;
    types DerDensityByEnthalpy, DerDensityByPressure, DerDensityByTemperature, DerEnthalpyByPressure, DerEnergyByDensity, DerEnergyByPressure
    Attribute "final" removed from min and max values in order that these values can still be changed to narrow the allowed range of values.
    Quantity="Stress" removed from type "Stress", in order that a type "Stress" can be connected to a type "Pressure".
  • \n
  • Oct. 27, 1999 by Martin Otter:
    New types due to electrical library: Transconductance, InversePotential, Damping.
  • \n
  • Sept. 18, 1999 by Martin Otter:
    Renamed from SIunit to SIunits. Subpackages expanded, i.e., the SIunits package, does no longer contain subpackages.
  • \n
  • Aug 12, 1999 by Martin Otter:
    Type "Pressure" renamed to "AbsolutePressure" and introduced a new type "Pressure" which does not contain a minimum of zero in order to allow convenient handling of relative pressure. Redefined BulkModulus as an alias to AbsolutePressure instead of Stress, since needed in hydraulics.
  • \n
  • June 29, 1999 by Martin Otter:
    Bug-fix: Double definition of "Compressibility" removed and appropriate "extends Heat" clause introduced in package SolidStatePhysics to incorporate ThermodynamicTemperature.
  • \n
  • April 8, 1998 by Martin Otter and Astrid Jaschinski:
    Complete ISO 31 chapters realized.
  • \n
  • Nov. 15, 1997 by Martin Otter and Hubertus Tummescheit:
    Some chapters realized.
  • \n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "UsersGuide": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/SIunits.mo", + "classPrefixes": "package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "DocumentationClass", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nLibrary SIunits is a free Modelica package providing\npredefined types, such as Mass,\nLength, Time, based on the international standard\non units.

\n\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "Icons": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/SIunits.mo", + "classPrefixes": "package", + "type": "long_class_specifier", + "semantics": {} + }, + "Conversions": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/SIunits.mo", + "classPrefixes": "package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

This package provides conversion functions from the non SI Units\ndefined in package Modelica.SIunits.Conversions.NonSIunits to the\ncorresponding SI Units defined in package Modelica.SIunits and vice\nversa. It is recommended to use these functions in the following\nway (note, that all functions have one Real input and one Real output\nargument):

\n
\n  import SI = Modelica.SIunits;\n  import Modelica.SIunits.Conversions.*;\n     ...\n  parameter SI.Temperature     T   = from_degC(25);   // convert 25 degree Celsius to Kelvin\n  parameter SI.Angle           phi = from_deg(180);   // convert 180 degree to radian\n  parameter SI.AngularVelocity w   = from_rpm(3600);  // convert 3600 revolutions per minutes\n                                                      // to radian per seconds\n
\n\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + } + }, + "requiredReferences": { + "extends_clause": [ + { + "name": "Modelica.Icons.Package", + "long_class_specifier_identifier": "SIunits", + "within": "Modelica" + } + ] + } +} \ No newline at end of file diff --git a/test/reference/objects/Modelica/StateGraph.json b/test/reference/objects/Modelica/StateGraph.json new file mode 100644 index 00000000..cec4dcbd --- /dev/null +++ b/test/reference/objects/Modelica/StateGraph.json @@ -0,0 +1,2226 @@ +{ + "instances": { + "StateGraph": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/StateGraph.mo", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nNote, there is a much improved version of this library called\n\\\"Modelica_StateGraph2\\\". If this library is not yet distributed with your\nModelica tool, you can download it from\nhttps://github.com/modelica/Modelica_StateGraph2.\nIn the\nUsers Guide\na detailed comparison is given. It is highly recommended to use Modelica_StateGraph2 instead\nof Modelica.StateGraph.\n

\n\n

\nLibrary StateGraph is a free Modelica package providing\ncomponents to model discrete event and reactive\nsystems in a convenient\nway. It is based on the JGrafchart method and\ntakes advantage of Modelica features for\nthe \\\"action\\\" language. JGrafchart is a further development of\nGrafcet to include elements of StateCharts that are not present\nin Grafcet/Sequential Function Charts. Therefore, the StateGraph\nlibrary has a similar modeling power as StateCharts but avoids\nsome deficiencies of StateCharts.\n

\n

\nFor an introduction, have especially a look at:\n

\n\n

\nA typical model generated with this library is shown\nin the next figure where on the left hand side a two-tank\nsystem with a tank controller and on the right hand side the\ntop-level part of the tank controller as a StateGraph is shown:\n

\n\n

\n\n\n\n

\n\n

\nThe unique feature of the StateGraph library with respect to JGrafcharts,\nGrafcet, Sequential Function Charts, and StateCharts, is Modelica's\n\\\"single assignment rule\\\" that requires that every variable is defined\nby exactly one equation. This leads to a different \\\"action\\\" definition\nas in these formalisms. The advantage is that the translator can either\ndetermine a useful evaluation sequence by equation sorting or\nreports an error if this is not possible, e.g., because a model\nwould lead to a non-determinism or to a dead-lock. As a side effect,\nthis leads also to simpler and more easier to understand models and\nglobal variables are no longer needed (whereas in JGrafcharts,\nGrafcet, Sequential Function Charts and StateCharts global variables\nare nearly always needed).\n

\n\n

\nCopyright © 1998-2019, Modelica Association and contributors\n

\n\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -20, + "y": -20 + }, + { + "x": 20, + "y": 20 + } + ], + "origin": { + "x": -70, + "y": 0 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -20, + "y": -20 + }, + { + "x": 20, + "y": 20 + } + ], + "origin": { + "x": 70, + "y": 0 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + } + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 50 + }, + { + "x": 0, + "y": -50 + } + ] + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -3.3333, + "y": 10 + }, + { + "x": 16.667, + "y": 0 + }, + { + "x": -3.3333, + "y": -10 + } + ], + "origin": { + "x": -16.6667, + "y": 0 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 15, + "y": 0 + }, + { + "x": -15, + "y": 0 + } + ] + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -3.3333, + "y": 10 + }, + { + "x": 16.667, + "y": 0 + }, + { + "x": -3.3333, + "y": -10 + } + ], + "origin": { + "x": 33.3333, + "y": 0 + }, + "pattern": "LinePattern.None", + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 15, + "y": 0 + }, + { + "x": -15, + "y": 0 + } + ] + } + } + ] + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "UsersGuide": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/StateGraph.mo", + "classPrefixes": "package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "DocumentationClass", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nLibrary StateGraph is a free Modelica package providing\ncomponents to model discrete event and reactive\nsystems in a convenient\nway. This package contains the User's Guide for\nthe library and has the following content:\n

\n
    \n
  1. Overview of library\n gives an overview of the library.
  2. \n
  3. A first example\n demonstrates at hand of a first example how to use this library.
  4. \n
  5. An\n application example demonstrates varies features at hand of the\n control of a two tank system.
  6. \n
  7. Comparison\n with StateGraph2 compares Modelica.StateGraph with the much improved version\n Modelica_StateGraph2.
  8. \n
  9. Release Notes\n summarizes the differences between different versions of this library.
  10. \n
  11. Literature\n provides references that have been used to design and implement this\n library.
  12. \n
  13. Contact\n provides information about the authors of the library as well as\n acknowledgments.
  14. \n
\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "Examples": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/StateGraph.mo", + "classPrefixes": "package", + "type": "long_class_specifier", + "semantics": {} + }, + "Interfaces": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/StateGraph.mo", + "classPrefixes": "package", + "type": "long_class_specifier", + "semantics": {} + }, + "InitialStep": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/StateGraph.mo", + "classPrefixes": "block", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -200, + "y": 110 + }, + { + "x": 200, + "y": 150 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": null + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -80, + "y": 80 + }, + { + "x": 80, + "y": -80 + } + ] + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ] + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -80, + "y": 80 + }, + { + "x": 80, + "y": -80 + } + ] + } + } + ] + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "InitialStepWithSignal": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/StateGraph.mo", + "classPrefixes": "block", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ] + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -80, + "y": 80 + }, + { + "x": 80, + "y": -80 + } + ] + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -200, + "y": 110 + }, + { + "x": 200, + "y": 150 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": null + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -92, + "y": -50 + }, + { + "x": 94, + "y": -68 + } + ], + "textString": "\"active\"" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -80, + "y": 80 + }, + { + "x": 80, + "y": -80 + } + ] + } + } + ] + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "Step": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/StateGraph.mo", + "classPrefixes": "block", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -200, + "y": 110 + }, + { + "x": 200, + "y": 150 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": null + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ] + } + } + ] + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "StepWithSignal": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/StateGraph.mo", + "classPrefixes": "block", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ] + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -200, + "y": 110 + }, + { + "x": 200, + "y": 150 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": null + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -92, + "y": -74 + }, + { + "x": 94, + "y": -92 + } + ], + "textString": "\"active\"" + } + } + ] + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "Transition": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/StateGraph.mo", + "classPrefixes": "block", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -10, + "y": 100 + }, + { + "x": 10, + "y": -100 + } + ], + "fillColor": { + "r": 0, + "g": 0, + "b": null + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -30, + "y": 0 + }, + { + "x": -10, + "y": 0 + } + ] + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 200, + "y": 110 + }, + { + "x": -200, + "y": 150 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 20, + "y": 20 + }, + { + "x": 200, + "y": 45 + } + ], + "textString": "\"%waitTime\"", + "lineColor": { + "r": 0, + "g": 0, + "b": null + } + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -200, + "y": -120 + }, + { + "x": 200, + "y": -145 + } + ], + "textString": "\"%condition\"", + "lineColor": { + "r": 0, + "g": 0, + "b": null + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -31, + "y": 0 + }, + { + "x": -11, + "y": 0 + } + ] + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -10, + "y": 100 + }, + { + "x": 10, + "y": -100 + } + ], + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "TransitionWithSignal": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/StateGraph.mo", + "classPrefixes": "block", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 20, + "y": 20 + }, + { + "x": 200, + "y": 45 + } + ], + "textString": "\"%waitTime\"", + "lineColor": { + "r": 0, + "g": 0, + "b": null + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -10, + "y": 100 + }, + { + "x": 10, + "y": -100 + } + ], + "fillColor": { + "r": 0, + "g": 0, + "b": null + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -30, + "y": 0 + }, + { + "x": -10, + "y": 0 + } + ] + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 200, + "y": 110 + }, + { + "x": -200, + "y": 150 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Ellipse", + "attribute": { + "extent": [ + { + "x": 7, + "y": -81 + }, + { + "x": -7, + "y": -95 + } + ], + "lineColor": { + "r": 0, + "g": 0, + "b": null + }, + "fillColor": { + "r": 0, + "g": 0, + "b": null + }, + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -31, + "y": 0 + }, + { + "x": -11, + "y": 0 + } + ] + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -10, + "y": 100 + }, + { + "x": 10, + "y": -100 + } + ], + "fillPattern": "FillPattern.Solid" + } + } + ] + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "Alternative": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/StateGraph.mo", + "classPrefixes": "block", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -80, + "y": 100 + }, + { + "x": 80, + "y": 100 + } + ], + "pattern": "LinePattern.Dot" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -80, + "y": -100 + }, + { + "x": 80, + "y": -100 + } + ], + "pattern": "LinePattern.Dot" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -100, + "y": 0 + }, + { + "x": -80, + "y": 0 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 80, + "y": 0 + }, + { + "x": 100, + "y": 0 + } + ] + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -100, + "y": 0 + }, + { + "x": -80, + "y": 0 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 80, + "y": 0 + }, + { + "x": 100, + "y": 0 + } + ] + } + } + ] + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "Parallel": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/StateGraph.mo", + "classPrefixes": "block", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -100, + "y": 0 + }, + { + "x": -80, + "y": 0 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 80, + "y": 0 + }, + { + "x": 100, + "y": 0 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -80, + "y": 100 + }, + { + "x": 80, + "y": 100 + } + ], + "pattern": "LinePattern.Dot" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -80, + "y": -100 + }, + { + "x": 80, + "y": -100 + } + ], + "pattern": "LinePattern.Dot" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -100, + "y": 0 + }, + { + "x": -80, + "y": 0 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 80, + "y": 0 + }, + { + "x": 100, + "y": 0 + } + ] + } + } + ] + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "PartialCompositeStep": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/StateGraph.mo", + "classPrefixes": "partial model", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -150, + "y": -150 + }, + { + "x": 150, + "y": 150 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -250, + "y": 160 + }, + { + "x": 250, + "y": 200 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -150, + "y": 150 + }, + { + "x": 150, + "y": -150 + } + ], + "fillColor": { + "r": 255, + "g": 255, + "b": null + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": 4, + "y": -115 + }, + { + "x": 145, + "y": -130 + } + ], + "textString": "\"resume\"" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -144, + "y": -114 + }, + { + "x": -3, + "y": -129 + } + ], + "textString": "\"suspend\"" + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -150, + "y": -150 + }, + { + "x": 150, + "y": 150 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -150, + "y": 150 + }, + { + "x": 150, + "y": -150 + } + ] + } + } + ] + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "StateGraphRoot": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/StateGraph.mo", + "classPrefixes": "model", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "defaultComponentName", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"stateGraphRoot\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "defaultComponentPrefixes", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"inner\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "preserveAspectRatio": "true" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -200, + "y": 110 + }, + { + "x": 200, + "y": 150 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": -100 + } + ] + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -92, + "y": 78 + }, + { + "x": 96, + "y": 34 + } + ], + "textString": "\"root\"" + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -82, + "y": -6 + }, + { + "x": -44, + "y": -40 + } + ] + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": 10 + }, + { + "x": 0, + "y": -60 + } + ] + } + }, + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": 48, + "y": -6 + }, + { + "x": 86, + "y": -40 + } + ] + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": -12, + "y": -16 + }, + { + "x": 0, + "y": -22 + }, + { + "x": -12, + "y": -28 + }, + { + "x": -12, + "y": -16 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": -44, + "y": -22 + }, + { + "x": -12, + "y": -22 + } + ] + } + }, + { + "name": "Polygon", + "attribute": { + "points": [ + { + "x": 36, + "y": -16 + }, + { + "x": 48, + "y": -22 + }, + { + "x": 36, + "y": -28 + }, + { + "x": 36, + "y": -16 + } + ], + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Line", + "attribute": { + "points": [ + { + "x": 0, + "y": -22 + }, + { + "x": 36, + "y": -22 + } + ] + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nOn the highest level of a StateGraph, an instance of StateGraphRoot\nhas to be present.\n

\n

\nThe StateGraphRoot object is needed, since all Step objects have\nan \\\"outer\\\" reference to communicate with the \\\"nearest\\\" CompositeStep\n(which inherits from PartialCompositeStep), especially to abort\na CompositeStep via the \\\"suspend\\\" port. Even if no \\\"CompositeStep\\\" is present,\non highest level a corresponding \\\"inner\\\" definition is needed\nand is provided by the StateGraphRoot object.\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "Temporary": { + "within": "Modelica", + "fullMoFilePath": "/opt/oct/ThirdParty/MSL/MSL323/Modelica/StateGraph.mo", + "classPrefixes": "package", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "obsolete", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"Obsolete package due to experimental design\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Documentation", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "info", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"\n

\nThis library is just temporarily present. The components of\nthis library will be present in the future in the Modelica\nstandard library (with the new block connectors) and in the\nInteraction library .\n

\n\"" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + } + }, + "requiredReferences": { + "extends_clause": [ + { + "name": "Modelica.Icons.Package", + "long_class_specifier_identifier": "StateGraph", + "within": "Modelica" + } + ] + } +} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/Block1.json b/test/reference/objects/test/FromModelica/Block1.json index eb44a254..7c182d4d 100644 --- a/test/reference/objects/test/FromModelica/Block1.json +++ b/test/reference/objects/test/FromModelica/Block1.json @@ -2,7 +2,7 @@ "instances": { "Block1": { "within": "FromModelica", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Block1.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Block1.mo", "type": "long_class_specifier" } }, diff --git a/test/reference/objects/test/FromModelica/BlockInputOutput.json b/test/reference/objects/test/FromModelica/BlockInputOutput.json index ea68f4d2..11891580 100644 --- a/test/reference/objects/test/FromModelica/BlockInputOutput.json +++ b/test/reference/objects/test/FromModelica/BlockInputOutput.json @@ -1 +1 @@ -{"instances":{"BlockInputOutput":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/BlockInputOutput.mo","type":"long_class_specifier"},"u":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"BlockInputOutput","single_component_list":{"declaration":{"identifier":"u"},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/BlockInputOutput.mo"},"y":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"BlockInputOutput","single_component_list":{"declaration":{"identifier":"y"},"description":{"description_string":"Output connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/BlockInputOutput.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"BlockInputOutput":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/BlockInputOutput.mo","type":"long_class_specifier"},"u":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"BlockInputOutput","single_component_list":{"declaration":{"identifier":"u"},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/BlockInputOutput.mo"},"y":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"BlockInputOutput","single_component_list":{"declaration":{"identifier":"y"},"description":{"description_string":"Output connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/BlockInputOutput.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/BlockWithBlock1.json b/test/reference/objects/test/FromModelica/BlockWithBlock1.json index 8d6e9e36..759086e2 100644 --- a/test/reference/objects/test/FromModelica/BlockWithBlock1.json +++ b/test/reference/objects/test/FromModelica/BlockWithBlock1.json @@ -1 +1 @@ -{"instances":{"BlockWithBlock1":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/BlockWithBlock1.mo","type":"long_class_specifier"},"bloPub":{"type_specifier":"Block1","type":"element","long_class_specifier_identifier":"BlockWithBlock1","single_component_list":{"declaration":{"identifier":"bloPub"},"description":{"description_string":"A public block"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/BlockWithBlock1.mo"},"bloPro":{"type_specifier":"Block1","type":"element","long_class_specifier_identifier":"BlockWithBlock1","single_component_list":{"declaration":{"identifier":"bloPro"},"description":{"description_string":"A protected block"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/BlockWithBlock1.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"BlockWithBlock1":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/BlockWithBlock1.mo","type":"long_class_specifier"},"bloPub":{"type_specifier":"Block1","type":"element","long_class_specifier_identifier":"BlockWithBlock1","single_component_list":{"declaration":{"identifier":"bloPub"},"description":{"description_string":"A public block"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/BlockWithBlock1.mo"},"bloPro":{"type_specifier":"Block1","type":"element","long_class_specifier_identifier":"BlockWithBlock1","single_component_list":{"declaration":{"identifier":"bloPro"},"description":{"description_string":"A protected block"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/BlockWithBlock1.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/ConditionalBlock.json b/test/reference/objects/test/FromModelica/ConditionalBlock.json index 9cf6a74d..aa7d7573 100644 --- a/test/reference/objects/test/FromModelica/ConditionalBlock.json +++ b/test/reference/objects/test/FromModelica/ConditionalBlock.json @@ -1 +1 @@ -{"instances":{"ConditionalBlock":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ConditionalBlock.mo","type":"long_class_specifier"},"enaBlo":{"type_prefix":"parameter","type_specifier":"Boolean","type":"element","long_class_specifier_identifier":"ConditionalBlock","single_component_list":{"declaration":{"identifier":"enaBlo","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Flag for enabling instance"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ConditionalBlock.mo"},"u":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"ConditionalBlock","single_component_list":{"declaration":{"identifier":"u"},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ConditionalBlock.mo"},"y":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"ConditionalBlock","single_component_list":{"declaration":{"identifier":"y"},"description":{"description_string":"Output connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ConditionalBlock.mo"},"abs":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Abs","type":"element","long_class_specifier_identifier":"ConditionalBlock","single_component_list":{"declaration":{"identifier":"abs"},"condition_attribute":{"expression":{"simple_expression":"not enaBlo"}},"description":{"description_string":"Instance could be conditional disabled","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ConditionalBlock.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"ConditionalBlock":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ConditionalBlock.mo","type":"long_class_specifier"},"enaBlo":{"type_prefix":"parameter","type_specifier":"Boolean","type":"element","long_class_specifier_identifier":"ConditionalBlock","single_component_list":{"declaration":{"identifier":"enaBlo","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Flag for enabling instance"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ConditionalBlock.mo"},"u":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"ConditionalBlock","single_component_list":{"declaration":{"identifier":"u"},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ConditionalBlock.mo"},"y":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"ConditionalBlock","single_component_list":{"declaration":{"identifier":"y"},"description":{"description_string":"Output connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ConditionalBlock.mo"},"abs":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Abs","type":"element","long_class_specifier_identifier":"ConditionalBlock","single_component_list":{"declaration":{"identifier":"abs"},"condition_attribute":{"expression":{"simple_expression":"not enaBlo"}},"description":{"description_string":"Instance could be conditional disabled","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ConditionalBlock.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/CustomPWithLimiter.json b/test/reference/objects/test/FromModelica/CustomPWithLimiter.json index 34dc7435..05d336be 100644 --- a/test/reference/objects/test/FromModelica/CustomPWithLimiter.json +++ b/test/reference/objects/test/FromModelica/CustomPWithLimiter.json @@ -1 +1 @@ -{"instances":{"CustomPWithLimiter":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/CustomPWithLimiter.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nBlock that outputs y = min(yMax, k*e),\nwhere\nyMax and e are real-valued input signals and\nk is a parameter.\n

\n\""}}}}}]}}}}],"semantics":{}},"k":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"CustomPWithLimiter","single_component_list":{"declaration":{"identifier":"k","modification":{"equal":true,"expression":{"simple_expression":"2"}}},"description":{"description_string":"Constant gain"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/CustomPWithLimiter.mo"},"yMax":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"CustomPWithLimiter","single_component_list":{"declaration":{"identifier":"yMax"},"description":{"description_string":"Maximum value of output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/CustomPWithLimiter.mo"},"e":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"CustomPWithLimiter","single_component_list":{"declaration":{"identifier":"e"},"description":{"description_string":"Control error","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/CustomPWithLimiter.mo"},"y":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"CustomPWithLimiter","single_component_list":{"declaration":{"identifier":"y"},"description":{"description_string":"Control signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/CustomPWithLimiter.mo"},"gain":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","type":"element","long_class_specifier_identifier":"CustomPWithLimiter","single_component_list":{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/CustomPWithLimiter.mo"},"minValue":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Min","type":"element","long_class_specifier_identifier":"CustomPWithLimiter","single_component_list":{"declaration":{"identifier":"minValue"},"description":{"description_string":"Outputs the minimum of its inputs","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":-10},{"x":40,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":-10},{"x":40,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/CustomPWithLimiter.mo"}},"requiredReferences":{"connections":{"yMax":["minValue.u1"],"e":["gain.u"],"gain.y":["minValue.u2"],"minValue.y":["y"]}}} \ No newline at end of file +{"instances":{"CustomPWithLimiter":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/CustomPWithLimiter.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nBlock that outputs y = min(yMax, k*e),\nwhere\nyMax and e are real-valued input signals and\nk is a parameter.\n

\n\""}}}}}]}}}}],"semantics":{}},"k":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"CustomPWithLimiter","single_component_list":{"declaration":{"identifier":"k","modification":{"equal":true,"expression":{"simple_expression":"2"}}},"description":{"description_string":"Constant gain"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/CustomPWithLimiter.mo"},"yMax":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"CustomPWithLimiter","single_component_list":{"declaration":{"identifier":"yMax"},"description":{"description_string":"Maximum value of output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/CustomPWithLimiter.mo"},"e":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"CustomPWithLimiter","single_component_list":{"declaration":{"identifier":"e"},"description":{"description_string":"Control error","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/CustomPWithLimiter.mo"},"y":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"CustomPWithLimiter","single_component_list":{"declaration":{"identifier":"y"},"description":{"description_string":"Control signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/CustomPWithLimiter.mo"},"gain":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","type":"element","long_class_specifier_identifier":"CustomPWithLimiter","single_component_list":{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/CustomPWithLimiter.mo"},"minValue":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Min","type":"element","long_class_specifier_identifier":"CustomPWithLimiter","single_component_list":{"declaration":{"identifier":"minValue"},"description":{"description_string":"Outputs the minimum of its inputs","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":-10},{"x":40,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":-10},{"x":40,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/CustomPWithLimiter.mo"}},"requiredReferences":{"connections":{"yMax":["minValue.u1"],"e":["gain.u"],"gain.y":["minValue.u2"],"minValue.y":["y"]}}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/DynamicTextColor.json b/test/reference/objects/test/FromModelica/DynamicTextColor.json index bff97502..12ff983d 100644 --- a/test/reference/objects/test/FromModelica/DynamicTextColor.json +++ b/test/reference/objects/test/FromModelica/DynamicTextColor.json @@ -1 +1 @@ -{"instances":{"DynamicTextColor":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/DynamicTextColor.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"preserveAspectRatio":"true"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Text","attribute":{"extent":[{"x":-90,"y":80},{"x":-46,"y":54}],"textString":"\"true\"","lineColor":{"r":0,"g":0,"b":null}}},{"name":"Text","attribute":{"extent":[{"x":-150,"y":150},{"x":150,"y":110}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}}],"semantics":{}},"u":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.Boolean","type":"element","long_class_specifier_identifier":"DynamicTextColor","single_component_list":{"declaration":{"identifier":"u"},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/DynamicTextColor.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"DynamicTextColor":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/DynamicTextColor.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"preserveAspectRatio":"true"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Text","attribute":{"extent":[{"x":-90,"y":80},{"x":-46,"y":54}],"textString":"\"true\"","lineColor":{"r":0,"g":0,"b":null}}},{"name":"Text","attribute":{"extent":[{"x":-150,"y":150},{"x":150,"y":110}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}}],"semantics":{}},"u":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.Boolean","type":"element","long_class_specifier_identifier":"DynamicTextColor","single_component_list":{"declaration":{"identifier":"u"},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/DynamicTextColor.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/EmptyEquation.json b/test/reference/objects/test/FromModelica/EmptyEquation.json index 5dcb9a52..5c0a9a16 100644 --- a/test/reference/objects/test/FromModelica/EmptyEquation.json +++ b/test/reference/objects/test/FromModelica/EmptyEquation.json @@ -1 +1 @@ -{"instances":{"EmptyEquation":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/EmptyEquation.mo","type":"long_class_specifier"}},"requiredReferences":{"connections":{}}} \ No newline at end of file +{"instances":{"EmptyEquation":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/EmptyEquation.mo","type":"long_class_specifier"}},"requiredReferences":{"connections":{}}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/Enable.json b/test/reference/objects/test/FromModelica/Enable.json index c367ae02..40d0c100 100644 --- a/test/reference/objects/test/FromModelica/Enable.json +++ b/test/reference/objects/test/FromModelica/Enable.json @@ -1 +1 @@ -{"instances":{"Enable":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"enaDis\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"extent":[{"x":-100,"y":-140},{"x":100,"y":140}]}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-140},{"x":100,"y":140}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":180},{"x":100,"y":140}],"textString":"\"%name\"","textColor":{"r":0,"g":0,"b":255}}},{"name":"Line","attribute":{"points":[{"x":0,"y":60},{"x":80,"y":60}],"color":{"r":0,"g":0,"b":127},"thickness":0.5}},{"name":"Line","attribute":{"points":[{"x":-80,"y":-60},{"x":0,"y":-60},{"x":0,"y":60}],"color":{"r":0,"g":0,"b":127},"thickness":0.5}},{"name":"Text","attribute":{"extent":[{"x":-98,"y":38},{"x":-56,"y":24}],"textString":"\"u1SupFan\"","textColor":{"r":255,"g":0,"b":255},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":18},{"x":-44,"y":4}],"textString":"\"uFreProSta\"","textColor":{"r":255,"g":127,"b":0},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":68},{"x":-56,"y":54}],"textString":"\"hOutCut\"","textColor":{"r":0,"g":0,"b":127},"visible":"use_enthalpy","pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":86},{"x":-70,"y":72}],"textString":"\"hOut\"","textColor":{"r":0,"g":0,"b":127},"visible":"use_enthalpy","pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":116},{"x":-56,"y":102}],"textString":"\"TOutCut\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":138},{"x":-72,"y":124}],"textString":"\"TOut\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-100},{"x":-32,"y":-118}],"textString":"\"uRetDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-10},{"x":-28,"y":-28}],"textString":"\"uOutDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-30},{"x":-28,"y":-48}],"textString":"\"uOutDam_min\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-80},{"x":-12,"y":-98}],"textString":"\"uRetDamPhy_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-120},{"x":-32,"y":-138}],"textString":"\"uRetDam_min\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":36,"y":110},{"x":96,"y":92}],"textString":"\"yOutDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":36,"y":12},{"x":96,"y":-6}],"textString":"\"yRetDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":36,"y":-88},{"x":96,"y":-106}],"textString":"\"yRetDam_min\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"extent":[{"x":-260,"y":-280},{"x":240,"y":280}],"preserveAspectRatio":"false","initialScale":0.05}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":-2},{"x":220,"y":-250}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":58},{"x":220,"y":6}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":118},{"x":220,"y":66}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":258},{"x":220,"y":130}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":158},{"x":204,"y":138}],"textString":"\"Outdoor air\nconditions\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":52},{"x":298,"y":18}],"textString":"\"Freeze protection -\ndisable if stage1\nand above\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":-198},{"x":288,"y":-246}],"textString":"\"Damper position\nlimit assignments\nwith delays\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":84},{"x":214,"y":74}],"textString":"\"Supply fan status\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is a multi zone VAV AHU economizer enable/disable sequence\nbased on the Section 5.16.7 of the ASHRAE Guideline 36, May 2020. Additional\nconditions included in the sequence are: freeze protection (freeze protection\nstage 0-3, see Section 5.16.12), supply fan status (on or off, see Section 5.16.5).\n

\n

\nThe economizer is disabled whenever the outdoor air conditions\nexceed the economizer high limit setpoint.\nThis sequence allows for all device types listed in\nASHRAE 90.1-2013 and Title 24-2013.\n

\n

\nIn addition, the economizer gets disabled without a delay whenever any of the\nfollowing is true:\n

\n\n

\nThe following state machine chart illustrates the transitions between enabling and disabling:\n

\n

\n\\\"Image\n

\n

\nAfter the disable signal is activated, the following procedure is applied, in order to\nprevent pressure fluctuations in the HVAC system:\n

\n
    \n
  • \nThe return damper gets fully opened (yRetDam_max = uRetDamPhy_max and\nyRetDam_min = uRetDamPhy_max) for retDamFulOpeTim\ntime period, after which the return damper gets released to its minimum outdoor airflow control position\n(yRetDam_max = uRetDam_max and yRetDam_min = uRetDam_max).\n
  • \n
  • \nThe outdoor air damper is closed to its minimum outoor airflow control limit (yOutDam_max = uOutDam_min)\nafter a disDel time delay.\n
  • \n
\n\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"revisions","modification":{"equal":true,"expression":{"simple_expression":"\"\n
    \n
  • \nOctober 13, 2017, by Michael Wetter:
    \nAdded freeze protection that tracks mixed air temperature.\n
  • \n
  • \nAugust 3, 2017, by Michael Wetter:
    \nRemoved unrequired input into block and2 as this input\nwas always true if and2.u2 = true.\n
  • \n
  • \nJune 27, 2017, by Milica Grahovac:
    \nFirst implementation.\n
  • \n
\n\""}}}}}]}}}}],"semantics":{}},"use_enthalpy":{"type_prefix":"parameter","type_specifier":"Boolean","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"use_enthalpy","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Set to true to evaluate outdoor air (OA) enthalpy in addition to temperature","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Conditional\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Conditional\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"delTOutHis":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"delTOutHis","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"TemperatureDifference\""}}}}}],"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Delta between the temperature hysteresis high and low limit","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Hysteresis\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Hysteresis\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"delEntHis":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"delEntHis","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}],"equal":true,"expression":{"simple_expression":"1000"}}},"description":{"description_string":"Delta between the enthalpy hysteresis high and low limits","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Hysteresis\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"use_enthalpy"}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Hysteresis\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"use_enthalpy"}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"retDamFulOpeTim":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"retDamFulOpeTim","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"s\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"Time\""}}}}}],"equal":true,"expression":{"simple_expression":"180"}}},"description":{"description_string":"Time period to keep RA damper fully open before releasing it for minimum outdoor airflow control\n at disable to avoid pressure fluctuations","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Delays at disable\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Delays at disable\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"disDel":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"disDel","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"s\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"Time\""}}}}}],"equal":true,"expression":{"simple_expression":"15"}}},"description":{"description_string":"Short time delay before closing the OA damper at disable to avoid pressure fluctuations","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Delays at disable\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Delays at disable\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"TOut":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"TOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"degC\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"description":{"description_string":"Outdoor air temperature","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":232},{"x":-260,"y":272}]},"iconTransformation":{"extent":[{"x":-140,"y":110},{"x":-100,"y":150}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":232},{"x":-260,"y":272}]},"iconTransformation":{"extent":[{"x":-140,"y":110},{"x":-100,"y":150}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"hOut":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"hOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"Outdoor air enthalpy","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":152},{"x":-260,"y":192}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":152},{"x":-260,"y":192}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"TOutCut":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"TOutCut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"degC\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"description":{"description_string":"OA temperature high limit cutoff. For differential dry bulb temperature condition use return air temperature measurement","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":192},{"x":-260,"y":232}]},"iconTransformation":{"extent":[{"x":-140,"y":90},{"x":-100,"y":130}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":192},{"x":-260,"y":232}]},"iconTransformation":{"extent":[{"x":-140,"y":90},{"x":-100,"y":130}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"hOutCut":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"hOutCut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"OA enthalpy high limit cutoff. For differential enthalpy use return air enthalpy measurement","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":112},{"x":-260,"y":152}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":112},{"x":-260,"y":152}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"uOutDam_min":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"uOutDam_min","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Minimum outdoor air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-98},{"x":-260,"y":-58}]},"iconTransformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-98},{"x":-260,"y":-58}]},"iconTransformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"uOutDam_max":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"uOutDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum outdoor air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-58},{"x":-260,"y":-18}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-58},{"x":-260,"y":-18}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"uRetDam_max":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"uRetDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum return air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-178},{"x":-260,"y":-138}]},"iconTransformation":{"extent":[{"x":-140,"y":-130},{"x":-100,"y":-90}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-178},{"x":-260,"y":-138}]},"iconTransformation":{"extent":[{"x":-140,"y":-130},{"x":-100,"y":-90}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"uRetDam_min":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"uRetDam_min","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Minimum return air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-218},{"x":-260,"y":-178}]},"iconTransformation":{"extent":[{"x":-140,"y":-150},{"x":-100,"y":-110}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-218},{"x":-260,"y":-178}]},"iconTransformation":{"extent":[{"x":-140,"y":-150},{"x":-100,"y":-110}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"uRetDamPhy_max":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"uRetDamPhy_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Physical maximum return air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-138},{"x":-260,"y":-98}]},"iconTransformation":{"extent":[{"x":-140,"y":-110},{"x":-100,"y":-70}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-138},{"x":-260,"y":-98}]},"iconTransformation":{"extent":[{"x":-140,"y":-110},{"x":-100,"y":-70}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"u1SupFan":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"u1SupFan"},"description":{"description_string":"Supply fan proven on","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":62},{"x":-260,"y":102}]},"iconTransformation":{"extent":[{"x":-140,"y":10},{"x":-100,"y":50}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":62},{"x":-260,"y":102}]},"iconTransformation":{"extent":[{"x":-140,"y":10},{"x":-100,"y":50}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"uFreProSta":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.IntegerInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"uFreProSta"},"description":{"description_string":"Freeze protection stage status signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":22},{"x":-260,"y":62}]},"iconTransformation":{"extent":[{"x":-140,"y":-10},{"x":-100,"y":30}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":22},{"x":-260,"y":62}]},"iconTransformation":{"extent":[{"x":-140,"y":-10},{"x":-100,"y":30}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"yOutDam_max":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"yOutDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum outdoor air damper position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":22},{"x":280,"y":62}]},"iconTransformation":{"extent":[{"x":100,"y":80},{"x":140,"y":120}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":22},{"x":280,"y":62}]},"iconTransformation":{"extent":[{"x":100,"y":80},{"x":140,"y":120}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"yRetDam_min":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"yRetDam_min","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Minimum return air damper position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":-98},{"x":280,"y":-58}]},"iconTransformation":{"extent":[{"x":100,"y":-120},{"x":140,"y":-80}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":-98},{"x":280,"y":-58}]},"iconTransformation":{"extent":[{"x":100,"y":-120},{"x":140,"y":-80}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"yRetDam_max":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"yRetDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum return air damper position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":-38},{"x":280,"y":2}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":-38},{"x":280,"y":2}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"truFalHol":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueFalseHold","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"truFalHol","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"trueHoldDuration","modification":{"equal":true,"expression":{"simple_expression":"600"}}}}}]}},"description":{"description_string":"Economizer should not be enabled or disabled within 10 minutes of change","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":182},{"x":40,"y":202}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":182},{"x":40,"y":202}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"andEnaDis":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"andEnaDis"},"description":{"description_string":"Check freeze protection stage and zone state","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":12},{"x":80,"y":32}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":12},{"x":80,"y":32}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"TOutHigLimCutHig":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"TOutHigLimCutHig","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"TemperatureDifference\""}}}}}],"equal":true,"expression":{"simple_expression":"0"}}},"description":{"description_string":"Hysteresis high limit cutoff"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"TOutHigLimCutLow":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"TOutHigLimCutLow","modification":{"equal":true,"expression":{"simple_expression":"TOutHigLimCutHig -delTOutHis"}}},"description":{"description_string":"Hysteresis low limit cutoff"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"hOutHigLimCutHig":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"hOutHigLimCutHig","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}],"equal":true,"expression":{"simple_expression":"0"}}},"description":{"description_string":"Hysteresis block high limit cutoff"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"hOutHigLimCutLow":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"hOutHigLimCutLow","modification":{"equal":true,"expression":{"simple_expression":"hOutHigLimCutHig -delEntHis"}}},"description":{"description_string":"Hysteresis block low limit cutoff"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"sub2":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Subtract","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"sub2"},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"Add block determines difference between hOut and hOutCut","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-200,"y":140},{"x":-180,"y":160}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-200,"y":140},{"x":-180,"y":160}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"sub1":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Subtract","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"sub1"},"description":{"description_string":"Add block determines difference between TOut and TOutCut","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-200,"y":220},{"x":-180,"y":240}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-200,"y":220},{"x":-180,"y":240}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"hysOutTem":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Hysteresis","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"hysOutTem","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uLow","modification":{"equal":true,"expression":{"simple_expression":"TOutHigLimCutLow"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uHigh","modification":{"equal":true,"expression":{"simple_expression":"TOutHigLimCutHig"}}}}}]}},"description":{"description_string":"Outdoor air temperature hysteresis for both fixed and differential dry bulb temperature cutoff conditions","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":220},{"x":-140,"y":240}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":220},{"x":-140,"y":240}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"hysOutEnt":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Hysteresis","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"hysOutEnt","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uLow","modification":{"equal":true,"expression":{"simple_expression":"hOutHigLimCutLow"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uHigh","modification":{"equal":true,"expression":{"simple_expression":"hOutHigLimCutHig"}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"Outdoor air enthalpy hysteresis for both fixed and differential enthalpy cutoff conditions","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":140},{"x":-140,"y":160}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":140},{"x":-140,"y":160}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"outDamSwitch":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"outDamSwitch"},"description":{"description_string":"Set maximum OA damper position to minimum at disable (after a given time delay)","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":82,"y":-78},{"x":102,"y":-58}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":82,"y":-78},{"x":102,"y":-58}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"retDamSwitch":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"retDamSwitch"},"description":{"description_string":"Set minimum RA damper position to maximum at disable","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-176},{"x":0,"y":-156}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-176},{"x":0,"y":-156}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"maxRetDamSwitch":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"maxRetDamSwitch"},"description":{"description_string":"Keep maximum RA damper position at physical maximum for a short time period after disable signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":-136},{"x":80,"y":-116}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":-136},{"x":80,"y":-116}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"minRetDamSwitch":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"minRetDamSwitch"},"description":{"description_string":"Keep minimum RA damper position at physical maximum for a short time period after disable","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":-178},{"x":80,"y":-158}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":-178},{"x":80,"y":-158}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"not2":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Not","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"not2"},"description":{"description_string":"Logical not that starts the timer at disable signal ","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-58},{"x":-40,"y":-38}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-58},{"x":-40,"y":-38}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"and2":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"and2"},"description":{"description_string":"Logical and","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":160,"y":-100},{"x":180,"y":-80}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":160,"y":-100},{"x":180,"y":-80}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"and1":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"and1"},"description":{"description_string":"Check supply fan status","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":80},{"x":40,"y":100}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":80},{"x":40,"y":100}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"and3":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"and3"},"description":{"description_string":"Check if delay time has been passed after economizer being disabled","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":40,"y":-54},{"x":60,"y":-34}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":40,"y":-54},{"x":60,"y":-34}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"intEqu":{"type_specifier":"Buildings.Controls.OBC.CDL.Integers.Equal","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"intEqu"},"description":{"description_string":"Logical block to check if the freeze protection is deactivated","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-78,"y":32},{"x":-58,"y":52}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-78,"y":32},{"x":-58,"y":52}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"delOutDamOsc":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueDelay","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"delOutDamOsc","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"delayTime","modification":{"equal":true,"expression":{"simple_expression":"disDel"}}}}}]}},"description":{"description_string":"Small delay before closing the outdoor air damper to avoid pressure fluctuations","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-58},{"x":0,"y":-38}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-58},{"x":0,"y":-38}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"delRetDam":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueDelay","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"delRetDam","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"delayTime","modification":{"equal":true,"expression":{"simple_expression":"retDamFulOpeTim"}}}}}]}},"description":{"description_string":"Keep return damper open to its physical maximum for a short period of time before closing the outdoor air damper and resuming the maximum return air damper position, per G36 Part N7","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-108},{"x":0,"y":-88}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-108},{"x":0,"y":-88}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"not1":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Not","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"not1"},"description":{"description_string":"Logical not","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":-108},{"x":40,"y":-88}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":-108},{"x":40,"y":-88}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"conInt":{"type_specifier":"Buildings.Controls.OBC.CDL.Integers.Sources.Constant","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"conInt","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeProtectionStages.stage0"}}}}}]}},"description":{"description_string":"Integer constant, stage 0","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-118,"y":12},{"x":-98,"y":32}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-118,"y":12},{"x":-98,"y":32}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"entSubst1":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Sources.Constant","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"entSubst1","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"not use_enthalpy"}},"description":{"description_string":"Deactivates outdoor air enthalpy condition if there is no enthalpy sensor","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":180},{"x":-140,"y":200}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":180},{"x":-140,"y":200}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"},"or2":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Or","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"or2"},"description":{"description_string":"Check if either the temperature or the enthalpy condition is satisfied","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":182},{"x":-40,"y":202}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":182},{"x":-40,"y":202}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Enable.mo"}},"requiredReferences":{"connections":{"TOut":["sub1.u1"],"TOutCut":["sub1.u2"],"sub1.y":["hysOutTem.u"],"hOut":["sub2.u1"],"hOutCut":["sub2.u2"],"sub2.y":["hysOutEnt.u"],"uOutDam_min":["outDamSwitch.u1"],"uOutDam_max":["outDamSwitch.u3"],"uRetDamPhy_max":["maxRetDamSwitch.u1","minRetDamSwitch.u1"],"uRetDam_max":["maxRetDamSwitch.u3","retDamSwitch.u1"],"andEnaDis.y":["not2.u"],"maxRetDamSwitch.y":["yRetDam_max"],"and2.y":["maxRetDamSwitch.u2","minRetDamSwitch.u2"],"not2.y":["retDamSwitch.u2","and3.u1","delRetDam.u"],"uRetDam_min":["retDamSwitch.u3"],"retDamSwitch.y":["minRetDamSwitch.u3"],"truFalHol.y":["and1.u1"],"and1.y":["andEnaDis.u1"],"u1SupFan":["and1.u2"],"outDamSwitch.u2":["and3.y"],"and2.u1":["not2.y"],"and3.u2":["delOutDamOsc.y"],"delOutDamOsc.u":["not2.y"],"delRetDam.y":["not1.u"],"not1.y":["and2.u2"],"uFreProSta":["intEqu.u1"],"conInt.y":["intEqu.u2"],"intEqu.y":["andEnaDis.u2"],"outDamSwitch.y":["yOutDam_max"],"minRetDamSwitch.y":["yRetDam_min"],"or2.y":["truFalHol.u"],"hysOutTem.y":["or2.u1"],"hysOutEnt.y":["or2.u2"],"entSubst1.y":["or2.u2"]}}} \ No newline at end of file +{"instances":{"Enable":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"enaDis\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"extent":[{"x":-100,"y":-140},{"x":100,"y":140}]}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-140},{"x":100,"y":140}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":180},{"x":100,"y":140}],"textString":"\"%name\"","textColor":{"r":0,"g":0,"b":255}}},{"name":"Line","attribute":{"points":[{"x":0,"y":60},{"x":80,"y":60}],"color":{"r":0,"g":0,"b":127},"thickness":0.5}},{"name":"Line","attribute":{"points":[{"x":-80,"y":-60},{"x":0,"y":-60},{"x":0,"y":60}],"color":{"r":0,"g":0,"b":127},"thickness":0.5}},{"name":"Text","attribute":{"extent":[{"x":-98,"y":38},{"x":-56,"y":24}],"textString":"\"u1SupFan\"","textColor":{"r":255,"g":0,"b":255},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":18},{"x":-44,"y":4}],"textString":"\"uFreProSta\"","textColor":{"r":255,"g":127,"b":0},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":68},{"x":-56,"y":54}],"textString":"\"hOutCut\"","textColor":{"r":0,"g":0,"b":127},"visible":"use_enthalpy","pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":86},{"x":-70,"y":72}],"textString":"\"hOut\"","textColor":{"r":0,"g":0,"b":127},"visible":"use_enthalpy","pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":116},{"x":-56,"y":102}],"textString":"\"TOutCut\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":138},{"x":-72,"y":124}],"textString":"\"TOut\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-100},{"x":-32,"y":-118}],"textString":"\"uRetDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-10},{"x":-28,"y":-28}],"textString":"\"uOutDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-30},{"x":-28,"y":-48}],"textString":"\"uOutDam_min\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-80},{"x":-12,"y":-98}],"textString":"\"uRetDamPhy_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":-96,"y":-120},{"x":-32,"y":-138}],"textString":"\"uRetDam_min\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":36,"y":110},{"x":96,"y":92}],"textString":"\"yOutDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":36,"y":12},{"x":96,"y":-6}],"textString":"\"yRetDam_max\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}},{"name":"Text","attribute":{"extent":[{"x":36,"y":-88},{"x":96,"y":-106}],"textString":"\"yRetDam_min\"","textColor":{"r":0,"g":0,"b":127},"pattern":"LinePattern.Dash"}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"extent":[{"x":-260,"y":-280},{"x":240,"y":280}],"preserveAspectRatio":"false","initialScale":0.05}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":-2},{"x":220,"y":-250}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":58},{"x":220,"y":6}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":118},{"x":220,"y":66}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Rectangle","attribute":{"extent":[{"x":-240,"y":258},{"x":220,"y":130}],"lineColor":{"r":215,"g":215,"b":215},"fillColor":{"r":215,"g":215,"b":215},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":158},{"x":204,"y":138}],"textString":"\"Outdoor air\nconditions\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":52},{"x":298,"y":18}],"textString":"\"Freeze protection -\ndisable if stage1\nand above\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":-198},{"x":288,"y":-246}],"textString":"\"Damper position\nlimit assignments\nwith delays\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}},{"name":"Text","attribute":{"extent":[{"x":120,"y":84},{"x":214,"y":74}],"textString":"\"Supply fan status\"","textColor":{"r":0,"g":0,"b":0},"horizontalAlignment":"TextAlignment.Left"}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is a multi zone VAV AHU economizer enable/disable sequence\nbased on the Section 5.16.7 of the ASHRAE Guideline 36, May 2020. Additional\nconditions included in the sequence are: freeze protection (freeze protection\nstage 0-3, see Section 5.16.12), supply fan status (on or off, see Section 5.16.5).\n

\n

\nThe economizer is disabled whenever the outdoor air conditions\nexceed the economizer high limit setpoint.\nThis sequence allows for all device types listed in\nASHRAE 90.1-2013 and Title 24-2013.\n

\n

\nIn addition, the economizer gets disabled without a delay whenever any of the\nfollowing is true:\n

\n\n

\nThe following state machine chart illustrates the transitions between enabling and disabling:\n

\n

\n\\\"Image\n

\n

\nAfter the disable signal is activated, the following procedure is applied, in order to\nprevent pressure fluctuations in the HVAC system:\n

\n
    \n
  • \nThe return damper gets fully opened (yRetDam_max = uRetDamPhy_max and\nyRetDam_min = uRetDamPhy_max) for retDamFulOpeTim\ntime period, after which the return damper gets released to its minimum outdoor airflow control position\n(yRetDam_max = uRetDam_max and yRetDam_min = uRetDam_max).\n
  • \n
  • \nThe outdoor air damper is closed to its minimum outoor airflow control limit (yOutDam_max = uOutDam_min)\nafter a disDel time delay.\n
  • \n
\n\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"revisions","modification":{"equal":true,"expression":{"simple_expression":"\"\n
    \n
  • \nOctober 13, 2017, by Michael Wetter:
    \nAdded freeze protection that tracks mixed air temperature.\n
  • \n
  • \nAugust 3, 2017, by Michael Wetter:
    \nRemoved unrequired input into block and2 as this input\nwas always true if and2.u2 = true.\n
  • \n
  • \nJune 27, 2017, by Milica Grahovac:
    \nFirst implementation.\n
  • \n
\n\""}}}}}]}}}}],"semantics":{}},"use_enthalpy":{"type_prefix":"parameter","type_specifier":"Boolean","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"use_enthalpy","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Set to true to evaluate outdoor air (OA) enthalpy in addition to temperature","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Conditional\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Conditional\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"delTOutHis":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"delTOutHis","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"TemperatureDifference\""}}}}}],"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Delta between the temperature hysteresis high and low limit","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Hysteresis\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Hysteresis\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"delEntHis":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"delEntHis","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}],"equal":true,"expression":{"simple_expression":"1000"}}},"description":{"description_string":"Delta between the enthalpy hysteresis high and low limits","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Hysteresis\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"use_enthalpy"}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Hysteresis\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"use_enthalpy"}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"retDamFulOpeTim":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"retDamFulOpeTim","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"s\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"Time\""}}}}}],"equal":true,"expression":{"simple_expression":"180"}}},"description":{"description_string":"Time period to keep RA damper fully open before releasing it for minimum outdoor airflow control\n at disable to avoid pressure fluctuations","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Delays at disable\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Delays at disable\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"disDel":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"disDel","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"s\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"Time\""}}}}}],"equal":true,"expression":{"simple_expression":"15"}}},"description":{"description_string":"Short time delay before closing the OA damper at disable to avoid pressure fluctuations","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Delays at disable\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Advanced\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Delays at disable\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"TOut":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"TOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"degC\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"description":{"description_string":"Outdoor air temperature","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":232},{"x":-260,"y":272}]},"iconTransformation":{"extent":[{"x":-140,"y":110},{"x":-100,"y":150}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":232},{"x":-260,"y":272}]},"iconTransformation":{"extent":[{"x":-140,"y":110},{"x":-100,"y":150}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"hOut":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"hOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"Outdoor air enthalpy","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":152},{"x":-260,"y":192}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":152},{"x":-260,"y":192}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"TOutCut":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"TOutCut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"degC\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"description":{"description_string":"OA temperature high limit cutoff. For differential dry bulb temperature condition use return air temperature measurement","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":192},{"x":-260,"y":232}]},"iconTransformation":{"extent":[{"x":-140,"y":90},{"x":-100,"y":130}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":192},{"x":-260,"y":232}]},"iconTransformation":{"extent":[{"x":-140,"y":90},{"x":-100,"y":130}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"hOutCut":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"hOutCut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"OA enthalpy high limit cutoff. For differential enthalpy use return air enthalpy measurement","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":112},{"x":-260,"y":152}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":112},{"x":-260,"y":152}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"uOutDam_min":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"uOutDam_min","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Minimum outdoor air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-98},{"x":-260,"y":-58}]},"iconTransformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-98},{"x":-260,"y":-58}]},"iconTransformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"uOutDam_max":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"uOutDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum outdoor air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-58},{"x":-260,"y":-18}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-58},{"x":-260,"y":-18}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"uRetDam_max":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"uRetDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum return air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-178},{"x":-260,"y":-138}]},"iconTransformation":{"extent":[{"x":-140,"y":-130},{"x":-100,"y":-90}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-178},{"x":-260,"y":-138}]},"iconTransformation":{"extent":[{"x":-140,"y":-130},{"x":-100,"y":-90}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"uRetDam_min":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"uRetDam_min","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Minimum return air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-218},{"x":-260,"y":-178}]},"iconTransformation":{"extent":[{"x":-140,"y":-150},{"x":-100,"y":-110}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-218},{"x":-260,"y":-178}]},"iconTransformation":{"extent":[{"x":-140,"y":-150},{"x":-100,"y":-110}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"uRetDamPhy_max":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"uRetDamPhy_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Physical maximum return air damper position, output from damper position limits sequence","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-138},{"x":-260,"y":-98}]},"iconTransformation":{"extent":[{"x":-140,"y":-110},{"x":-100,"y":-70}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":-138},{"x":-260,"y":-98}]},"iconTransformation":{"extent":[{"x":-140,"y":-110},{"x":-100,"y":-70}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"u1SupFan":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"u1SupFan"},"description":{"description_string":"Supply fan proven on","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":62},{"x":-260,"y":102}]},"iconTransformation":{"extent":[{"x":-140,"y":10},{"x":-100,"y":50}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":62},{"x":-260,"y":102}]},"iconTransformation":{"extent":[{"x":-140,"y":10},{"x":-100,"y":50}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"uFreProSta":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.IntegerInput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"uFreProSta"},"description":{"description_string":"Freeze protection stage status signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":22},{"x":-260,"y":62}]},"iconTransformation":{"extent":[{"x":-140,"y":-10},{"x":-100,"y":30}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-300,"y":22},{"x":-260,"y":62}]},"iconTransformation":{"extent":[{"x":-140,"y":-10},{"x":-100,"y":30}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"yOutDam_max":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"yOutDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum outdoor air damper position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":22},{"x":280,"y":62}]},"iconTransformation":{"extent":[{"x":100,"y":80},{"x":140,"y":120}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":22},{"x":280,"y":62}]},"iconTransformation":{"extent":[{"x":100,"y":80},{"x":140,"y":120}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"yRetDam_min":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"yRetDam_min","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Minimum return air damper position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":-98},{"x":280,"y":-58}]},"iconTransformation":{"extent":[{"x":100,"y":-120},{"x":140,"y":-80}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":-98},{"x":280,"y":-58}]},"iconTransformation":{"extent":[{"x":100,"y":-120},{"x":140,"y":-80}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"yRetDam_max":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"yRetDam_max","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"1\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"1"}}}}}]}},"description":{"description_string":"Maximum return air damper position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":-38},{"x":280,"y":2}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":240,"y":-38},{"x":280,"y":2}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"truFalHol":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueFalseHold","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"truFalHol","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"trueHoldDuration","modification":{"equal":true,"expression":{"simple_expression":"600"}}}}}]}},"description":{"description_string":"Economizer should not be enabled or disabled within 10 minutes of change","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":182},{"x":40,"y":202}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":182},{"x":40,"y":202}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"andEnaDis":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"andEnaDis"},"description":{"description_string":"Check freeze protection stage and zone state","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":12},{"x":80,"y":32}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":12},{"x":80,"y":32}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"TOutHigLimCutHig":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"TOutHigLimCutHig","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"TemperatureDifference\""}}}}}],"equal":true,"expression":{"simple_expression":"0"}}},"description":{"description_string":"Hysteresis high limit cutoff"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"TOutHigLimCutLow":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"TOutHigLimCutLow","modification":{"equal":true,"expression":{"simple_expression":"TOutHigLimCutHig -delTOutHis"}}},"description":{"description_string":"Hysteresis low limit cutoff"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"hOutHigLimCutHig":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"hOutHigLimCutHig","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"J/kg\""}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"SpecificEnergy\""}}}}}],"equal":true,"expression":{"simple_expression":"0"}}},"description":{"description_string":"Hysteresis block high limit cutoff"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"hOutHigLimCutLow":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"hOutHigLimCutLow","modification":{"equal":true,"expression":{"simple_expression":"hOutHigLimCutHig -delEntHis"}}},"description":{"description_string":"Hysteresis block low limit cutoff"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"sub2":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Subtract","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"sub2"},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"Add block determines difference between hOut and hOutCut","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-200,"y":140},{"x":-180,"y":160}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-200,"y":140},{"x":-180,"y":160}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"sub1":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Subtract","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"sub1"},"description":{"description_string":"Add block determines difference between TOut and TOutCut","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-200,"y":220},{"x":-180,"y":240}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-200,"y":220},{"x":-180,"y":240}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"hysOutTem":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Hysteresis","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"hysOutTem","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uLow","modification":{"equal":true,"expression":{"simple_expression":"TOutHigLimCutLow"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uHigh","modification":{"equal":true,"expression":{"simple_expression":"TOutHigLimCutHig"}}}}}]}},"description":{"description_string":"Outdoor air temperature hysteresis for both fixed and differential dry bulb temperature cutoff conditions","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":220},{"x":-140,"y":240}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":220},{"x":-140,"y":240}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"hysOutEnt":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Hysteresis","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"hysOutEnt","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uLow","modification":{"equal":true,"expression":{"simple_expression":"hOutHigLimCutLow"}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uHigh","modification":{"equal":true,"expression":{"simple_expression":"hOutHigLimCutHig"}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"use_enthalpy"}},"description":{"description_string":"Outdoor air enthalpy hysteresis for both fixed and differential enthalpy cutoff conditions","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":140},{"x":-140,"y":160}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":140},{"x":-140,"y":160}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"outDamSwitch":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"outDamSwitch"},"description":{"description_string":"Set maximum OA damper position to minimum at disable (after a given time delay)","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":82,"y":-78},{"x":102,"y":-58}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":82,"y":-78},{"x":102,"y":-58}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"retDamSwitch":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"retDamSwitch"},"description":{"description_string":"Set minimum RA damper position to maximum at disable","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-176},{"x":0,"y":-156}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-176},{"x":0,"y":-156}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"maxRetDamSwitch":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"maxRetDamSwitch"},"description":{"description_string":"Keep maximum RA damper position at physical maximum for a short time period after disable signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":-136},{"x":80,"y":-116}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":-136},{"x":80,"y":-116}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"minRetDamSwitch":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Switch","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"minRetDamSwitch"},"description":{"description_string":"Keep minimum RA damper position at physical maximum for a short time period after disable","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":-178},{"x":80,"y":-158}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":60,"y":-178},{"x":80,"y":-158}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"not2":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Not","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"not2"},"description":{"description_string":"Logical not that starts the timer at disable signal ","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-58},{"x":-40,"y":-38}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-58},{"x":-40,"y":-38}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"and2":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"and2"},"description":{"description_string":"Logical and","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":160,"y":-100},{"x":180,"y":-80}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":160,"y":-100},{"x":180,"y":-80}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"and1":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"and1"},"description":{"description_string":"Check supply fan status","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":80},{"x":40,"y":100}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":80},{"x":40,"y":100}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"and3":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.And","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"and3"},"description":{"description_string":"Check if delay time has been passed after economizer being disabled","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":40,"y":-54},{"x":60,"y":-34}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":40,"y":-54},{"x":60,"y":-34}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"intEqu":{"type_specifier":"Buildings.Controls.OBC.CDL.Integers.Equal","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"intEqu"},"description":{"description_string":"Logical block to check if the freeze protection is deactivated","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-78,"y":32},{"x":-58,"y":52}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-78,"y":32},{"x":-58,"y":52}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"delOutDamOsc":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueDelay","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"delOutDamOsc","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"delayTime","modification":{"equal":true,"expression":{"simple_expression":"disDel"}}}}}]}},"description":{"description_string":"Small delay before closing the outdoor air damper to avoid pressure fluctuations","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-58},{"x":0,"y":-38}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-58},{"x":0,"y":-38}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"delRetDam":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueDelay","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"delRetDam","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"delayTime","modification":{"equal":true,"expression":{"simple_expression":"retDamFulOpeTim"}}}}}]}},"description":{"description_string":"Keep return damper open to its physical maximum for a short period of time before closing the outdoor air damper and resuming the maximum return air damper position, per G36 Part N7","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-108},{"x":0,"y":-88}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":-108},{"x":0,"y":-88}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"not1":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Not","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"not1"},"description":{"description_string":"Logical not","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":-108},{"x":40,"y":-88}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":20,"y":-108},{"x":40,"y":-88}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"conInt":{"type_specifier":"Buildings.Controls.OBC.CDL.Integers.Sources.Constant","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"conInt","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeProtectionStages.stage0"}}}}}]}},"description":{"description_string":"Integer constant, stage 0","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-118,"y":12},{"x":-98,"y":32}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-118,"y":12},{"x":-98,"y":32}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"entSubst1":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Sources.Constant","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"entSubst1","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"not use_enthalpy"}},"description":{"description_string":"Deactivates outdoor air enthalpy condition if there is no enthalpy sensor","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":180},{"x":-140,"y":200}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-160,"y":180},{"x":-140,"y":200}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"},"or2":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Or","type":"element","long_class_specifier_identifier":"Enable","single_component_list":{"declaration":{"identifier":"or2"},"description":{"description_string":"Check if either the temperature or the enthalpy condition is satisfied","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":182},{"x":-40,"y":202}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":182},{"x":-40,"y":202}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Enable.mo"}},"requiredReferences":{"connections":{"TOut":["sub1.u1"],"TOutCut":["sub1.u2"],"sub1.y":["hysOutTem.u"],"hOut":["sub2.u1"],"hOutCut":["sub2.u2"],"sub2.y":["hysOutEnt.u"],"uOutDam_min":["outDamSwitch.u1"],"uOutDam_max":["outDamSwitch.u3"],"uRetDamPhy_max":["maxRetDamSwitch.u1","minRetDamSwitch.u1"],"uRetDam_max":["maxRetDamSwitch.u3","retDamSwitch.u1"],"andEnaDis.y":["not2.u"],"maxRetDamSwitch.y":["yRetDam_max"],"and2.y":["maxRetDamSwitch.u2","minRetDamSwitch.u2"],"not2.y":["retDamSwitch.u2","and3.u1","delRetDam.u"],"uRetDam_min":["retDamSwitch.u3"],"retDamSwitch.y":["minRetDamSwitch.u3"],"truFalHol.y":["and1.u1"],"and1.y":["andEnaDis.u1"],"u1SupFan":["and1.u2"],"outDamSwitch.u2":["and3.y"],"and2.u1":["not2.y"],"and3.u2":["delOutDamOsc.y"],"delOutDamOsc.u":["not2.y"],"delRetDam.y":["not1.u"],"not1.y":["and2.u2"],"uFreProSta":["intEqu.u1"],"conInt.y":["intEqu.u2"],"intEqu.y":["andEnaDis.u2"],"outDamSwitch.y":["yOutDam_max"],"minRetDamSwitch.y":["yRetDam_min"],"or2.y":["truFalHol.u"],"hysOutTem.y":["or2.u1"],"hysOutEnt.y":["or2.u2"],"entSubst1.y":["or2.u2"]}}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/ExtendsClause_1.json b/test/reference/objects/test/FromModelica/ExtendsClause_1.json index cac5d722..f98f361c 100644 --- a/test/reference/objects/test/FromModelica/ExtendsClause_1.json +++ b/test/reference/objects/test/FromModelica/ExtendsClause_1.json @@ -1 +1 @@ -{"instances":{"ExtendsClause_1":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ExtendsClause_1.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"res\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...test...test...\n\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"revisions","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...\n\""}}}}}]}}}}],"semantics":{}},"gain":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","type":"element","long_class_specifier_identifier":"ExtendsClause_1","single_component_list":{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ExtendsClause_1.mo"},"length":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Length","type":"element","long_class_specifier_identifier":"ExtendsClause_1","single_component_list":{"declaration":{"identifier":"length"},"description":{"description_string":"Length of the pipe"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ExtendsClause_1.mo"},"ARound":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Area","type":"element","long_class_specifier_identifier":"ExtendsClause_1","single_component_list":{"declaration":{"identifier":"ARound","modification":{"equal":true,"expression":{"simple_expression":"dh^2*Modelica.Constants.pi/4"}}},"description":{"description_string":"Cross sectional area (assuming a round cross section area)"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ExtendsClause_1.mo"}},"requiredReferences":{"extends_clause":[{"name":"Buildings.Controls.OBC.CDL.Continuous.PID","class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Ti","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}}],"long_class_specifier_identifier":"ExtendsClause_1","within":"FromModelica"}]}} \ No newline at end of file +{"instances":{"ExtendsClause_1":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ExtendsClause_1.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"res\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...test...test...\n\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"revisions","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...\n\""}}}}}]}}}}],"semantics":{}},"gain":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","type":"element","long_class_specifier_identifier":"ExtendsClause_1","single_component_list":{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ExtendsClause_1.mo"},"length":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Length","type":"element","long_class_specifier_identifier":"ExtendsClause_1","single_component_list":{"declaration":{"identifier":"length"},"description":{"description_string":"Length of the pipe"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ExtendsClause_1.mo"},"ARound":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Area","type":"element","long_class_specifier_identifier":"ExtendsClause_1","single_component_list":{"declaration":{"identifier":"ARound","modification":{"equal":true,"expression":{"simple_expression":"dh^2*Modelica.Constants.pi/4"}}},"description":{"description_string":"Cross sectional area (assuming a round cross section area)"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ExtendsClause_1.mo"}},"requiredReferences":{"extends_clause":[{"name":"Buildings.Controls.OBC.CDL.Continuous.PID","class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Ti","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}}],"long_class_specifier_identifier":"ExtendsClause_1","within":"FromModelica"}]}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/ExtendsClause_2.json b/test/reference/objects/test/FromModelica/ExtendsClause_2.json index 496c1bcc..16d5dd06 100644 --- a/test/reference/objects/test/FromModelica/ExtendsClause_2.json +++ b/test/reference/objects/test/FromModelica/ExtendsClause_2.json @@ -1 +1 @@ -{"instances":{"ExtendsClause_2":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ExtendsClause_2.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"res\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...test...test...\n\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"revisions","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...\n\""}}}}}]}}}}],"semantics":{}},"gain":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","type":"element","long_class_specifier_identifier":"ExtendsClause_2","single_component_list":{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ExtendsClause_2.mo"},"length":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Length","type":"element","long_class_specifier_identifier":"ExtendsClause_2","single_component_list":{"declaration":{"identifier":"length"},"description":{"description_string":"Length of the pipe"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ExtendsClause_2.mo"},"ARound":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Area","type":"element","long_class_specifier_identifier":"ExtendsClause_2","single_component_list":{"declaration":{"identifier":"ARound","modification":{"equal":true,"expression":{"simple_expression":"dh^2*Modelica.Constants.pi/4"}}},"description":{"description_string":"Cross sectional area (assuming a round cross section area)"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ExtendsClause_2.mo"}},"requiredReferences":{"extends_clause":[{"name":"Buildings.Controls.OBC.CDL.Continuous.PID","class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Ti","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}}],"long_class_specifier_identifier":"ExtendsClause_2","within":"FromModelica"},{"name":"Buildings.Controls.OBC.CDL.Logical.TrueHoldWithReset","class_modification":[{"element_redeclaration":{"component_clause1":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueDelay","component_declaration1":{"declaration":{"identifier":"onDelay","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"delayTime","modification":{"equal":true,"expression":{"simple_expression":"duration"}}}}}]}}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"duration","modification":{"equal":true,"expression":{"simple_expression":"300"}}}}}],"long_class_specifier_identifier":"ExtendsClause_2","within":"FromModelica"}]}} \ No newline at end of file +{"instances":{"ExtendsClause_2":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ExtendsClause_2.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"res\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...test...test...\n\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"revisions","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...\n\""}}}}}]}}}}],"semantics":{}},"gain":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","type":"element","long_class_specifier_identifier":"ExtendsClause_2","single_component_list":{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ExtendsClause_2.mo"},"length":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Length","type":"element","long_class_specifier_identifier":"ExtendsClause_2","single_component_list":{"declaration":{"identifier":"length"},"description":{"description_string":"Length of the pipe"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ExtendsClause_2.mo"},"ARound":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Area","type":"element","long_class_specifier_identifier":"ExtendsClause_2","single_component_list":{"declaration":{"identifier":"ARound","modification":{"equal":true,"expression":{"simple_expression":"dh^2*Modelica.Constants.pi/4"}}},"description":{"description_string":"Cross sectional area (assuming a round cross section area)"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ExtendsClause_2.mo"}},"requiredReferences":{"extends_clause":[{"name":"Buildings.Controls.OBC.CDL.Continuous.PID","class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Ti","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}}],"long_class_specifier_identifier":"ExtendsClause_2","within":"FromModelica"},{"name":"Buildings.Controls.OBC.CDL.Logical.TrueHoldWithReset","class_modification":[{"element_redeclaration":{"component_clause1":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.TrueDelay","component_declaration1":{"declaration":{"identifier":"onDelay","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"delayTime","modification":{"equal":true,"expression":{"simple_expression":"duration"}}}}}]}}}}}},{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"duration","modification":{"equal":true,"expression":{"simple_expression":"300"}}}}}],"long_class_specifier_identifier":"ExtendsClause_2","within":"FromModelica"}]}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/ExtendsClause_3.json b/test/reference/objects/test/FromModelica/ExtendsClause_3.json index 388fb350..27e2b43e 100644 --- a/test/reference/objects/test/FromModelica/ExtendsClause_3.json +++ b/test/reference/objects/test/FromModelica/ExtendsClause_3.json @@ -1 +1 @@ -{"instances":{"ExtendsClause_3":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ExtendsClause_3.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"res\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...test...test...\n\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"revisions","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...\n\""}}}}}]}}}}],"semantics":{}},"gain":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","type":"element","long_class_specifier_identifier":"ExtendsClause_3","single_component_list":{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ExtendsClause_3.mo"},"length":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Length","type":"element","long_class_specifier_identifier":"ExtendsClause_3","single_component_list":{"declaration":{"identifier":"length"},"description":{"description_string":"Length of the pipe"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ExtendsClause_3.mo"},"ARound":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Area","type":"element","long_class_specifier_identifier":"ExtendsClause_3","single_component_list":{"declaration":{"identifier":"ARound","modification":{"equal":true,"expression":{"simple_expression":"dh^2*Modelica.Constants.pi/4"}}},"description":{"description_string":"Cross sectional area (assuming a round cross section area)"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ExtendsClause_3.mo"}},"requiredReferences":{"extends_clause":[{"name":"Buildings.Controls.OBC.CDL.Constants","long_class_specifier_identifier":"ExtendsClause_3","within":"FromModelica"},{"name":"Buildings.Controls.OBC.CDL.Logical.TrueHoldWithReset","class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"duration","modification":{"equal":true,"expression":{"simple_expression":"300"}}}}}],"long_class_specifier_identifier":"ExtendsClause_3","within":"FromModelica"}]}} \ No newline at end of file +{"instances":{"ExtendsClause_3":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ExtendsClause_3.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"res\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...test...test...\n\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"revisions","modification":{"equal":true,"expression":{"simple_expression":"\"\ntest...test...test...\n\""}}}}}]}}}}],"semantics":{}},"gain":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","type":"element","long_class_specifier_identifier":"ExtendsClause_3","single_component_list":{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-60,"y":-50},{"x":-40,"y":-30}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ExtendsClause_3.mo"},"length":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Length","type":"element","long_class_specifier_identifier":"ExtendsClause_3","single_component_list":{"declaration":{"identifier":"length"},"description":{"description_string":"Length of the pipe"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ExtendsClause_3.mo"},"ARound":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Area","type":"element","long_class_specifier_identifier":"ExtendsClause_3","single_component_list":{"declaration":{"identifier":"ARound","modification":{"equal":true,"expression":{"simple_expression":"dh^2*Modelica.Constants.pi/4"}}},"description":{"description_string":"Cross sectional area (assuming a round cross section area)"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ExtendsClause_3.mo"}},"requiredReferences":{"extends_clause":[{"name":"Buildings.Controls.OBC.CDL.Constants","long_class_specifier_identifier":"ExtendsClause_3","within":"FromModelica"},{"name":"Buildings.Controls.OBC.CDL.Logical.TrueHoldWithReset","class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"duration","modification":{"equal":true,"expression":{"simple_expression":"300"}}}}}],"long_class_specifier_identifier":"ExtendsClause_3","within":"FromModelica"}]}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/MisplacedInfoWithComponent.json b/test/reference/objects/test/FromModelica/MisplacedInfoWithComponent.json index 4a53a56b..7c1f03a6 100644 --- a/test/reference/objects/test/FromModelica/MisplacedInfoWithComponent.json +++ b/test/reference/objects/test/FromModelica/MisplacedInfoWithComponent.json @@ -1 +1 @@ -{"instances":{"MisplacedInfoWithComponent":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MisplacedInfoWithComponent.mo","type":"long_class_specifier"},"bloPub":{"type_specifier":"Block1","type":"element","long_class_specifier_identifier":"MisplacedInfoWithComponent","single_component_list":{"declaration":{"identifier":"bloPub"},"description":{"description_string":"A public block","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MisplacedInfoWithComponent.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"MisplacedInfoWithComponent":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MisplacedInfoWithComponent.mo","type":"long_class_specifier"},"bloPub":{"type_specifier":"Block1","type":"element","long_class_specifier_identifier":"MisplacedInfoWithComponent","single_component_list":{"declaration":{"identifier":"bloPub"},"description":{"description_string":"A public block","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MisplacedInfoWithComponent.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/MisplacedInfoWithEquation.json b/test/reference/objects/test/FromModelica/MisplacedInfoWithEquation.json index ab12664a..09fe4d7f 100644 --- a/test/reference/objects/test/FromModelica/MisplacedInfoWithEquation.json +++ b/test/reference/objects/test/FromModelica/MisplacedInfoWithEquation.json @@ -1 +1 @@ -{"instances":{"MisplacedInfoWithEquation":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MisplacedInfoWithEquation.mo","type":"long_class_specifier"},"k":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"MisplacedInfoWithEquation","single_component_list":{"declaration":{"identifier":"k","modification":{"equal":true,"expression":{"simple_expression":"2"}}},"description":{"description_string":"Constant gain"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MisplacedInfoWithEquation.mo"},"u":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"MisplacedInfoWithEquation","single_component_list":{"declaration":{"identifier":"u"},"description":{"description_string":"Input signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MisplacedInfoWithEquation.mo"},"y1":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"MisplacedInfoWithEquation","single_component_list":{"declaration":{"identifier":"y1"},"description":{"description_string":"Output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MisplacedInfoWithEquation.mo"},"y2":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"MisplacedInfoWithEquation","single_component_list":{"declaration":{"identifier":"y2"},"description":{"description_string":"Output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MisplacedInfoWithEquation.mo"},"gain":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","type":"element","long_class_specifier_identifier":"MisplacedInfoWithEquation","single_component_list":{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":0,"y":-10},{"x":20,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":0,"y":-10},{"x":20,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MisplacedInfoWithEquation.mo"}},"requiredReferences":{"connections":{"u":["gain.u"],"gain.y":["y"]}}} \ No newline at end of file +{"instances":{"MisplacedInfoWithEquation":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MisplacedInfoWithEquation.mo","type":"long_class_specifier"},"k":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"MisplacedInfoWithEquation","single_component_list":{"declaration":{"identifier":"k","modification":{"equal":true,"expression":{"simple_expression":"2"}}},"description":{"description_string":"Constant gain"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MisplacedInfoWithEquation.mo"},"u":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"MisplacedInfoWithEquation","single_component_list":{"declaration":{"identifier":"u"},"description":{"description_string":"Input signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MisplacedInfoWithEquation.mo"},"y1":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"MisplacedInfoWithEquation","single_component_list":{"declaration":{"identifier":"y1"},"description":{"description_string":"Output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MisplacedInfoWithEquation.mo"},"y2":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"MisplacedInfoWithEquation","single_component_list":{"declaration":{"identifier":"y2"},"description":{"description_string":"Output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MisplacedInfoWithEquation.mo"},"gain":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.MultiplyByParameter","type":"element","long_class_specifier_identifier":"MisplacedInfoWithEquation","single_component_list":{"declaration":{"identifier":"gain","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k"}}}}}]}},"description":{"description_string":"Constant gain","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":0,"y":-10},{"x":20,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":0,"y":-10},{"x":20,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MisplacedInfoWithEquation.mo"}},"requiredReferences":{"connections":{"u":["gain.u"],"gain.y":["y"]}}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/MisplacedInfoWithParameter.json b/test/reference/objects/test/FromModelica/MisplacedInfoWithParameter.json index 80493592..7b9892d5 100644 --- a/test/reference/objects/test/FromModelica/MisplacedInfoWithParameter.json +++ b/test/reference/objects/test/FromModelica/MisplacedInfoWithParameter.json @@ -1 +1 @@ -{"instances":{"MisplacedInfoWithParameter":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MisplacedInfoWithParameter.mo","type":"long_class_specifier"},"kP":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"MisplacedInfoWithParameter","single_component_list":{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MisplacedInfoWithParameter.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"MisplacedInfoWithParameter":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MisplacedInfoWithParameter.mo","type":"long_class_specifier"},"kP":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"MisplacedInfoWithParameter","single_component_list":{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MisplacedInfoWithParameter.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/MyController.json b/test/reference/objects/test/FromModelica/MyController.json index f7713ca5..2076f707 100644 --- a/test/reference/objects/test/FromModelica/MyController.json +++ b/test/reference/objects/test/FromModelica/MyController.json @@ -1 +1,1084 @@ -{"instances":{"MyController":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MyController.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"controlledDevice","modification":{"equal":true,"expression":{"simple_expression":"\"My Device\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"myCon\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":100},{"x":100,"y":140}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}],"semantics":{}},"u1":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"MyController","single_component_list":{"declaration":{"identifier":"u1"},"description":{"description_string":"Real input 1","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MyController.mo"},"u2":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"MyController","single_component_list":{"declaration":{"identifier":"u2"},"description":{"description_string":"Real input 2","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MyController.mo"},"y":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"MyController","single_component_list":{"declaration":{"identifier":"y"},"description":{"description_string":"Real output","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MyController.mo"},"add2":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Add","type":"element","long_class_specifier_identifier":"MyController","single_component_list":{"declaration":{"identifier":"add2"},"description":{"description_string":"Add two real inputs","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MyController.mo"},"subCon1":{"type_specifier":"SubController","type":"element","long_class_specifier_identifier":"MyController","single_component_list":{"declaration":{"identifier":"subCon1"},"description":{"description_string":"Sub controller","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-50},{"x":10,"y":-30}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-50},{"x":10,"y":-30}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MyController.mo"},"subCon2":{"type_specifier":"SubController","type":"element","long_class_specifier_identifier":"MyController","single_component_list":{"declaration":{"identifier":"subCon2"},"description":{"description_string":"Sub controller","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-90},{"x":10,"y":-70}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-90},{"x":10,"y":-70}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MyController.mo"}},"requiredReferences":{"connections":{"u1":["add2.u1"],"u2":["add2.u2","subCon1.u","subCon2.u"],"add2.y":["y"]}}} \ No newline at end of file +{ + "instances": { + "MyController": { + "within": "FromModelica", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MyController.mo", + "type": "long_class_specifier", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "__cdl", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "generatePointlist", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "controlledDevice", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"My Device\"" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "defaultComponentName", + "modification": { + "equal": true, + "expression": { + "simple_expression": "\"myCon\"" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Icon", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "preserveAspectRatio": "false" + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "graphics": [ + { + "name": "Rectangle", + "attribute": { + "extent": [ + { + "x": -100, + "y": -100 + }, + { + "x": 100, + "y": 100 + } + ], + "lineColor": { + "r": 0, + "g": 0, + "b": 127 + }, + "fillColor": { + "r": 255, + "g": 255, + "b": 255 + }, + "fillPattern": "FillPattern.Solid" + } + }, + { + "name": "Text", + "attribute": { + "extent": [ + { + "x": -100, + "y": 100 + }, + { + "x": 100, + "y": 140 + } + ], + "textString": "\"%name\"", + "lineColor": { + "r": 0, + "g": 0, + "b": 255 + } + } + } + ] + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "Diagram", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "coordinateSystem": { + "preserveAspectRatio": "false" + } + } + } + } + ] + } + } + } + } + ], + "semantics": {} + }, + "u1": { + "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealInput", + "type": "element", + "long_class_specifier_identifier": "MyController", + "single_component_list": { + "declaration": { + "identifier": "u1" + }, + "description": { + "description_string": "Real input 1", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -140, + "y": 20 + }, + { + "x": -100, + "y": 60 + } + ] + }, + "iconTransformation": { + "extent": [ + { + "x": -140, + "y": 40 + }, + { + "x": -100, + "y": 80 + } + ] + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "__cdl", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "connection", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "hardwired", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "trend", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "interval", + "modification": { + "equal": true, + "expression": { + "simple_expression": "60" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enable", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + }, + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -140, + "y": 20 + }, + { + "x": -100, + "y": 60 + } + ] + }, + "iconTransformation": { + "extent": [ + { + "x": -140, + "y": 40 + }, + { + "x": -100, + "y": 80 + } + ] + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "__cdl", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "connection", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "hardwired", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "trend", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "interval", + "modification": { + "equal": true, + "expression": { + "simple_expression": "60" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enable", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ], + "semantics": {}, + "within": "FromModelica", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MyController.mo" + }, + "u2": { + "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealInput", + "type": "element", + "long_class_specifier_identifier": "MyController", + "single_component_list": { + "declaration": { + "identifier": "u2" + }, + "description": { + "description_string": "Real input 2", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -140, + "y": -60 + }, + { + "x": -100, + "y": -20 + } + ] + }, + "iconTransformation": { + "extent": [ + { + "x": -140, + "y": -80 + }, + { + "x": -100, + "y": -40 + } + ] + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "__cdl", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "connection", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "hardwired", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "trend", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "interval", + "modification": { + "equal": true, + "expression": { + "simple_expression": "60" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enable", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + }, + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -140, + "y": -60 + }, + { + "x": -100, + "y": -20 + } + ] + }, + "iconTransformation": { + "extent": [ + { + "x": -140, + "y": -80 + }, + { + "x": -100, + "y": -40 + } + ] + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "__cdl", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "connection", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "hardwired", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "trend", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "interval", + "modification": { + "equal": true, + "expression": { + "simple_expression": "60" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enable", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ], + "semantics": {}, + "within": "FromModelica", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MyController.mo" + }, + "y": { + "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealOutput", + "type": "element", + "long_class_specifier_identifier": "MyController", + "single_component_list": { + "declaration": { + "identifier": "y" + }, + "description": { + "description_string": "Real output", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 100, + "y": -20 + }, + { + "x": 140, + "y": 20 + } + ] + }, + "iconTransformation": { + "extent": [ + { + "x": 100, + "y": -20 + }, + { + "x": 140, + "y": 20 + } + ] + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "__cdl", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "connection", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "hardwired", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "trend", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "interval", + "modification": { + "equal": true, + "expression": { + "simple_expression": "60" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enable", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + }, + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": 100, + "y": -20 + }, + { + "x": 140, + "y": 20 + } + ] + }, + "iconTransformation": { + "extent": [ + { + "x": 100, + "y": -20 + }, + { + "x": 140, + "y": 20 + } + ] + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "__cdl", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "connection", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "hardwired", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "trend", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "interval", + "modification": { + "equal": true, + "expression": { + "simple_expression": "60" + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "enable", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ], + "semantics": {}, + "within": "FromModelica", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MyController.mo" + }, + "add2": { + "type_specifier": "Buildings.Controls.OBC.CDL.Continuous.Add", + "type": "element", + "long_class_specifier_identifier": "MyController", + "single_component_list": { + "declaration": { + "identifier": "add2" + }, + "description": { + "description_string": "Add two real inputs", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -10, + "y": -10 + }, + { + "x": 10, + "y": 10 + } + ] + } + } + } + } + } + ] + } + }, + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -10, + "y": -10 + }, + { + "x": 10, + "y": 10 + } + ] + } + } + } + } + } + ], + "semantics": {}, + "within": "FromModelica", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MyController.mo" + }, + "subCon1": { + "type_specifier": "SubController", + "type": "element", + "long_class_specifier_identifier": "MyController", + "single_component_list": { + "declaration": { + "identifier": "subCon1" + }, + "description": { + "description_string": "Sub controller", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -10, + "y": -50 + }, + { + "x": 10, + "y": -30 + } + ] + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "__cdl", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "generatePointlist", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + } + ] + } + }, + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -10, + "y": -50 + }, + { + "x": 10, + "y": -30 + } + ] + } + } + } + } + }, + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "__cdl", + "modification": { + "class_modification": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "name": "generatePointlist", + "modification": { + "equal": true, + "expression": { + "simple_expression": "true" + } + } + } + } + } + ] + } + } + } + } + ], + "semantics": {}, + "within": "FromModelica", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MyController.mo" + }, + "subCon2": { + "type_specifier": "SubController", + "type": "element", + "long_class_specifier_identifier": "MyController", + "single_component_list": { + "declaration": { + "identifier": "subCon2" + }, + "description": { + "description_string": "Sub controller", + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -10, + "y": -90 + }, + { + "x": 10, + "y": -70 + } + ] + } + } + } + } + } + ] + } + }, + "annotation": [ + { + "element_modification_or_replaceable": { + "element_modification": { + "Placement": { + "transformation": { + "extent": [ + { + "x": -10, + "y": -90 + }, + { + "x": 10, + "y": -70 + } + ] + } + } + } + } + } + ], + "semantics": {}, + "within": "FromModelica", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MyController.mo" + } + }, + "requiredReferences": { + "connections": { + "u1": [ + "add2.u1" + ], + "u2": [ + "add2.u2", + "subCon1.u", + "subCon2.u" + ], + "add2.y": [ + "y" + ] + } + } +} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/MyControllerWithSemantics.json b/test/reference/objects/test/FromModelica/MyControllerWithSemantics.json index dc458491..c5cbe196 100644 --- a/test/reference/objects/test/FromModelica/MyControllerWithSemantics.json +++ b/test/reference/objects/test/FromModelica/MyControllerWithSemantics.json @@ -1 +1 @@ -{"instances":{"MyControllerWithSemantics":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MyControllerWithSemantics.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"controlledDevice","modification":{"equal":true,"expression":{"simple_expression":"\"My Device\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"metadataLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"Brick 1.3 text/turtle\""}},"description_string":"@prefix Brick: .\n @prefix bldg: . "}}}]}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"myCon\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":100},{"x":100,"y":140}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}],"semantics":{"Brick 1.3 text/turtle":"@prefix Brick: .\n @prefix bldg: . \n"}},"u1":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"MyControllerWithSemantics","single_component_list":{"declaration":{"identifier":"u1"},"description":{"description_string":"Real input 1","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"metadataLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"Brick 1.3 text/turtle\""}},"description_string":"bldg: a Brick:Temperature_Sensor ."}}},{"element_modification_or_replaceable":{"element_modification":{"name":"naturalLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"en\""}},"description_string":" is a temperature sensor input"}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"metadataLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"Brick 1.3 text/turtle\""}},"description_string":"bldg: a Brick:Temperature_Sensor ."}}},{"element_modification_or_replaceable":{"element_modification":{"name":"naturalLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"en\""}},"description_string":" is a temperature sensor input"}}}]}}}}]}}}}],"semantics":{"Brick 1.3 text/turtle":"bldg: a Brick:Temperature_Sensor .\n","en":" is a temperature sensor input\n"},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MyControllerWithSemantics.mo"},"u2":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"MyControllerWithSemantics","single_component_list":{"declaration":{"identifier":"u2"},"description":{"description_string":"Real input 2","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"naturalLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"en\""}},"description_string":" is a temperature sensor input"}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"naturalLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"en\""}},"description_string":" is a temperature sensor input"}}}]}}}}]}}}}],"semantics":{"en":" is a temperature sensor input\n"},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MyControllerWithSemantics.mo"},"y":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"MyControllerWithSemantics","single_component_list":{"declaration":{"identifier":"y"},"description":{"description_string":"Real output","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MyControllerWithSemantics.mo"},"add2":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Add","type":"element","long_class_specifier_identifier":"MyControllerWithSemantics","single_component_list":{"declaration":{"identifier":"add2"},"description":{"description_string":"Add two real inputs","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MyControllerWithSemantics.mo"},"heaCoi":{"type_specifier":"SubController","type":"element","long_class_specifier_identifier":"MyControllerWithSemantics","single_component_list":{"declaration":{"identifier":"heaCoi"},"description":{"description_string":"Heating Coil","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-50},{"x":10,"y":-30}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"metadataLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"Brick 1.3 text/turtle\""}},"description_string":"bldg: a Brick:Heating_Coil ."}}},{"element_modification_or_replaceable":{"element_modification":{"name":"naturalLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"en\""}},"description_string":" is a heating coil."}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-50},{"x":10,"y":-30}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"metadataLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"Brick 1.3 text/turtle\""}},"description_string":"bldg: a Brick:Heating_Coil ."}}},{"element_modification_or_replaceable":{"element_modification":{"name":"naturalLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"en\""}},"description_string":" is a heating coil."}}}]}}}}]}}}}],"semantics":{"Brick 1.3 text/turtle":"bldg: a Brick:Heating_Coil .\n","en":" is a heating coil.\n"},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MyControllerWithSemantics.mo"},"subCon2":{"type_specifier":"SubControllerWithSemantics","type":"element","long_class_specifier_identifier":"MyControllerWithSemantics","single_component_list":{"declaration":{"identifier":"subCon2"},"description":{"description_string":"Cooling Coil","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-90},{"x":10,"y":-70}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-90},{"x":10,"y":-70}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/MyControllerWithSemantics.mo"}},"requiredReferences":{"connections":{"u1":["add2.u1"],"u2":["add2.u2","subCon1.u","subCon2.u"],"add2.y":["y"]}}} \ No newline at end of file +{"instances":{"MyControllerWithSemantics":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MyControllerWithSemantics.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"controlledDevice","modification":{"equal":true,"expression":{"simple_expression":"\"My Device\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"metadataLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"Brick 1.3 text/turtle\""}},"description_string":"@prefix Brick: .\n @prefix bldg: . "}}}]}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"myCon\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":100},{"x":100,"y":140}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}],"semantics":{"Brick 1.3 text/turtle":"@prefix Brick: .\n @prefix bldg: . \n"}},"u1":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"MyControllerWithSemantics","single_component_list":{"declaration":{"identifier":"u1"},"description":{"description_string":"Real input 1","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"metadataLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"Brick 1.3 text/turtle\""}},"description_string":"bldg: a Brick:Temperature_Sensor ."}}},{"element_modification_or_replaceable":{"element_modification":{"name":"naturalLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"en\""}},"description_string":" is a temperature sensor input"}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"metadataLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"Brick 1.3 text/turtle\""}},"description_string":"bldg: a Brick:Temperature_Sensor ."}}},{"element_modification_or_replaceable":{"element_modification":{"name":"naturalLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"en\""}},"description_string":" is a temperature sensor input"}}}]}}}}]}}}}],"semantics":{"Brick 1.3 text/turtle":"bldg: a Brick:Temperature_Sensor .\n","en":" is a temperature sensor input\n"},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MyControllerWithSemantics.mo"},"u2":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"MyControllerWithSemantics","single_component_list":{"declaration":{"identifier":"u2"},"description":{"description_string":"Real input 2","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"naturalLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"en\""}},"description_string":" is a temperature sensor input"}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"naturalLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"en\""}},"description_string":" is a temperature sensor input"}}}]}}}}]}}}}],"semantics":{"en":" is a temperature sensor input\n"},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MyControllerWithSemantics.mo"},"y":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"MyControllerWithSemantics","single_component_list":{"declaration":{"identifier":"y"},"description":{"description_string":"Real output","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MyControllerWithSemantics.mo"},"add2":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Add","type":"element","long_class_specifier_identifier":"MyControllerWithSemantics","single_component_list":{"declaration":{"identifier":"add2"},"description":{"description_string":"Add two real inputs","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MyControllerWithSemantics.mo"},"heaCoi":{"type_specifier":"SubController","type":"element","long_class_specifier_identifier":"MyControllerWithSemantics","single_component_list":{"declaration":{"identifier":"heaCoi"},"description":{"description_string":"Heating Coil","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-50},{"x":10,"y":-30}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"metadataLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"Brick 1.3 text/turtle\""}},"description_string":"bldg: a Brick:Heating_Coil ."}}},{"element_modification_or_replaceable":{"element_modification":{"name":"naturalLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"en\""}},"description_string":" is a heating coil."}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-50},{"x":10,"y":-30}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"metadataLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"Brick 1.3 text/turtle\""}},"description_string":"bldg: a Brick:Heating_Coil ."}}},{"element_modification_or_replaceable":{"element_modification":{"name":"naturalLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"en\""}},"description_string":" is a heating coil."}}}]}}}}]}}}}],"semantics":{"Brick 1.3 text/turtle":"bldg: a Brick:Heating_Coil .\n","en":" is a heating coil.\n"},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MyControllerWithSemantics.mo"},"subCon2":{"type_specifier":"SubControllerWithSemantics","type":"element","long_class_specifier_identifier":"MyControllerWithSemantics","single_component_list":{"declaration":{"identifier":"subCon2"},"description":{"description_string":"Cooling Coil","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-90},{"x":10,"y":-70}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-90},{"x":10,"y":-70}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/MyControllerWithSemantics.mo"}},"requiredReferences":{"connections":{"u1":["add2.u1"],"u2":["add2.u2","subCon1.u","subCon2.u"],"add2.y":["y"]}}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/NoClassComment.json b/test/reference/objects/test/FromModelica/NoClassComment.json index 9a5b086a..a2f07977 100644 --- a/test/reference/objects/test/FromModelica/NoClassComment.json +++ b/test/reference/objects/test/FromModelica/NoClassComment.json @@ -1 +1 @@ -{"instances":{"NoClassComment":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/NoClassComment.mo","type":"long_class_specifier"},"kP":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"NoClassComment","single_component_list":{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/NoClassComment.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"NoClassComment":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/NoClassComment.mo","type":"long_class_specifier"},"kP":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"NoClassComment","single_component_list":{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/NoClassComment.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/NoWithin.json b/test/reference/objects/test/FromModelica/NoWithin.json index 31cc98d0..c8df4b8d 100644 --- a/test/reference/objects/test/FromModelica/NoWithin.json +++ b/test/reference/objects/test/FromModelica/NoWithin.json @@ -1 +1 @@ -{"instances":{"FromModelica":{"within":null,"fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/NoWithin.mo","type":"long_class_specifier"},"one":{"type_prefix":"constant","type_specifier":"Integer","type":"element","long_class_specifier_identifier":"FromModelica","single_component_list":{"declaration":{"identifier":"one","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"An integer constant with value 1"}},"annotation":null,"semantics":{},"within":null,"fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/NoWithin.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"FromModelica":{"within":null,"fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/NoWithin.mo","type":"long_class_specifier"},"one":{"type_prefix":"constant","type_specifier":"Integer","type":"element","long_class_specifier_identifier":"FromModelica","single_component_list":{"declaration":{"identifier":"one","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"An integer constant with value 1"}},"annotation":null,"semantics":{},"within":null,"fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/NoWithin.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/Parameter1.json b/test/reference/objects/test/FromModelica/Parameter1.json index aba3b7e9..1be68ec1 100644 --- a/test/reference/objects/test/FromModelica/Parameter1.json +++ b/test/reference/objects/test/FromModelica/Parameter1.json @@ -1 +1 @@ -{"instances":{"Parameter1":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter1.mo","type":"long_class_specifier"},"kP":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter1","single_component_list":{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter1.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"Parameter1":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter1.mo","type":"long_class_specifier"},"kP":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter1","single_component_list":{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter1.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/Parameter1WithVendorAnnotation.json b/test/reference/objects/test/FromModelica/Parameter1WithVendorAnnotation.json index aea78cd9..b16194db 100644 --- a/test/reference/objects/test/FromModelica/Parameter1WithVendorAnnotation.json +++ b/test/reference/objects/test/FromModelica/Parameter1WithVendorAnnotation.json @@ -1 +1 @@ -{"instances":{"Parameter1WithVendorAnnotation":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter1WithVendorAnnotation.mo","type":"long_class_specifier"},"kP":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter1WithVendorAnnotation","single_component_list":{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"haystack","modification":{"equal":true,"expression":{"simple_expression":"\"{ \\\"dis\\\": \\\"site\\\",\n \\\"area\\\": 400 }\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"brick","modification":{"equal":true,"expression":{"simple_expression":"\"xxxxx\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"point","modification":{"equal":true,"expression":{"simple_expression":"digital"}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"haystack","modification":{"equal":true,"expression":{"simple_expression":"\"{ \\\"dis\\\": \\\"site\\\",\n \\\"area\\\": 400 }\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"brick","modification":{"equal":true,"expression":{"simple_expression":"\"xxxxx\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"point","modification":{"equal":true,"expression":{"simple_expression":"digital"}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter1WithVendorAnnotation.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"Parameter1WithVendorAnnotation":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter1WithVendorAnnotation.mo","type":"long_class_specifier"},"kP":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter1WithVendorAnnotation","single_component_list":{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"haystack","modification":{"equal":true,"expression":{"simple_expression":"\"{ \\\"dis\\\": \\\"site\\\",\n \\\"area\\\": 400 }\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"brick","modification":{"equal":true,"expression":{"simple_expression":"\"xxxxx\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"point","modification":{"equal":true,"expression":{"simple_expression":"digital"}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"haystack","modification":{"equal":true,"expression":{"simple_expression":"\"{ \\\"dis\\\": \\\"site\\\",\n \\\"area\\\": 400 }\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"brick","modification":{"equal":true,"expression":{"simple_expression":"\"xxxxx\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"point","modification":{"equal":true,"expression":{"simple_expression":"digital"}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter1WithVendorAnnotation.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/Parameter2.json b/test/reference/objects/test/FromModelica/Parameter2.json index 7d76a835..4f1b2436 100644 --- a/test/reference/objects/test/FromModelica/Parameter2.json +++ b/test/reference/objects/test/FromModelica/Parameter2.json @@ -1 +1 @@ -{"instances":{"Parameter2":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter2.mo","type":"long_class_specifier"},"myPar1":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter2","single_component_list":{"declaration":{"identifier":"myPar1","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter2.mo"},"myParNoValue":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter2","single_component_list":{"declaration":{"identifier":"myParNoValue"},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter2.mo"},"myParMin":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter2","single_component_list":{"declaration":{"identifier":"myParMin","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}}]}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter2.mo"},"myParMax":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter2","single_component_list":{"declaration":{"identifier":"myParMax","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}}]}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter2.mo"},"myParUnit":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter2","single_component_list":{"declaration":{"identifier":"myParUnit","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}}]}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter2.mo"},"myParInGroup":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter2","single_component_list":{"declaration":{"identifier":"myParInGroup"},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Gains\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Gains\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter2.mo"},"myParInTab":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter2","single_component_list":{"declaration":{"identifier":"myParInTab"},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter2.mo"},"myParInTabInGroup1":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter2","single_component_list":{"declaration":{"identifier":"myParInTabInGroup1"},"description":{"description_string":"Some comment 1","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Initial state\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Initial state\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter2.mo"},"myParInTabInGroup2":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter2","single_component_list":{"declaration":{"identifier":"myParInTabInGroup2"},"description":{"description_string":"Some comment 2","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Initial state\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Initial state\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter2.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"Parameter2":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter2.mo","type":"long_class_specifier"},"myPar1":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter2","single_component_list":{"declaration":{"identifier":"myPar1","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter2.mo"},"myParNoValue":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter2","single_component_list":{"declaration":{"identifier":"myParNoValue"},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter2.mo"},"myParMin":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter2","single_component_list":{"declaration":{"identifier":"myParMin","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}}]}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter2.mo"},"myParMax":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter2","single_component_list":{"declaration":{"identifier":"myParMax","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}}]}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter2.mo"},"myParUnit":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter2","single_component_list":{"declaration":{"identifier":"myParUnit","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}}]}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter2.mo"},"myParInGroup":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter2","single_component_list":{"declaration":{"identifier":"myParInGroup"},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Gains\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Gains\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter2.mo"},"myParInTab":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter2","single_component_list":{"declaration":{"identifier":"myParInTab"},"description":{"description_string":"Some comment","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter2.mo"},"myParInTabInGroup1":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter2","single_component_list":{"declaration":{"identifier":"myParInTabInGroup1"},"description":{"description_string":"Some comment 1","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Initial state\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Initial state\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter2.mo"},"myParInTabInGroup2":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter2","single_component_list":{"declaration":{"identifier":"myParInTabInGroup2"},"description":{"description_string":"Some comment 2","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Initial state\""}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Dialog","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"tab","modification":{"equal":true,"expression":{"simple_expression":"\"Initialization tab\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"group","modification":{"equal":true,"expression":{"simple_expression":"\"Initial state\""}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter2.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/Parameter3.json b/test/reference/objects/test/FromModelica/Parameter3.json index 532ec657..273554a9 100644 --- a/test/reference/objects/test/FromModelica/Parameter3.json +++ b/test/reference/objects/test/FromModelica/Parameter3.json @@ -1 +1 @@ -{"instances":{"Parameter3":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter3.mo","type":"long_class_specifier"},"myPar1":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter3","single_component_list":{"declaration":{"identifier":"myPar1","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter3.mo"},"myParUnit":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Temperature","type":"element","long_class_specifier_identifier":"Parameter3","single_component_list":{"declaration":{"identifier":"myParUnit"},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/Parameter3.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"Parameter3":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter3.mo","type":"long_class_specifier"},"myPar1":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"Parameter3","single_component_list":{"declaration":{"identifier":"myPar1","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter3.mo"},"myParUnit":{"type_prefix":"parameter","type_specifier":"Modelica.SIunits.Temperature","type":"element","long_class_specifier_identifier":"Parameter3","single_component_list":{"declaration":{"identifier":"myParUnit"},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/Parameter3.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/ParameterWithAttributes.json b/test/reference/objects/test/FromModelica/ParameterWithAttributes.json index 1832a00c..bc2d307d 100644 --- a/test/reference/objects/test/FromModelica/ParameterWithAttributes.json +++ b/test/reference/objects/test/FromModelica/ParameterWithAttributes.json @@ -1 +1 @@ -{"instances":{"ParameterWithAttributes":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ParameterWithAttributes.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}],"semantics":{}},"kP":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"ParameterWithAttributes","single_component_list":{"declaration":{"identifier":"kP","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"start","modification":{"equal":true,"expression":{"simple_expression":"0.2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"fixed","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"PressureDifference\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"Pa\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"nominal","modification":{"equal":true,"expression":{"simple_expression":"0.5"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"stateSelect","modification":{"equal":true,"expression":{"simple_expression":"StateSelect.default"}}}}}],"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ParameterWithAttributes.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"ParameterWithAttributes":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ParameterWithAttributes.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}],"semantics":{}},"kP":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"ParameterWithAttributes","single_component_list":{"declaration":{"identifier":"kP","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"start","modification":{"equal":true,"expression":{"simple_expression":"0.2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"fixed","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"max","modification":{"equal":true,"expression":{"simple_expression":"2"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"PressureDifference\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"Pa\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"nominal","modification":{"equal":true,"expression":{"simple_expression":"0.5"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"stateSelect","modification":{"equal":true,"expression":{"simple_expression":"StateSelect.default"}}}}}],"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ParameterWithAttributes.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/ParameterWithDefaultName.json b/test/reference/objects/test/FromModelica/ParameterWithDefaultName.json index d0c149fe..cc70c79d 100644 --- a/test/reference/objects/test/FromModelica/ParameterWithDefaultName.json +++ b/test/reference/objects/test/FromModelica/ParameterWithDefaultName.json @@ -1 +1 @@ -{"instances":{"ParameterWithDefaultName":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ParameterWithDefaultName.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"testName\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}],"semantics":{}},"kP":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"ParameterWithDefaultName","single_component_list":{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ParameterWithDefaultName.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"ParameterWithDefaultName":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ParameterWithDefaultName.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"testName\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}],"semantics":{}},"kP":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"ParameterWithDefaultName","single_component_list":{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ParameterWithDefaultName.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/ParameterWithInfo.json b/test/reference/objects/test/FromModelica/ParameterWithInfo.json index 94d691d3..28b1b43b 100644 --- a/test/reference/objects/test/FromModelica/ParameterWithInfo.json +++ b/test/reference/objects/test/FromModelica/ParameterWithInfo.json @@ -1 +1 @@ -{"instances":{"ParameterWithInfo":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ParameterWithInfo.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}],"semantics":{}},"kP":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"ParameterWithInfo","single_component_list":{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ParameterWithInfo.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"ParameterWithInfo":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ParameterWithInfo.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}],"semantics":{}},"kP":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"ParameterWithInfo","single_component_list":{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ParameterWithInfo.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/ParameterWithVendorAnnotationInInfo.json b/test/reference/objects/test/FromModelica/ParameterWithVendorAnnotationInInfo.json index 2e39d5ec..7904b508 100644 --- a/test/reference/objects/test/FromModelica/ParameterWithVendorAnnotationInInfo.json +++ b/test/reference/objects/test/FromModelica/ParameterWithVendorAnnotationInInfo.json @@ -1 +1 @@ -{"instances":{"ParameterWithVendorAnnotationInInfo":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ParameterWithVendorAnnotationInInfo.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"haystack","modification":{"equal":true,"expression":{"simple_expression":"\"{ \\\"dis\\\": \\\"site\\\",\n \\\"area\\\": 400 }\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"brick","modification":{"equal":true,"expression":{"simple_expression":"\"xxxxx\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"point","modification":{"equal":true,"expression":{"simple_expression":"digital"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}],"semantics":{}},"kP":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"ParameterWithVendorAnnotationInInfo","single_component_list":{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/ParameterWithVendorAnnotationInInfo.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"ParameterWithVendorAnnotationInInfo":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ParameterWithVendorAnnotationInInfo.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"haystack","modification":{"equal":true,"expression":{"simple_expression":"\"{ \\\"dis\\\": \\\"site\\\",\n \\\"area\\\": 400 }\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"brick","modification":{"equal":true,"expression":{"simple_expression":"\"xxxxx\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"point","modification":{"equal":true,"expression":{"simple_expression":"digital"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Documentation","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"info","modification":{"equal":true,"expression":{"simple_expression":"\"\n

\nThis is the info section.\n

\n\""}}}}}]}}}}],"semantics":{}},"kP":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"ParameterWithVendorAnnotationInInfo","single_component_list":{"declaration":{"identifier":"kP","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Some comment"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/ParameterWithVendorAnnotationInInfo.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/PointList.json b/test/reference/objects/test/FromModelica/PointList.json index 31d095e3..6ac793f0 100644 --- a/test/reference/objects/test/FromModelica/PointList.json +++ b/test/reference/objects/test/FromModelica/PointList.json @@ -1 +1 @@ -{"instances":{"PointList":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/PointList.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"controlledDevice","modification":{"equal":true,"expression":{"simple_expression":"\"Test device\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"poiLis\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":100},{"x":100,"y":140}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}],"semantics":{}},"u1":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"PointList","single_component_list":{"declaration":{"identifier":"u1"},"description":{"description_string":"Input one","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/PointList.mo"},"u2":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"PointList","single_component_list":{"declaration":{"identifier":"u2"},"description":{"description_string":"Input two","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"120"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"120"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/PointList.mo"},"y1":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"PointList","single_component_list":{"declaration":{"identifier":"y1"},"description":{"description_string":"Output one","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-80},{"x":140,"y":-40}]},"iconTransformation":{"extent":[{"x":100,"y":40},{"x":140,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-80},{"x":140,"y":-40}]},"iconTransformation":{"extent":[{"x":100,"y":40},{"x":140,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/PointList.mo"},"y2":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"PointList","single_component_list":{"declaration":{"identifier":"y2"},"description":{"description_string":"Output two","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":40},{"x":140,"y":80}]},"iconTransformation":{"extent":[{"x":100,"y":-80},{"x":140,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":40},{"x":140,"y":80}]},"iconTransformation":{"extent":[{"x":100,"y":-80},{"x":140,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/PointList.mo"},"con1":{"type_specifier":"MyController","type":"element","long_class_specifier_identifier":"PointList","single_component_list":{"declaration":{"identifier":"con1"},"description":{"description_string":"Subcontroller one","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon1\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon2\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon2.u\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"120"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":50},{"x":10,"y":70}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon1\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon2\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon2.u\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"120"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":50},{"x":10,"y":70}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/PointList.mo"},"con2":{"type_specifier":"MyController","type":"element","long_class_specifier_identifier":"PointList","single_component_list":{"declaration":{"identifier":"con2"},"description":{"description_string":"Subcontroller two","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-70},{"x":10,"y":-50}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-70},{"x":10,"y":-50}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/PointList.mo"}},"requiredReferences":{"connections":{"u1":["con1.u1","con2.u1"],"u2":["con1.u2","con2.u2"],"con1.y":["y2"],"con2.y":["y1"]}}} \ No newline at end of file +{"instances":{"PointList":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/PointList.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"controlledDevice","modification":{"equal":true,"expression":{"simple_expression":"\"Test device\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"poiLis\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":100},{"x":100,"y":140}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}],"semantics":{}},"u1":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"PointList","single_component_list":{"declaration":{"identifier":"u1"},"description":{"description_string":"Input one","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]},"iconTransformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/PointList.mo"},"u2":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"PointList","single_component_list":{"declaration":{"identifier":"u2"},"description":{"description_string":"Input two","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"120"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"120"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/PointList.mo"},"y1":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"PointList","single_component_list":{"declaration":{"identifier":"y1"},"description":{"description_string":"Output one","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-80},{"x":140,"y":-40}]},"iconTransformation":{"extent":[{"x":100,"y":40},{"x":140,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-80},{"x":140,"y":-40}]},"iconTransformation":{"extent":[{"x":100,"y":40},{"x":140,"y":80}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/PointList.mo"},"y2":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"PointList","single_component_list":{"declaration":{"identifier":"y2"},"description":{"description_string":"Output two","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":40},{"x":140,"y":80}]},"iconTransformation":{"extent":[{"x":100,"y":-80},{"x":140,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":40},{"x":140,"y":80}]},"iconTransformation":{"extent":[{"x":100,"y":-80},{"x":140,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"false"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/PointList.mo"},"con1":{"type_specifier":"MyController","type":"element","long_class_specifier_identifier":"PointList","single_component_list":{"declaration":{"identifier":"con1"},"description":{"description_string":"Subcontroller one","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon1\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon2\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon2.u\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"120"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":50},{"x":10,"y":70}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon1\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon2\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"propagate","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"instance","modification":{"equal":true,"expression":{"simple_expression":"\"subCon2.u\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"120"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":50},{"x":10,"y":70}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/PointList.mo"},"con2":{"type_specifier":"MyController","type":"element","long_class_specifier_identifier":"PointList","single_component_list":{"declaration":{"identifier":"con2"},"description":{"description_string":"Subcontroller two","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-70},{"x":10,"y":-50}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-70},{"x":10,"y":-50}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/PointList.mo"}},"requiredReferences":{"connections":{"u1":["con1.u1","con2.u1"],"u2":["con1.u2","con2.u2"],"con1.y":["y2"],"con2.y":["y1"]}}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/RemovableInputs.json b/test/reference/objects/test/FromModelica/RemovableInputs.json index f24d7e01..582ecffa 100644 --- a/test/reference/objects/test/FromModelica/RemovableInputs.json +++ b/test/reference/objects/test/FromModelica/RemovableInputs.json @@ -1 +1 @@ -{"instances":{"RemovableInputs":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/RemovableInputs.mo","type":"long_class_specifier"},"enaBlo":{"type_prefix":"parameter","type_specifier":"Boolean","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"enaBlo","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Flag for enabling instance"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/RemovableInputs.mo"},"have_winSen":{"type_prefix":"parameter","type_specifier":"Boolean","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"have_winSen"},"description":{"description_string":"True: there is window status sensor"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/RemovableInputs.mo"},"have_occSen":{"type_prefix":"parameter","type_specifier":"Boolean","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"have_occSen"},"description":{"description_string":"True: there is occupancy sensor"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/RemovableInputs.mo"},"u":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"u"},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/RemovableInputs.mo"},"TOut":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"TOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Temperature input","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/RemovableInputs.mo"},"TOutWitDef":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"TOutWitDef","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Temperature input with specified default value","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-70},{"x":-100,"y":-30}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"default","modification":{"equal":true,"expression":{"simple_expression":"300.15"}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-70},{"x":-100,"y":-30}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"default","modification":{"equal":true,"expression":{"simple_expression":"300.15"}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/RemovableInputs.mo"},"uWin":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanInput","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"uWin"},"condition_attribute":{"expression":{"simple_expression":"have_winSen"}},"description":{"description_string":"Window opening status","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-100},{"x":-100,"y":-60}]},"iconTransformation":{"extent":[{"x":-140,"y":-110},{"x":-100,"y":-70}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-100},{"x":-100,"y":-60}]},"iconTransformation":{"extent":[{"x":-140,"y":-110},{"x":-100,"y":-70}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/RemovableInputs.mo"},"nOcc":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.IntegerInput","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"nOcc"},"condition_attribute":{"expression":{"simple_expression":"have_occSen"}},"description":{"description_string":"Occupancy","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/RemovableInputs.mo"},"y":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"y"},"description":{"description_string":"Output connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/RemovableInputs.mo"},"abs":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Abs","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"abs"},"condition_attribute":{"expression":{"simple_expression":"not enaBlo"}},"description":{"description_string":"Instance could be conditional disabled","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/RemovableInputs.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"RemovableInputs":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/RemovableInputs.mo","type":"long_class_specifier"},"enaBlo":{"type_prefix":"parameter","type_specifier":"Boolean","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"enaBlo","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Flag for enabling instance"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/RemovableInputs.mo"},"have_winSen":{"type_prefix":"parameter","type_specifier":"Boolean","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"have_winSen"},"description":{"description_string":"True: there is window status sensor"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/RemovableInputs.mo"},"have_occSen":{"type_prefix":"parameter","type_specifier":"Boolean","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"have_occSen"},"description":{"description_string":"True: there is occupancy sensor"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/RemovableInputs.mo"},"u":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"u"},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/RemovableInputs.mo"},"TOut":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"TOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Temperature input","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/RemovableInputs.mo"},"TOutWitDef":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"TOutWitDef","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"enaBlo"}},"description":{"description_string":"Temperature input with specified default value","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-70},{"x":-100,"y":-30}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"default","modification":{"equal":true,"expression":{"simple_expression":"300.15"}}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-70},{"x":-100,"y":-30}]},"iconTransformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"default","modification":{"equal":true,"expression":{"simple_expression":"300.15"}}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/RemovableInputs.mo"},"uWin":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanInput","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"uWin"},"condition_attribute":{"expression":{"simple_expression":"have_winSen"}},"description":{"description_string":"Window opening status","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-100},{"x":-100,"y":-60}]},"iconTransformation":{"extent":[{"x":-140,"y":-110},{"x":-100,"y":-70}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-100},{"x":-100,"y":-60}]},"iconTransformation":{"extent":[{"x":-140,"y":-110},{"x":-100,"y":-70}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/RemovableInputs.mo"},"nOcc":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.IntegerInput","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"nOcc"},"condition_attribute":{"expression":{"simple_expression":"have_occSen"}},"description":{"description_string":"Occupancy","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/RemovableInputs.mo"},"y":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"y"},"description":{"description_string":"Output connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-10},{"x":120,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/RemovableInputs.mo"},"abs":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Abs","type":"element","long_class_specifier_identifier":"RemovableInputs","single_component_list":{"declaration":{"identifier":"abs"},"condition_attribute":{"expression":{"simple_expression":"not enaBlo"}},"description":{"description_string":"Instance could be conditional disabled","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/RemovableInputs.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/SubController.json b/test/reference/objects/test/FromModelica/SubController.json index 062dc929..cc5ed632 100644 --- a/test/reference/objects/test/FromModelica/SubController.json +++ b/test/reference/objects/test/FromModelica/SubController.json @@ -2,7 +2,7 @@ "instances": { "SubController": { "within": "FromModelica", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/SubController.mo", + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/SubController.mo", "type": "long_class_specifier", "annotation": [ { @@ -379,7 +379,7 @@ ], "semantics": {}, "within": "FromModelica", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/SubController.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/SubController.mo" }, "y": { "type_specifier": "Buildings.Controls.OBC.CDL.Interfaces.RealOutput", @@ -607,7 +607,7 @@ ], "semantics": {}, "within": "FromModelica", - "fullMoFilePath": "/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/SubController.mo" + "fullMoFilePath": "/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/SubController.mo" } }, "requiredReferences": {} diff --git a/test/reference/objects/test/FromModelica/SubControllerWithSemantics.json b/test/reference/objects/test/FromModelica/SubControllerWithSemantics.json index eb4ae28f..b2e4028b 100644 --- a/test/reference/objects/test/FromModelica/SubControllerWithSemantics.json +++ b/test/reference/objects/test/FromModelica/SubControllerWithSemantics.json @@ -1 +1 @@ -{"instances":{"SubControllerWithSemantics":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/SubControllerWithSemantics.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"controlledDevice","modification":{"equal":true,"expression":{"simple_expression":"\"Sub Device\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"subCon\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":100},{"x":100,"y":140}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"metadataLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"Brick 1.3 text/turtle\""}},"description_string":"@prefix Brick: .\n @prefix bldg: . \n bldg: a Brick:Cooling_Coil . "}}}]}}}}]}}}}],"semantics":{"Brick 1.3 text/turtle":"@prefix Brick: .\n @prefix bldg: . \n bldg: a Brick:Cooling_Coil . \n"}},"u":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"SubControllerWithSemantics","single_component_list":{"declaration":{"identifier":"u"},"description":{"description_string":"Real input","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/SubControllerWithSemantics.mo"},"y":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"SubControllerWithSemantics","single_component_list":{"declaration":{"identifier":"y"},"description":{"description_string":"Real output","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/SubControllerWithSemantics.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"SubControllerWithSemantics":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/SubControllerWithSemantics.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"generatePointlist","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"controlledDevice","modification":{"equal":true,"expression":{"simple_expression":"\"Sub Device\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"defaultComponentName","modification":{"equal":true,"expression":{"simple_expression":"\"subCon\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}},{"element_modification_or_replaceable":{"element_modification":{"graphics":[{"name":"Rectangle","attribute":{"extent":[{"x":-100,"y":-100},{"x":100,"y":100}],"lineColor":{"r":0,"g":0,"b":127},"fillColor":{"r":255,"g":255,"b":255},"fillPattern":"FillPattern.Solid"}},{"name":"Text","attribute":{"extent":[{"x":-100,"y":100},{"x":100,"y":140}],"textString":"\"%name\"","lineColor":{"r":0,"g":0,"b":255}}}]}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"semantic","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"metadataLanguage","modification":{"equal":true,"expression":{"simple_expression":"\"Brick 1.3 text/turtle\""}},"description_string":"@prefix Brick: .\n @prefix bldg: . \n bldg: a Brick:Cooling_Coil . "}}}]}}}}]}}}}],"semantics":{"Brick 1.3 text/turtle":"@prefix Brick: .\n @prefix bldg: . \n bldg: a Brick:Cooling_Coil . \n"}},"u":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"SubControllerWithSemantics","single_component_list":{"declaration":{"identifier":"u"},"description":{"description_string":"Real input","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/SubControllerWithSemantics.mo"},"y":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"SubControllerWithSemantics","single_component_list":{"declaration":{"identifier":"y"},"description":{"description_string":"Real output","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"__cdl","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"connection","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"hardwired","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"trend","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"interval","modification":{"equal":true,"expression":{"simple_expression":"60"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"enable","modification":{"equal":true,"expression":{"simple_expression":"true"}}}}}]}}}}]}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/SubControllerWithSemantics.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/TestEvaluation_1.json b/test/reference/objects/test/FromModelica/TestEvaluation_1.json index bfa302af..a026aa3e 100644 --- a/test/reference/objects/test/FromModelica/TestEvaluation_1.json +++ b/test/reference/objects/test/FromModelica/TestEvaluation_1.json @@ -1 +1 @@ -{"instances":{"TestEvaluation_1":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_1.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"uses","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"Buildings","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"version","modification":{"equal":true,"expression":{"simple_expression":"\"8.0.0\""}}}}}]}}}}]}}}}],"semantics":{}},"k1":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"TestEvaluation_1","single_component_list":{"declaration":{"identifier":"k1","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Constant output value"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_1.mo"},"con":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Sources.Constant","type":"element","long_class_specifier_identifier":"TestEvaluation_1","single_component_list":{"declaration":{"identifier":"con","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k1"}}}}}]}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":10},{"x":0,"y":30}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":10},{"x":0,"y":30}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_1.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"TestEvaluation_1":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_1.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"uses","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"Buildings","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"version","modification":{"equal":true,"expression":{"simple_expression":"\"8.0.0\""}}}}}]}}}}]}}}}],"semantics":{}},"k1":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"TestEvaluation_1","single_component_list":{"declaration":{"identifier":"k1","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"Constant output value"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_1.mo"},"con":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Sources.Constant","type":"element","long_class_specifier_identifier":"TestEvaluation_1","single_component_list":{"declaration":{"identifier":"con","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k1"}}}}}]}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":10},{"x":0,"y":30}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-20,"y":10},{"x":0,"y":30}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_1.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/TestEvaluation_2.json b/test/reference/objects/test/FromModelica/TestEvaluation_2.json index e898e922..1e6a06f4 100644 --- a/test/reference/objects/test/FromModelica/TestEvaluation_2.json +++ b/test/reference/objects/test/FromModelica/TestEvaluation_2.json @@ -1 +1 @@ -{"instances":{"TestEvaluation_2":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_2.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"uses","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"Buildings","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"version","modification":{"equal":true,"expression":{"simple_expression":"\"8.0.0\""}}}}}]}}}}]}}}}],"semantics":{}},"uLow":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"TestEvaluation_2","single_component_list":{"declaration":{"identifier":"uLow","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}}],"equal":true,"expression":{"simple_expression":"0.5"}}},"description":{"description_string":"if y=true and uuHigh, switch to y=true"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_2.mo"},"u":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"TestEvaluation_2","single_component_list":{"declaration":{"identifier":"u"},"description":{"description_string":"Real input signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-118,"y":-20},{"x":-78,"y":20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-118,"y":-20},{"x":-78,"y":20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_2.mo"},"y":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput","type":"element","long_class_specifier_identifier":"TestEvaluation_2","single_component_list":{"declaration":{"identifier":"y"},"description":{"description_string":"Boolean output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":80,"y":-20},{"x":120,"y":20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":80,"y":-20},{"x":120,"y":20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_2.mo"},"hys":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Hysteresis","type":"element","long_class_specifier_identifier":"TestEvaluation_2","single_component_list":{"declaration":{"identifier":"hys","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uLow","modification":{"equal":true,"expression":{"simple_expression":"uLow"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"uHigh","modification":{"equal":true,"expression":{"simple_expression":"uHigh"}}}}}]}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_2.mo"}},"requiredReferences":{"connections":{"hys.u":["u"],"hys.y":["y"]}}} \ No newline at end of file +{"instances":{"TestEvaluation_2":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_2.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"uses","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"Buildings","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"version","modification":{"equal":true,"expression":{"simple_expression":"\"8.0.0\""}}}}}]}}}}]}}}}],"semantics":{}},"uLow":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"TestEvaluation_2","single_component_list":{"declaration":{"identifier":"uLow","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"min","modification":{"equal":true,"expression":{"simple_expression":"0"}}}}}],"equal":true,"expression":{"simple_expression":"0.5"}}},"description":{"description_string":"if y=true and uuHigh, switch to y=true"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_2.mo"},"u":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"TestEvaluation_2","single_component_list":{"declaration":{"identifier":"u"},"description":{"description_string":"Real input signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-118,"y":-20},{"x":-78,"y":20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-118,"y":-20},{"x":-78,"y":20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_2.mo"},"y":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput","type":"element","long_class_specifier_identifier":"TestEvaluation_2","single_component_list":{"declaration":{"identifier":"y"},"description":{"description_string":"Boolean output signal","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":80,"y":-20},{"x":120,"y":20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":80,"y":-20},{"x":120,"y":20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_2.mo"},"hys":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Hysteresis","type":"element","long_class_specifier_identifier":"TestEvaluation_2","single_component_list":{"declaration":{"identifier":"hys","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"uLow","modification":{"equal":true,"expression":{"simple_expression":"uLow"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"uHigh","modification":{"equal":true,"expression":{"simple_expression":"uHigh"}}}}}]}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_2.mo"}},"requiredReferences":{"connections":{"hys.u":["u"],"hys.y":["y"]}}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/TestEvaluation_3.json b/test/reference/objects/test/FromModelica/TestEvaluation_3.json index d842fdc1..d7fc4746 100644 --- a/test/reference/objects/test/FromModelica/TestEvaluation_3.json +++ b/test/reference/objects/test/FromModelica/TestEvaluation_3.json @@ -1 +1 @@ -{"instances":{"TestEvaluation_3":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_3.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}],"semantics":{}},"k1":{"type_prefix":"parameter","type_specifier":"Boolean","type":"element","long_class_specifier_identifier":"TestEvaluation_3","single_component_list":{"declaration":{"identifier":"k1","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Constant output value"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_3.mo"},"k2":{"type_prefix":"parameter","type_specifier":"Boolean","type":"element","long_class_specifier_identifier":"TestEvaluation_3","single_component_list":{"declaration":{"identifier":"k2","modification":{"equal":true,"expression":{"simple_expression":"not k1"}}}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_3.mo"},"con":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Sources.Constant","type":"element","long_class_specifier_identifier":"TestEvaluation_3","single_component_list":{"declaration":{"identifier":"con","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k2"}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"not k1"}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":10},{"x":10,"y":30}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":10},{"x":10,"y":30}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_3.mo"},"con1":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Sources.Constant","type":"element","long_class_specifier_identifier":"TestEvaluation_3","single_component_list":{"declaration":{"identifier":"con1","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k1"}}}}}]}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-30},{"x":12,"y":-10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-30},{"x":12,"y":-10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_3.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"TestEvaluation_3":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_3.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}],"semantics":{}},"k1":{"type_prefix":"parameter","type_specifier":"Boolean","type":"element","long_class_specifier_identifier":"TestEvaluation_3","single_component_list":{"declaration":{"identifier":"k1","modification":{"equal":true,"expression":{"simple_expression":"true"}}},"description":{"description_string":"Constant output value"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_3.mo"},"k2":{"type_prefix":"parameter","type_specifier":"Boolean","type":"element","long_class_specifier_identifier":"TestEvaluation_3","single_component_list":{"declaration":{"identifier":"k2","modification":{"equal":true,"expression":{"simple_expression":"not k1"}}}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_3.mo"},"con":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Sources.Constant","type":"element","long_class_specifier_identifier":"TestEvaluation_3","single_component_list":{"declaration":{"identifier":"con","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k2"}}}}}]}},"condition_attribute":{"expression":{"simple_expression":"not k1"}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":10},{"x":10,"y":30}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":10},{"x":10,"y":30}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_3.mo"},"con1":{"type_specifier":"Buildings.Controls.OBC.CDL.Logical.Sources.Constant","type":"element","long_class_specifier_identifier":"TestEvaluation_3","single_component_list":{"declaration":{"identifier":"con1","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"k","modification":{"equal":true,"expression":{"simple_expression":"k1"}}}}}]}},"description":{"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-30},{"x":12,"y":-10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-30},{"x":12,"y":-10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_3.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/TestEvaluation_4.json b/test/reference/objects/test/FromModelica/TestEvaluation_4.json index 2ba1e840..8628a65c 100644 --- a/test/reference/objects/test/FromModelica/TestEvaluation_4.json +++ b/test/reference/objects/test/FromModelica/TestEvaluation_4.json @@ -1 +1 @@ -{"instances":{"TestEvaluation_4":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_4.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}],"semantics":{}},"controllerTypeCooCoi":{"type_prefix":"parameter","type_specifier":"Buildings.Controls.OBC.CDL.Types.SimpleController","type":"element","long_class_specifier_identifier":"TestEvaluation_4","single_component_list":{"declaration":{"identifier":"controllerTypeCooCoi","modification":{"equal":true,"expression":{"simple_expression":"Buildings.Controls.OBC.CDL.Types.SimpleController.PI"}}},"description":{"description_string":"Type of controller"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_4.mo"},"kCooCoi":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"TestEvaluation_4","single_component_list":{"declaration":{"identifier":"kCooCoi","modification":{"equal":true,"expression":{"simple_expression":"0.1"}}},"description":{"description_string":"Gain for cooling coil control loop signal"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_4.mo"},"TiCooCoi":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"TestEvaluation_4","single_component_list":{"declaration":{"identifier":"TiCooCoi","modification":{"equal":true,"expression":{"simple_expression":"900"}}},"description":{"description_string":"Time constant of integrator block for cooling coil control loop signal"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_4.mo"},"TSupCooSet":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"TestEvaluation_4","single_component_list":{"declaration":{"identifier":"TSupCooSet"},"description":{"description_string":"Cooling supply air temperature setpoint","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_4.mo"},"TAirSup":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"TestEvaluation_4","single_component_list":{"declaration":{"identifier":"TAirSup"},"description":{"description_string":"Supply air temperature measurement","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":0},{"x":-100,"y":40}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":0},{"x":-100,"y":40}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_4.mo"},"uZonSta":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.IntegerInput","type":"element","long_class_specifier_identifier":"TestEvaluation_4","single_component_list":{"declaration":{"identifier":"uZonSta"},"description":{"description_string":"Zone state","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]},"iconTransformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]},"iconTransformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_4.mo"},"u1SupFan":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanInput","type":"element","long_class_specifier_identifier":"TestEvaluation_4","single_component_list":{"declaration":{"identifier":"u1SupFan"},"description":{"description_string":"Supply fan proven on","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]},"iconTransformation":{"extent":[{"x":-140,"y":-98},{"x":-100,"y":-58}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]},"iconTransformation":{"extent":[{"x":-140,"y":-98},{"x":-100,"y":-58}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_4.mo"},"yCooCoi":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"TestEvaluation_4","single_component_list":{"declaration":{"identifier":"yCooCoi"},"description":{"description_string":"Cooling coil position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_4.mo"},"cooCoi":{"type_specifier":"Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints.CoolingCoil","type":"element","long_class_specifier_identifier":"TestEvaluation_4","single_component_list":{"declaration":{"identifier":"cooCoi","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"controllerTypeCooCoi","modification":{"equal":true,"expression":{"simple_expression":"controllerTypeCooCoi"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"kCooCoi","modification":{"equal":true,"expression":{"simple_expression":"kCooCoi"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"TiCooCoi","modification":{"equal":true,"expression":{"simple_expression":"TiCooCoi"}}}}}]}},"description":{"description_string":"Cooling coil control","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/TestEvaluation_4.mo"}},"requiredReferences":{"connections":{"cooCoi.TSupCooSet":["TSupCooSet"],"cooCoi.TAirSup":["TAirSup"],"cooCoi.uZonSta":["uZonSta"],"cooCoi.u1SupFan":["u1SupFan"],"cooCoi.yCooCoi":["yCooCoi"]}}} \ No newline at end of file +{"instances":{"TestEvaluation_4":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_4.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}],"semantics":{}},"controllerTypeCooCoi":{"type_prefix":"parameter","type_specifier":"Buildings.Controls.OBC.CDL.Types.SimpleController","type":"element","long_class_specifier_identifier":"TestEvaluation_4","single_component_list":{"declaration":{"identifier":"controllerTypeCooCoi","modification":{"equal":true,"expression":{"simple_expression":"Buildings.Controls.OBC.CDL.Types.SimpleController.PI"}}},"description":{"description_string":"Type of controller"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_4.mo"},"kCooCoi":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"TestEvaluation_4","single_component_list":{"declaration":{"identifier":"kCooCoi","modification":{"equal":true,"expression":{"simple_expression":"0.1"}}},"description":{"description_string":"Gain for cooling coil control loop signal"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_4.mo"},"TiCooCoi":{"type_prefix":"parameter","type_specifier":"Real","type":"element","long_class_specifier_identifier":"TestEvaluation_4","single_component_list":{"declaration":{"identifier":"TiCooCoi","modification":{"equal":true,"expression":{"simple_expression":"900"}}},"description":{"description_string":"Time constant of integrator block for cooling coil control loop signal"}},"annotation":null,"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_4.mo"},"TSupCooSet":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"TestEvaluation_4","single_component_list":{"declaration":{"identifier":"TSupCooSet"},"description":{"description_string":"Cooling supply air temperature setpoint","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":40},{"x":-100,"y":80}]},"iconTransformation":{"extent":[{"x":-140,"y":60},{"x":-100,"y":100}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_4.mo"},"TAirSup":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"TestEvaluation_4","single_component_list":{"declaration":{"identifier":"TAirSup"},"description":{"description_string":"Supply air temperature measurement","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":0},{"x":-100,"y":40}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":0},{"x":-100,"y":40}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_4.mo"},"uZonSta":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.IntegerInput","type":"element","long_class_specifier_identifier":"TestEvaluation_4","single_component_list":{"declaration":{"identifier":"uZonSta"},"description":{"description_string":"Zone state","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]},"iconTransformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]},"iconTransformation":{"extent":[{"x":-140,"y":-60},{"x":-100,"y":-20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_4.mo"},"u1SupFan":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.BooleanInput","type":"element","long_class_specifier_identifier":"TestEvaluation_4","single_component_list":{"declaration":{"identifier":"u1SupFan"},"description":{"description_string":"Supply fan proven on","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]},"iconTransformation":{"extent":[{"x":-140,"y":-98},{"x":-100,"y":-58}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-80},{"x":-100,"y":-40}]},"iconTransformation":{"extent":[{"x":-140,"y":-98},{"x":-100,"y":-58}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_4.mo"},"yCooCoi":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"TestEvaluation_4","single_component_list":{"declaration":{"identifier":"yCooCoi"},"description":{"description_string":"Cooling coil position","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_4.mo"},"cooCoi":{"type_specifier":"Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.SetPoints.CoolingCoil","type":"element","long_class_specifier_identifier":"TestEvaluation_4","single_component_list":{"declaration":{"identifier":"cooCoi","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"controllerTypeCooCoi","modification":{"equal":true,"expression":{"simple_expression":"controllerTypeCooCoi"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"kCooCoi","modification":{"equal":true,"expression":{"simple_expression":"kCooCoi"}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"TiCooCoi","modification":{"equal":true,"expression":{"simple_expression":"TiCooCoi"}}}}}]}},"description":{"description_string":"Cooling coil control","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-10,"y":-10},{"x":10,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/TestEvaluation_4.mo"}},"requiredReferences":{"connections":{"cooCoi.TSupCooSet":["TSupCooSet"],"cooCoi.TAirSup":["TAirSup"],"cooCoi.uZonSta":["uZonSta"],"cooCoi.u1SupFan":["u1SupFan"],"cooCoi.yCooCoi":["yCooCoi"]}}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/VariableModification.json b/test/reference/objects/test/FromModelica/VariableModification.json index e389fafa..503e4178 100644 --- a/test/reference/objects/test/FromModelica/VariableModification.json +++ b/test/reference/objects/test/FromModelica/VariableModification.json @@ -1 +1 @@ -{"instances":{"VariableModification":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/VariableModification.mo","type":"long_class_specifier"},"u":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"VariableModification","single_component_list":{"declaration":{"identifier":"u"},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/VariableModification.mo"},"TOut":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"VariableModification","single_component_list":{"declaration":{"identifier":"TOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"description":{"description_string":"Temperature input","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/VariableModification.mo"},"abs":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Abs","type":"element","long_class_specifier_identifier":"VariableModification","single_component_list":{"declaration":{"identifier":"abs","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"u","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"degC\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"y","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"degC\""}}}}}]}}}}]}},"description":{"description_string":"Instance with modified input and output attributes","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/VariableModification.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"VariableModification":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/VariableModification.mo","type":"long_class_specifier"},"u":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"VariableModification","single_component_list":{"declaration":{"identifier":"u"},"description":{"description_string":"Input connector","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-140,"y":-40},{"x":-100,"y":0}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/VariableModification.mo"},"TOut":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"VariableModification","single_component_list":{"declaration":{"identifier":"TOut","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"quantity","modification":{"equal":true,"expression":{"simple_expression":"\"ThermodynamicTemperature\""}}}}}]}},"description":{"description_string":"Temperature input","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]},"iconTransformation":{"extent":[{"x":-140,"y":20},{"x":-100,"y":60}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/VariableModification.mo"},"abs":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Abs","type":"element","long_class_specifier_identifier":"VariableModification","single_component_list":{"declaration":{"identifier":"abs","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"u","modification":{"class_modification":[{"element_modification_or_replaceable":{"final":true,"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"degC\""}}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"y","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"name":"unit","modification":{"equal":true,"expression":{"simple_expression":"\"K\""}}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"displayUnit","modification":{"equal":true,"expression":{"simple_expression":"\"degC\""}}}}}]}}}}]}},"description":{"description_string":"Instance with modified input and output attributes","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/VariableModification.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/WithCDLElementary.json b/test/reference/objects/test/FromModelica/WithCDLElementary.json index 9bd44e72..1c4abd75 100644 --- a/test/reference/objects/test/FromModelica/WithCDLElementary.json +++ b/test/reference/objects/test/FromModelica/WithCDLElementary.json @@ -1 +1 @@ -{"instances":{"WithCDLElementary":{"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/WithCDLElementary.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}],"semantics":{}},"gre":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Greater","type":"element","long_class_specifier_identifier":"WithCDLElementary","single_component_list":{"declaration":{"identifier":"gre"},"description":{"description_string":"CDL elementary block with inside class","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/WithCDLElementary.mo"},"u":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"WithCDLElementary","single_component_list":{"declaration":{"identifier":"u"},"description":{"description_string":"Real input","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-212,"y":-12},{"x":-172,"y":28}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-212,"y":-12},{"x":-172,"y":28}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/WithCDLElementary.mo"},"y":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"WithCDLElementary","single_component_list":{"declaration":{"identifier":"y"},"description":{"description_string":"Real output","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":-184,"y":-4},{"x":-144,"y":36}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":-184,"y":-4},{"x":-144,"y":36}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/WithCDLElementary.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"WithCDLElementary":{"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/WithCDLElementary.mo","type":"long_class_specifier","annotation":[{"element_modification_or_replaceable":{"element_modification":{"name":"Icon","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}},{"element_modification_or_replaceable":{"element_modification":{"name":"Diagram","modification":{"class_modification":[{"element_modification_or_replaceable":{"element_modification":{"coordinateSystem":{"preserveAspectRatio":"false"}}}}]}}}}],"semantics":{}},"gre":{"type_specifier":"Buildings.Controls.OBC.CDL.Continuous.Greater","type":"element","long_class_specifier_identifier":"WithCDLElementary","single_component_list":{"declaration":{"identifier":"gre"},"description":{"description_string":"CDL elementary block with inside class","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-8,"y":-10},{"x":12,"y":10}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/WithCDLElementary.mo"},"u":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealInput","type":"element","long_class_specifier_identifier":"WithCDLElementary","single_component_list":{"declaration":{"identifier":"u"},"description":{"description_string":"Real input","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-212,"y":-12},{"x":-172,"y":28}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":-140,"y":-20},{"x":-100,"y":20}]},"iconTransformation":{"extent":[{"x":-212,"y":-12},{"x":-172,"y":28}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/WithCDLElementary.mo"},"y":{"type_specifier":"Buildings.Controls.OBC.CDL.Interfaces.RealOutput","type":"element","long_class_specifier_identifier":"WithCDLElementary","single_component_list":{"declaration":{"identifier":"y"},"description":{"description_string":"Real output","annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":-184,"y":-4},{"x":-144,"y":36}]}}}}}]}},"annotation":[{"element_modification_or_replaceable":{"element_modification":{"Placement":{"transformation":{"extent":[{"x":100,"y":-20},{"x":140,"y":20}]},"iconTransformation":{"extent":[{"x":-184,"y":-4},{"x":-144,"y":36}]}}}}}],"semantics":{},"within":"FromModelica","fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/WithCDLElementary.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/reference/objects/test/FromModelica/package.json b/test/reference/objects/test/FromModelica/package.json index efeb8442..589152bb 100644 --- a/test/reference/objects/test/FromModelica/package.json +++ b/test/reference/objects/test/FromModelica/package.json @@ -1 +1 @@ -{"instances":{"FromModelica":{"within":null,"fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/package.mo","type":"long_class_specifier"},"one":{"type_prefix":"constant","type_specifier":"Integer","type":"element","long_class_specifier_identifier":"FromModelica","single_component_list":{"declaration":{"identifier":"one","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"An integer constant with value 1"}},"annotation":null,"semantics":{},"within":null,"fullMoFilePath":"/Users/akprakash/Programming/modelica/modelica-json/test/FromModelica/package.mo"}},"requiredReferences":{}} \ No newline at end of file +{"instances":{"FromModelica":{"within":null,"fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/package.mo","type":"long_class_specifier"},"one":{"type_prefix":"constant","type_specifier":"Integer","type":"element","long_class_specifier_identifier":"FromModelica","single_component_list":{"declaration":{"identifier":"one","modification":{"equal":true,"expression":{"simple_expression":"1"}}},"description":{"description_string":"An integer constant with value 1"}},"annotation":null,"semantics":{},"within":null,"fullMoFilePath":"/home/jianjunhu/GitFolder/modelica-json/test/FromModelica/package.mo"}},"requiredReferences":{}} \ No newline at end of file diff --git a/test/test_graphicalPrimitive.js b/test/test_graphicalPrimitive.js index b75ee47d..dd8ffa1c 100644 --- a/test/test_graphicalPrimitive.js +++ b/test/test_graphicalPrimitive.js @@ -16,12 +16,16 @@ function equalObjects (dict, reference) { if (Object.keys(dict).length !== Object.keys(reference).length) { return false } - var keys = Object.keys(dict).sort() - for (var i = 0; i < keys.length; i++) { - var idx = keys[i] + const keys = Object.keys(dict).sort() + for (let i = 0; i < keys.length; i++) { + const idx = keys[i] if (!(idx in reference)) { return false - } else { + } + } + for (let i = 0; i < keys.length; i++) { + const idx = keys[i] + if (idx in reference) { return equalObjects(dict[idx], reference[idx]) } } @@ -30,7 +34,7 @@ function equalObjects (dict, reference) { if (dict.length !== reference.length) { return false } else { - for (var j = 0; j < dict.length; j++) { + for (let j = 0; j < dict.length; j++) { if (!(equalObjects(dict[j], reference[j]))) { return false } @@ -49,193 +53,193 @@ mo.afterEach(() => { mo.describe('graphicalPrimitives.js', function () { mo.describe('testing is_graphic_annotation', function () { mo.it('testing is a graphical annotation', function () { - var rawJson = 'Line' - var jsonOutput = gp.isGraphicAnnotation(rawJson) - var referenceJsonOutput = true + const rawJson = 'Line' + const jsonOutput = gp.isGraphicAnnotation(rawJson) + const referenceJsonOutput = true as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing not a graphical annotation', function () { - var rawJson = 'Lines' - var jsonOutput = gp.isGraphicAnnotation(rawJson) - var referenceJsonOutput = false + const rawJson = 'Lines' + const jsonOutput = gp.isGraphicAnnotation(rawJson) + const referenceJsonOutput = false as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing graphic_annotation_obj', function () { mo.it('testing line', function () { sinon.stub(gp, 'lineObj').returns('mocked line') - var rawJson = 'Line' - var jsonOutput = gp.graphicAnnotationObj(rawJson) - var referenceJsonOutput = 'mocked line' + const rawJson = 'Line' + const jsonOutput = gp.graphicAnnotationObj(rawJson) + const referenceJsonOutput = 'mocked line' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing text', function () { sinon.stub(gp, 'textObj').returns('mocked text') - var rawJson = 'Text' - var jsonOutput = gp.graphicAnnotationObj(rawJson) - var referenceJsonOutput = 'mocked text' + const rawJson = 'Text' + const jsonOutput = gp.graphicAnnotationObj(rawJson) + const referenceJsonOutput = 'mocked text' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing rectangle', function () { sinon.stub(gp, 'rectangleObj').returns('mocked rectangle') - var rawJson = 'Rectangle' - var jsonOutput = gp.graphicAnnotationObj(rawJson) - var referenceJsonOutput = 'mocked rectangle' + const rawJson = 'Rectangle' + const jsonOutput = gp.graphicAnnotationObj(rawJson) + const referenceJsonOutput = 'mocked rectangle' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing polygon', function () { sinon.stub(gp, 'polygonObj').returns('mocked polygon') - var rawJson = 'Polygon' - var jsonOutput = gp.graphicAnnotationObj(rawJson) - var referenceJsonOutput = 'mocked polygon' + const rawJson = 'Polygon' + const jsonOutput = gp.graphicAnnotationObj(rawJson) + const referenceJsonOutput = 'mocked polygon' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing ellipse', function () { sinon.stub(gp, 'ellipseObj').returns('mocked ellipse') - var rawJson = 'Ellipse' - var jsonOutput = gp.graphicAnnotationObj(rawJson) - var referenceJsonOutput = 'mocked ellipse' + const rawJson = 'Ellipse' + const jsonOutput = gp.graphicAnnotationObj(rawJson) + const referenceJsonOutput = 'mocked ellipse' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing bitmap', function () { sinon.stub(gp, 'bitmapObj').returns('mocked bitmap') - var rawJson = 'Bitmap' - var jsonOutput = gp.graphicAnnotationObj(rawJson) - var referenceJsonOutput = 'mocked bitmap' + const rawJson = 'Bitmap' + const jsonOutput = gp.graphicAnnotationObj(rawJson) + const referenceJsonOutput = 'mocked bitmap' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing placement', function () { sinon.stub(gp, 'placementObj').returns('mocked placement') - var rawJson = 'Placement' - var jsonOutput = gp.graphicAnnotationObj(rawJson) - var referenceJsonOutput = 'mocked placement' + const rawJson = 'Placement' + const jsonOutput = gp.graphicAnnotationObj(rawJson) + const referenceJsonOutput = 'mocked placement' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing coordinate_system', function () { sinon.stub(gp, 'coordinateSystemObj').returns('mocked coordinate_system') - var rawJson = 'coordinateSystem' - var jsonOutput = gp.graphicAnnotationObj(rawJson) - var referenceJsonOutput = 'mocked coordinate_system' + const rawJson = 'coordinateSystem' + const jsonOutput = gp.graphicAnnotationObj(rawJson) + const referenceJsonOutput = 'mocked coordinate_system' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing line', function () { sinon.stub(gp, 'graphicsObj').returns('mocked graphic') - var rawJson = 'graphic' - var jsonOutput = gp.graphicAnnotationObj(rawJson) - var referenceJsonOutput = 'mocked graphic' + const rawJson = 'graphic' + const jsonOutput = gp.graphicAnnotationObj(rawJson) + const referenceJsonOutput = 'mocked graphic' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing line_obj', function () { mo.it('testing structure', function () { sinon.stub(gp, 'lineAttribute').returns(['names', 'values']) - var rawJson = { - 'class_modification': ['class_modification1', 'class_modification2', 'class_modification3'] + const rawJson = { + class_modification: ['class_modification1', 'class_modification2', 'class_modification3'] } - var jsonOutput = gp.lineObj(rawJson) - var referenceJsonOutput = ['names', 'values'] + const jsonOutput = gp.lineObj(rawJson) + const referenceJsonOutput = ['names', 'values'] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing text_obj', function () { mo.it('testing structure', function () { sinon.stub(gp, 'textAttribute').returns(['names', 'values']) - var rawJson = { - 'class_modification': ['class_modification1', 'class_modification2', 'class_modification3'] + const rawJson = { + class_modification: ['class_modification1', 'class_modification2', 'class_modification3'] } - var jsonOutput = gp.textObj(rawJson) - var referenceJsonOutput = ['names', 'values'] + const jsonOutput = gp.textObj(rawJson) + const referenceJsonOutput = ['names', 'values'] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing rectangle_obj', function () { mo.it('testing structure', function () { sinon.stub(gp, 'rectangleAttribute').returns(['names', 'values']) - var rawJson = { - 'class_modification': ['class_modification1', 'class_modification2', 'class_modification3'] + const rawJson = { + class_modification: ['class_modification1', 'class_modification2', 'class_modification3'] } - var jsonOutput = gp.rectangleObj(rawJson) - var referenceJsonOutput = ['names', 'values'] + const jsonOutput = gp.rectangleObj(rawJson) + const referenceJsonOutput = ['names', 'values'] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing polygon_obj', function () { mo.it('testing structure', function () { sinon.stub(gp, 'polygonAttribute').returns(['names', 'values']) - var rawJson = { - 'class_modification': ['class_modification1', 'class_modification2', 'class_modification3'] + const rawJson = { + class_modification: ['class_modification1', 'class_modification2', 'class_modification3'] } - var jsonOutput = gp.polygonObj(rawJson) - var referenceJsonOutput = ['names', 'values'] + const jsonOutput = gp.polygonObj(rawJson) + const referenceJsonOutput = ['names', 'values'] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing ellipse_obj', function () { mo.it('testing structure', function () { sinon.stub(gp, 'ellipseAttribute').returns(['names', 'values']) - var rawJson = { - 'class_modification': ['class_modification1', 'class_modification2', 'class_modification3'] + const rawJson = { + class_modification: ['class_modification1', 'class_modification2', 'class_modification3'] } - var jsonOutput = gp.ellipseObj(rawJson) - var referenceJsonOutput = ['names', 'values'] + const jsonOutput = gp.ellipseObj(rawJson) + const referenceJsonOutput = ['names', 'values'] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing bitmap_obj', function () { mo.it('testing structure', function () { sinon.stub(gp, 'bitmapAttribute').returns(['names', 'values']) - var rawJson = { - 'class_modification': ['class_modification1', 'class_modification2', 'class_modification3'] + const rawJson = { + class_modification: ['class_modification1', 'class_modification2', 'class_modification3'] } - var jsonOutput = gp.bitmapObj(rawJson) - var referenceJsonOutput = ['names', 'values'] + const jsonOutput = gp.bitmapObj(rawJson) + const referenceJsonOutput = ['names', 'values'] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing placement_obj', function () { mo.it('testing structure', function () { sinon.stub(gp, 'transformationObj').returns('mocked transformation') - var rawJson = { - 'class_modification': [{ - 'element_modification_or_replaceable': { - 'element_modification': { - 'name': 'visible', - 'modification': { - 'expression': { - 'simple_expression': 'test expression1' + const rawJson = { + class_modification: [{ + element_modification_or_replaceable: { + element_modification: { + name: 'visible', + modification: { + expression: { + simple_expression: 'test expression1' } } } } }, { - 'element_modification_or_replaceable': { - 'element_modification': { - 'name': 'iconVisible', - 'modification': { - 'expression': { - 'simple_expression': 'test expression2' + element_modification_or_replaceable: { + element_modification: { + name: 'iconVisible', + modification: { + expression: { + simple_expression: 'test expression2' } } } } }, { - 'element_modification_or_replaceable': { - 'element_modification': { - 'name': 'transformation', - 'modification': { - 'expression': { - 'simple_expression': 'test expression3' + element_modification_or_replaceable: { + element_modification: { + name: 'transformation', + modification: { + expression: { + simple_expression: 'test expression3' } } } } }, { - 'element_modification_or_replaceable': { - 'element_modification': { - 'name': 'iconTransformation', - 'modification': { - 'expression': { - 'simple_expression': 'test expression4' + element_modification_or_replaceable: { + element_modification: { + name: 'iconTransformation', + modification: { + expression: { + simple_expression: 'test expression4' } } } @@ -243,12 +247,12 @@ mo.describe('graphicalPrimitives.js', function () { } ] } - var jsonOutput = gp.placementObj(rawJson) - var referenceJsonOutput = { - 'visible': 'test expression1', - 'iconVisible': 'test expression2', - 'transformation': 'mocked transformation', - 'iconTransformation': 'mocked transformation' + const jsonOutput = gp.placementObj(rawJson) + const referenceJsonOutput = { + visible: 'test expression1', + iconVisible: 'test expression2', + transformation: 'mocked transformation', + iconTransformation: 'mocked transformation' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -256,36 +260,36 @@ mo.describe('graphicalPrimitives.js', function () { mo.describe('testing coordinate_system_obj', function () { mo.it('testing structure', function () { sinon.stub(gp, 'pointsObj').returns('mocked transformation') - var rawJson = { - 'class_modification': [{ - 'element_modification_or_replaceable': { - 'element_modification': { - 'name': 'extent', - 'modification': { - 'expression': { - 'simple_expression': 'test expression1' + const rawJson = { + class_modification: [{ + element_modification_or_replaceable: { + element_modification: { + name: 'extent', + modification: { + expression: { + simple_expression: 'test expression1' } } } } }, { - 'element_modification_or_replaceable': { - 'element_modification': { - 'name': 'preserveAspectRatio', - 'modification': { - 'expression': { - 'simple_expression': 'test expression2' + element_modification_or_replaceable: { + element_modification: { + name: 'preserveAspectRatio', + modification: { + expression: { + simple_expression: 'test expression2' } } } } }, { - 'element_modification_or_replaceable': { - 'element_modification': { - 'name': 'initialScale', - 'modification': { - 'expression': { - 'simple_expression': 'test expression3' + element_modification_or_replaceable: { + element_modification: { + name: 'initialScale', + modification: { + expression: { + simple_expression: 'test expression3' } } } @@ -293,49 +297,49 @@ mo.describe('graphicalPrimitives.js', function () { } ] } - var jsonOutput = gp.coordinateSystemObj(rawJson) - var referenceJsonOutput = { - 'extent': 'mocked transformation', - 'preserveAspectRatio': 'test expression2', - 'initialScale': 'test expression3' + const jsonOutput = gp.coordinateSystemObj(rawJson) + const referenceJsonOutput = { + extent: 'mocked transformation', + preserveAspectRatio: 'test expression2', + initialScale: 'test expression3' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('transformation_obj', function () { mo.it('testing structure', function () { - sinon.stub(gp, 'originObj').returns('mocked transformation') - sinon.stub(gp, 'pointsObj').returns('mocked transformation') - var rawJson = { - 'class_modification': [{ - 'element_modification_or_replaceable': { - 'element_modification': { - 'name': 'origin', - 'modification': { - 'expression': { - 'simple_expression': 'test expression1' + sinon.stub(gp, 'originObj').returns('mocked origin transformation') + sinon.stub(gp, 'pointsObj').returns('mocked points transformation') + const rawJson = { + class_modification: [{ + element_modification_or_replaceable: { + element_modification: { + name: 'origin', + modification: { + expression: { + simple_expression: 'test expression1' } } } } }, { - 'element_modification_or_replaceable': { - 'element_modification': { - 'name': 'extent', - 'modification': { - 'expression': { - 'simple_expression': 'test expression2' + element_modification_or_replaceable: { + element_modification: { + name: 'extent', + modification: { + expression: { + simple_expression: 'test expression2' } } } } }, { - 'element_modification_or_replaceable': { - 'element_modification': { - 'name': 'rotation', - 'modification': { - 'expression': { - 'simple_expression': 3 + element_modification_or_replaceable: { + element_modification: { + name: 'rotation', + modification: { + expression: { + simple_expression: 3 } } } @@ -343,11 +347,11 @@ mo.describe('graphicalPrimitives.js', function () { } ] } - var jsonOutput = gp.transformationObj(rawJson) - var referenceJsonOutput = { - 'origin': 'mocked transformation', - 'extent': 'mocked transformation', - 'rotation': 3 + const jsonOutput = gp.transformationObj(rawJson) + const referenceJsonOutput = { + origin: 'mocked origin transformation', + extent: 'mocked points transformation', + rotation: 3 } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -355,26 +359,26 @@ mo.describe('graphicalPrimitives.js', function () { mo.describe('testing graphic_items_obj', function () { mo.it('testing structure', function () { sinon.stub(gp, 'originObj').returns('mocked origin') - var rawJson = { - 'names': ['visible', 'origin', 'rotation'], - 'expressions': ['expression1', 'expression2', '3'] + const rawJson = { + names: ['visible', 'origin', 'rotation'], + expressions: ['expression1', 'expression2', '3'] } - var jsonOutput = gp.graphicItemsObj(rawJson) - var referenceJsonOutput = { - 'visible': 'expression1', - 'origin': 'mocked origin', - 'rotation': 3 + const jsonOutput = gp.graphicItemsObj(rawJson) + const referenceJsonOutput = { + visible: 'expression1', + origin: 'mocked origin', + rotation: 3 } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing origin_obj', function () { mo.it('testing with expression string', function () { - var rawJson = '{0, 0}' - var jsonOutput = gp.originObj(rawJson) - var referenceJsonOutput = { - 'x': 0, - 'y': 0 + const rawJson = '{0, 0}' + const jsonOutput = gp.originObj(rawJson) + const referenceJsonOutput = { + x: 0, + y: 0 } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -382,18 +386,18 @@ mo.describe('graphicalPrimitives.js', function () { mo.describe('testing filled_shape_obj', function () { mo.it('testing structure', function () { sinon.stub(gp, 'colorObj').withArgs('expression1').returns('mocked line_color') - .withArgs('expression2').returns('mocked fill_color') - var rawJson = { - 'names': ['lineColor', 'fillColor', 'pattern', 'fillPattern', 'lineThickness'], - 'expressions': ['expression1', 'expression2', 'expression3', 'expression4', 5] + .withArgs('expression2').returns('mocked fill_color') + const rawJson = { + names: ['lineColor', 'fillColor', 'pattern', 'fillPattern', 'lineThickness'], + expressions: ['expression1', 'expression2', 'expression3', 'expression4', 5] } - var jsonOutput = gp.filledShapeObj(rawJson) - var referenceJsonOutput = { - 'lineColor': 'mocked line_color', - 'fillColor': 'mocked fill_color', - 'pattern': 'expression3', - 'fillPattern': 'expression4', - 'lineThickness': 5 + const jsonOutput = gp.filledShapeObj(rawJson) + const referenceJsonOutput = { + lineColor: 'mocked line_color', + fillColor: 'mocked fill_color', + pattern: 'expression3', + fillPattern: 'expression4', + lineThickness: 5 } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -402,14 +406,14 @@ mo.describe('graphicalPrimitives.js', function () { mo.it('testing structure', function () { sinon.stub(gp, 'graphicItemsObj').returns('mocked graphic_items_obj') sinon.stub(gp, 'filledShapeObj').returns('mocked filled_shape_obj') - var graIteNams = ['test gra_ite_nams'] - var graIteExps = [] - var filShaNams = ['test fil_sha_nams'] - var filShaExps = [] - var jsonOutput = gp.graIteFilShaObjs(graIteNams, graIteExps, filShaNams, filShaExps) - var referenceJsonOutput = { - 'graIteObjs': 'mocked graphic_items_obj', - 'filShaObjs': 'mocked filled_shape_obj' + const graIteNams = ['test gra_ite_nams'] + const graIteExps = [] + const filShaNams = ['test fil_sha_nams'] + const filShaExps = [] + const jsonOutput = gp.graIteFilShaObjs(graIteNams, graIteExps, filShaNams, filShaExps) + const referenceJsonOutput = { + graIteObjs: 'mocked graphic_items_obj', + filShaObjs: 'mocked filled_shape_obj' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -417,26 +421,26 @@ mo.describe('graphicalPrimitives.js', function () { mo.describe('testing points_obj', function () { mo.it('testing structure', function () { sinon.stub(gp, 'colorObj').withArgs('locations').returns([0, 10, 20, 30]) - .withArgs('locations').returns([9, 19, 29, 37]) - var rawJson = '{{100,-280},{100,-268},{85,-268},{85,-210}}' - var jsonOutput = gp.pointsObj(rawJson) - var referenceJsonOutput = [ - {'x': 100, 'y': -280}, - {'x': 100, 'y': -268}, - {'x': 85, 'y': -268}, - {'x': 85, 'y': -210} + .withArgs('locations').returns([9, 19, 29, 37]) + const rawJson = '{{100,-280},{100,-268},{85,-268},{85,-210}}' + const jsonOutput = gp.pointsObj(rawJson) + const referenceJsonOutput = [ + { x: 100, y: -280 }, + { x: 100, y: -268 }, + { x: 85, y: -268 }, + { x: 85, y: -210 } ] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing color_obj', function () { mo.it('testing structure', function () { - var rawJson = '{0,127,255}' - var jsonOutput = gp.colorObj(rawJson) - var referenceJsonOutput = { - 'r': 0, - 'g': 127, - 'b': 255 + const rawJson = '{0,127,255}' + const jsonOutput = gp.colorObj(rawJson) + const referenceJsonOutput = { + r: 0, + g: 127, + b: 255 } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -444,50 +448,50 @@ mo.describe('graphicalPrimitives.js', function () { mo.describe('testing graphic_attribute_obj', function () { mo.it('testing if key_nam is line', function () { sinon.stub(gp, 'lineAttributeObj').returns('mocked attribute') - var keyNam = 'Line' - var valStr = 'val_str' - var jsonOutput = gp.graphicAttributeObj(keyNam, valStr) - var referenceJsonOutput = 'mocked attribute' + const keyNam = 'Line' + const valStr = 'val_str' + const jsonOutput = gp.graphicAttributeObj(keyNam, valStr) + const referenceJsonOutput = 'mocked attribute' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if key_nam is text', function () { sinon.stub(gp, 'textAttributeObj').returns('mocked attribute') - var keyNam = 'Text' - var valStr = 'val_str' - var jsonOutput = gp.graphicAttributeObj(keyNam, valStr) - var referenceJsonOutput = 'mocked attribute' + const keyNam = 'Text' + const valStr = 'val_str' + const jsonOutput = gp.graphicAttributeObj(keyNam, valStr) + const referenceJsonOutput = 'mocked attribute' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if key_nam is rectangle', function () { sinon.stub(gp, 'rectangleAttributeObj').returns('mocked attribute') - var keyNam = 'Rectangle' - var valStr = 'val_str' - var jsonOutput = gp.graphicAttributeObj(keyNam, valStr) - var referenceJsonOutput = 'mocked attribute' + const keyNam = 'Rectangle' + const valStr = 'val_str' + const jsonOutput = gp.graphicAttributeObj(keyNam, valStr) + const referenceJsonOutput = 'mocked attribute' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if key_nam is polygon', function () { sinon.stub(gp, 'polygonAttributeObj').returns('mocked attribute') - var keyNam = 'Polygon' - var valStr = 'val_str' - var jsonOutput = gp.graphicAttributeObj(keyNam, valStr) - var referenceJsonOutput = 'mocked attribute' + const keyNam = 'Polygon' + const valStr = 'val_str' + const jsonOutput = gp.graphicAttributeObj(keyNam, valStr) + const referenceJsonOutput = 'mocked attribute' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if key_nam is ellipse', function () { sinon.stub(gp, 'ellipseAttributeObj').returns('mocked attribute') - var keyNam = 'Ellipse' - var valStr = 'val_str' - var jsonOutput = gp.graphicAttributeObj(keyNam, valStr) - var referenceJsonOutput = 'mocked attribute' + const keyNam = 'Ellipse' + const valStr = 'val_str' + const jsonOutput = gp.graphicAttributeObj(keyNam, valStr) + const referenceJsonOutput = 'mocked attribute' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing else statement', function () { sinon.stub(gp, 'bitmapAttributeObj').returns('mocked attribute') - var keyNam = 'bitmap' - var valStr = 'val_str' - var jsonOutput = gp.graphicAttributeObj(keyNam, valStr) - var referenceJsonOutput = 'mocked attribute' + const keyNam = 'bitmap' + const valStr = 'val_str' + const jsonOutput = gp.graphicAttributeObj(keyNam, valStr) + const referenceJsonOutput = 'mocked attribute' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) @@ -495,12 +499,12 @@ mo.describe('graphicalPrimitives.js', function () { mo.it('testing structure', function () { sinon.stub(gp, 'nameAttributePair').returns('mocked name_attribute') sinon.stub(gp, 'lineAttribute').returns('mocked line_attribute') - var rawJson = { - 'names': 'test name', - 'values': 'test values' + const rawJson = { + names: 'test name', + values: 'test values' } - var jsonOutput = gp.lineAttributeObj(rawJson) - var referenceJsonOutput = 'mocked line_attribute' + const jsonOutput = gp.lineAttributeObj(rawJson) + const referenceJsonOutput = 'mocked line_attribute' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) @@ -508,12 +512,12 @@ mo.describe('graphicalPrimitives.js', function () { mo.it('testing structure', function () { sinon.stub(gp, 'nameAttributePair').returns('mocked name_attribute') sinon.stub(gp, 'textAttribute').returns('mocked text_attribute') - var rawJson = { - 'names': 'test name', - 'values': 'test values' + const rawJson = { + names: 'test name', + values: 'test values' } - var jsonOutput = gp.textAttributeObj(rawJson) - var referenceJsonOutput = 'mocked text_attribute' + const jsonOutput = gp.textAttributeObj(rawJson) + const referenceJsonOutput = 'mocked text_attribute' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) @@ -521,12 +525,12 @@ mo.describe('graphicalPrimitives.js', function () { mo.it('testing structure', function () { sinon.stub(gp, 'nameAttributePair').returns('mocked name_attribute') sinon.stub(gp, 'rectangleAttribute').returns('mocked rectangle_attribute') - var rawJson = { - 'names': 'test name', - 'values': 'test values' + const rawJson = { + names: 'test name', + values: 'test values' } - var jsonOutput = gp.rectangleAttributeObj(rawJson) - var referenceJsonOutput = 'mocked rectangle_attribute' + const jsonOutput = gp.rectangleAttributeObj(rawJson) + const referenceJsonOutput = 'mocked rectangle_attribute' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) @@ -534,12 +538,12 @@ mo.describe('graphicalPrimitives.js', function () { mo.it('testing structure', function () { sinon.stub(gp, 'nameAttributePair').returns('mocked name_attribute') sinon.stub(gp, 'polygonAttribute').returns('mocked polygon_attribute') - var rawJson = { - 'names': 'test name', - 'values': 'test values' + const rawJson = { + names: 'test name', + values: 'test values' } - var jsonOutput = gp.polygonAttributeObj(rawJson) - var referenceJsonOutput = 'mocked polygon_attribute' + const jsonOutput = gp.polygonAttributeObj(rawJson) + const referenceJsonOutput = 'mocked polygon_attribute' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) @@ -547,12 +551,12 @@ mo.describe('graphicalPrimitives.js', function () { mo.it('testing structure', function () { sinon.stub(gp, 'nameAttributePair').returns('mocked name_attribute') sinon.stub(gp, 'ellipseAttribute').returns('mocked ellipse_attribute') - var rawJson = { - 'names': 'test name', - 'values': 'test values' + const rawJson = { + names: 'test name', + values: 'test values' } - var jsonOutput = gp.ellipseAttributeObj(rawJson) - var referenceJsonOutput = 'mocked ellipse_attribute' + const jsonOutput = gp.ellipseAttributeObj(rawJson) + const referenceJsonOutput = 'mocked ellipse_attribute' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) @@ -560,12 +564,12 @@ mo.describe('graphicalPrimitives.js', function () { mo.it('testing structure', function () { sinon.stub(gp, 'nameAttributePair').returns('mocked name_attribute') sinon.stub(gp, 'bitmapAttribute').returns('mocked bitmap_attribute') - var rawJson = { - 'names': 'test name', - 'values': 'test values' + const rawJson = { + names: 'test name', + values: 'test values' } - var jsonOutput = gp.bitmapAttributeObj(rawJson) - var referenceJsonOutput = 'mocked bitmap_attribute' + const jsonOutput = gp.bitmapAttributeObj(rawJson) + const referenceJsonOutput = 'mocked bitmap_attribute' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) @@ -573,17 +577,17 @@ mo.describe('graphicalPrimitives.js', function () { mo.it('testing structure', function () { sinon.stub(gp, 'pointsObj').returns('mocked points') sinon.stub(gp, 'colorObj').returns('mocked color') - var names = ['pattern', 'thickness', 'arrowSize', 'smooth', 'visible', 'point'] - var values = ['expression1', 2, 3, 'expression4', 'expression5', 'expression6', 'expression7'] - var jsonOutput = gp.lineAttribute(names, values) - var referenceJsonOutput = { - 'points': 'mocked points', - 'color': 'mocked color', - 'pattern': 'expression1', - 'thickness': 2, - 'arrowSize': 3, - 'smooth': 'expression4', - 'visible': 'expression5' + const names = ['pattern', 'thickness', 'arrowSize', 'smooth', 'visible', 'point'] + const values = ['expression1', 2, 3, 'expression4', 'expression5', 'expression6', 'expression7'] + const jsonOutput = gp.lineAttribute(names, values) + const referenceJsonOutput = { + points: 'mocked points', + color: 'mocked color', + pattern: 'expression1', + thickness: 2, + arrowSize: 3, + smooth: 'expression4', + visible: 'expression5' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -593,18 +597,18 @@ mo.describe('graphicalPrimitives.js', function () { sinon.stub(gp, 'pointsObj').returns('mocked points') sinon.stub(gp, 'colorObj').returns('mocked color') sinon.stub(gp, 'graIteFilShaObjs').returns('mocked gra_ite_fil_sha_obj') - var names = ['extent', 'textString', 'fontSize', 'fontName', 'textColor', 'horizontalAlignment', 'string', 'index'] - var values = ['expression1', 'expression2', 3, 'expression4', 'expression5', 'expression6', 'expression7', 8] - var jsonOutput = gp.textAttribute(names, values) - var referenceJsonOutput = { - 'extent': 'mocked points', - 'textString': 'expression2', - 'fontSize': 3, - 'fontName': 'expression4', - 'textColor': 'mocked color', - 'horizontalAlignment': 'expression6', - 'string': 'expression7', - 'index': 8 + const names = ['extent', 'textString', 'fontSize', 'fontName', 'textColor', 'horizontalAlignment', 'string', 'index'] + const values = ['expression1', 'expression2', 3, 'expression4', 'expression5', 'expression6', 'expression7', 8] + const jsonOutput = gp.textAttribute(names, values) + const referenceJsonOutput = { + extent: 'mocked points', + textString: 'expression2', + fontSize: 3, + fontName: 'expression4', + textColor: 'mocked color', + horizontalAlignment: 'expression6', + string: 'expression7', + index: 8 } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -613,13 +617,13 @@ mo.describe('graphicalPrimitives.js', function () { mo.it('testing structure', function () { sinon.stub(gp, 'pointsObj').returns('mocked points') sinon.stub(gp, 'graIteFilShaObjs').returns('mocked gra_ite_fil_sha_obj') - var names = ['extent', 'radius', 'borderPattern'] - var values = ['expression1', 2, 'expression3'] - var jsonOutput = gp.rectangleAttribute(names, values) - var referenceJsonOutput = { - 'extent': 'mocked points', - 'radius': 2, - 'borderPattern': 'expression3' + const names = ['extent', 'radius', 'borderPattern'] + const values = ['expression1', 2, 'expression3'] + const jsonOutput = gp.rectangleAttribute(names, values) + const referenceJsonOutput = { + extent: 'mocked points', + radius: 2, + borderPattern: 'expression3' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -628,12 +632,12 @@ mo.describe('graphicalPrimitives.js', function () { mo.it('testing structure', function () { sinon.stub(gp, 'pointsObj').returns('mocked points') sinon.stub(gp, 'graIteFilShaObjs').returns('mocked gra_ite_fil_sha_obj') - var names = ['points', 'smooth'] - var values = ['expression1', 'expression2'] - var jsonOutput = gp.polygonAttribute(names, values) - var referenceJsonOutput = { - 'points': 'mocked points', - 'smooth': 'expression2' + const names = ['points', 'smooth'] + const values = ['expression1', 'expression2'] + const jsonOutput = gp.polygonAttribute(names, values) + const referenceJsonOutput = { + points: 'mocked points', + smooth: 'expression2' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -642,14 +646,14 @@ mo.describe('graphicalPrimitives.js', function () { mo.it('testing structure', function () { sinon.stub(gp, 'pointsObj').returns('mocked points') sinon.stub(gp, 'graIteFilShaObjs').returns('mocked gra_ite_fil_sha_obj') - var names = ['extent', 'startAngle', 'endAngle', 'closure'] - var values = ['expression1', 2, 3, 'expression4'] - var jsonOutput = gp.ellipseAttribute(names, values) - var referenceJsonOutput = { - 'extent': 'mocked points', - 'startAngle': 2, - 'endAngle': 3, - 'closure': 'expression4' + const names = ['extent', 'startAngle', 'endAngle', 'closure'] + const values = ['expression1', 2, 3, 'expression4'] + const jsonOutput = gp.ellipseAttribute(names, values) + const referenceJsonOutput = { + extent: 'mocked points', + startAngle: 2, + endAngle: 3, + closure: 'expression4' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -658,13 +662,13 @@ mo.describe('graphicalPrimitives.js', function () { mo.it('testing structure', function () { sinon.stub(gp, 'pointsObj').returns('mocked points') sinon.stub(gp, 'graIteFilShaObjs').returns('mocked gra_ite_fil_sha_obj') - var names = ['extent', 'fileName', 'imageSource'] - var values = ['expression1', 'expression2', 'expression3'] - var jsonOutput = gp.bitmapAttribute(names, values) - var referenceJsonOutput = { - 'extent': 'mocked points', - 'fileName': 'expression2', - 'imageSource': 'expression3' + const names = ['extent', 'fileName', 'imageSource'] + const values = ['expression1', 'expression2', 'expression3'] + const jsonOutput = gp.bitmapAttribute(names, values) + const referenceJsonOutput = { + extent: 'mocked points', + fileName: 'expression2', + imageSource: 'expression3' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -672,11 +676,11 @@ mo.describe('graphicalPrimitives.js', function () { mo.describe('testing name_attribute_pair', function () { mo.it('testing structure', function () { sinon.stub(gp, 'ellipseAttribute').returns('mocked ellipse_attribute') - var rawJson = 'name1=value1,name2=value2,name3=value3' - var jsonOutput = gp.nameAttributePair(rawJson) - var referenceJsonOutput = { - 'names': ['name1', 'name2', 'name3'], - 'values': ['value1', 'value2', 'value3'] + const rawJson = 'name1=value1,name2=value2,name3=value3' + const jsonOutput = gp.nameAttributePair(rawJson) + const referenceJsonOutput = { + names: ['name1', 'name2', 'name3'], + values: ['value1', 'value2', 'value3'] } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) diff --git a/test/test_jsonquery.js b/test/test_jsonquery.js index 9c6a1809..62ebe1af 100644 --- a/test/test_jsonquery.js +++ b/test/test_jsonquery.js @@ -9,6 +9,8 @@ function equalObjects (dict, reference) { return true } else if ((dict === undefined) || (reference === undefined)) { return false + } else if ((dict === {} && reference === {})) { + return true } if (typeof (dict) !== typeof (reference)) { return false @@ -17,12 +19,16 @@ function equalObjects (dict, reference) { if (Object.keys(dict).length !== Object.keys(reference).length) { return false } - var keys = Object.keys(dict).sort() - for (var i = 0; i < keys.length; i++) { - var idx = keys[i] + const keys = Object.keys(dict).sort() + for (let i = 0; i < keys.length; i++) { + const idx = keys[i] if (!(idx in reference)) { return false - } else { + } + } + for (let i = 0; i < keys.length; i++) { + const idx = keys[i] + if (idx in reference) { return equalObjects(dict[idx], reference[idx]) } } @@ -31,7 +37,7 @@ function equalObjects (dict, reference) { if (dict.length !== reference.length) { return false } else { - for (var j = 0; j < dict.length; j++) { + for (let j = 0; j < dict.length; j++) { if (!(equalObjects(dict[j], reference[j]))) { return false } @@ -51,23 +57,23 @@ mo.describe('jsonquery.js', function () { mo.describe('testing classDefinition', function () { mo.it('testing structure', function () { sinon.stub(jq, 'classSpecifier').returns('mocked class_specifier') - var rawJson = { - 'encapsulated': true, - 'class_prefixes': 'partial', - 'class_specifier': 'test class_specifier' + const rawJson = { + encapsulated: true, + class_prefixes: 'partial', + class_specifier: 'test class_specifier' } - var jsonOutput = jq.classDefinition(rawJson) - var referenceJsonOutput = { - 'class_prefixes': 'partial', - 'class_specifier': 'mocked class_specifier', - 'encapsulated': true + const jsonOutput = jq.classDefinition(rawJson) + const referenceJsonOutput = { + class_prefixes: 'partial', + class_specifier: 'mocked class_specifier', + encapsulated: true } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing classSpecifier', function () { mo.it('checking for empty class_specifier -> should return an error', function () { - var rawJson = {} + const rawJson = {} try { jq.classSpecifier(rawJson) as.fail('no error raised for missing all of long_class_specifier, short_class_specifier and der_class_specifier') @@ -77,34 +83,34 @@ mo.describe('jsonquery.js', function () { }) mo.it('checking with long_class_specifier', function () { sinon.stub(jq, 'longClassSpecifier').returns('mocked long_class_specifier') - var rawJson = { - 'long_class_specifier': 'test long_class_specifier' + const rawJson = { + long_class_specifier: 'test long_class_specifier' } - var jsonOutput = jq.classSpecifier(rawJson) - var referenceJsonOutput = { - 'long_class_specifier': 'mocked long_class_specifier' + const jsonOutput = jq.classSpecifier(rawJson) + const referenceJsonOutput = { + long_class_specifier: 'mocked long_class_specifier' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('checking with short_class_specifier', function () { sinon.stub(jq, 'shortClassSpecifier').returns('mocked short_class_specifier') - var rawJson = { - 'short_class_specifier': 'test short_class_specifier' + const rawJson = { + short_class_specifier: 'test short_class_specifier' } - var jsonOutput = jq.classSpecifier(rawJson) - var referenceJsonOutput = { - 'short_class_specifier': 'mocked short_class_specifier' + const jsonOutput = jq.classSpecifier(rawJson) + const referenceJsonOutput = { + short_class_specifier: 'mocked short_class_specifier' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('checking with der_class_specifier', function () { sinon.stub(jq, 'derClassSpecifier').returns('mocked der_class_specifier') - var rawJson = { - 'der_class_specifier': 'test der_class_specifier' + const rawJson = { + der_class_specifier: 'test der_class_specifier' } - var jsonOutput = jq.classSpecifier(rawJson) - var referenceJsonOutput = { - 'der_class_specifier': 'mocked der_class_specifier' + const jsonOutput = jq.classSpecifier(rawJson) + const referenceJsonOutput = { + der_class_specifier: 'mocked der_class_specifier' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -114,31 +120,31 @@ mo.describe('jsonquery.js', function () { mo.it('testing structure', function () { sinon.stub(jq, 'composition').returns('mocked composition') sinon.stub(jq, 'classModification').returns('mocked class_modification') - var rawJson = { - 'identifier': 'test.identifier.a', - 'string_comment': 'string comment', - 'is_extends': false, - 'composition': 'test composition', - 'class_modification': 'test class_modification' + const rawJson = { + identifier: 'test.identifier.a', + string_comment: 'string comment', + is_extends: false, + composition: 'test composition', + class_modification: 'test class_modification' } - var jsonOutput = jq.longClassSpecifier(rawJson) - var referenceJsonOutput = { - 'identifier': 'test.identifier.a', - 'description_string': 'string comment', - 'extends': false, - 'composition': 'mocked composition', - 'class_modification': 'mocked class_modification' + const jsonOutput = jq.longClassSpecifier(rawJson) + const referenceJsonOutput = { + identifier: 'test.identifier.a', + description_string: 'string comment', + extends: false, + composition: 'mocked composition', + class_modification: 'mocked class_modification' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing missing identifier', function () { sinon.stub(jq, 'composition').returns('mocked composition') sinon.stub(jq, 'classModification').returns('mocked class_modification') - var rawJson = { - 'string_comment': 'string comment', - 'is_extends': false, - 'composition': 'test composition', - 'class_modification': 'test class_modification' + const rawJson = { + string_comment: 'string comment', + is_extends: false, + composition: 'test composition', + class_modification: 'test class_modification' } try { jq.longClassSpecifier(rawJson) @@ -148,13 +154,13 @@ mo.describe('jsonquery.js', function () { } }) mo.it('testing missing composition', function () { - sinon.stub(jq, 'composition').returns({'composition': 'mocked composition'}) - sinon.stub(jq, 'classModification').returns({'class_modification': 'mocked class_modification'}) - var rawJson = { - 'identifier': 'test.identifier.a', - 'string_comment': 'string comment', - 'is_extends': false, - 'class_modification': 'test class_modification' + sinon.stub(jq, 'composition').returns({ composition: 'mocked composition' }) + sinon.stub(jq, 'classModification').returns({ class_modification: 'mocked class_modification' }) + const rawJson = { + identifier: 'test.identifier.a', + string_comment: 'string comment', + is_extends: false, + class_modification: 'test class_modification' } try { jq.longClassSpecifier(rawJson) @@ -170,32 +176,32 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'elementSections').returns(['mocked element_section1', 'mocked element_section2']) sinon.stub(jq, 'classModification').returns('mocked class_modification') sinon.stub(jq, 'externalComposition').returns('mocked external_omposition') - var rawJson = { - 'element_list': 'test element_list', - 'element_sections': ['test element_section1', 'test element_section2'], - 'annotation': { - 'class_modification': 'test class_modification' + const rawJson = { + element_list: 'test element_list', + element_sections: ['test element_section1', 'test element_section2'], + annotation: { + class_modification: 'test class_modification' }, - 'external_composition': 'test external_composition' + external_composition: 'test external_composition' } - var jsonOutput = jq.composition(rawJson) - var referenceJsonOutput = { - 'element_list': 'mocked element_list', - 'element_sections': ['mocked element_section1', 'mocked element_section2'], - 'annotation': 'mocked class_modification', - 'external_composition': 'mocked external_composition' + const jsonOutput = jq.composition(rawJson) + const referenceJsonOutput = { + element_list: 'mocked element_list', + element_sections: ['mocked element_section1', 'mocked element_section2'], + annotation: 'mocked class_modification', + external_composition: 'mocked external_composition' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing missing element_list', function () { - sinon.stub(jq, 'elementList').returns({'element_list': 'mocked element_list'}) + sinon.stub(jq, 'elementList').returns({ element_list: 'mocked element_list' }) sinon.stub(jq, 'elementSections').returns(['mocked element_section1', 'mocked element_section2']) - sinon.stub(jq, 'classModification').returns({'class_modification': 'mocked class_modification'}) - sinon.stub(jq, 'externalComposition').returns({'external_composition': 'mocked external_omposition'}) - var rawJson = { - 'element_sections': ['test element_section1', 'test element_section2'], - 'annotation': 'test annotation', - 'external_composition': 'test external_composition' + sinon.stub(jq, 'classModification').returns({ class_modification: 'mocked class_modification' }) + sinon.stub(jq, 'externalComposition').returns({ external_composition: 'mocked external_omposition' }) + const rawJson = { + element_sections: ['test element_section1', 'test element_section2'], + annotation: 'test annotation', + external_composition: 'test external_composition' } try { jq.composition(rawJson) @@ -209,37 +215,37 @@ mo.describe('jsonquery.js', function () { mo.it('testing structure', function () { sinon.stub(jq, 'elementModificationReplaceable').returns('mocked element_modification_or_replaceable') sinon.stub(jq, 'elementRedeclaration').returns('mocked element_redeclaration') - var rawJson = { - 'argument_list': { - 'arguments': [ + const rawJson = { + argument_list: { + arguments: [ { - 'element_modification_or_replaceable': 'test element_modification_or_replaceable' + element_modification_or_replaceable: 'test element_modification_or_replaceable' }, { - 'element_redeclaration': 'test element_redeclaration' + element_redeclaration: 'test element_redeclaration' } ] } } - var jsonOutput = jq.classModification(rawJson) - var referenceJsonOutput = [ + const jsonOutput = jq.classModification(rawJson) + const referenceJsonOutput = [ { - 'element_modification_or_replaceable': 'mocked element_modification_or_replaceable', - 'element_redeclaration': undefined + element_modification_or_replaceable: 'mocked element_modification_or_replaceable', + element_redeclaration: undefined }, { - 'element_modification_or_replaceable': undefined, - 'element_redeclaration': 'mocked element_redeclaration' + element_modification_or_replaceable: undefined, + element_redeclaration: 'mocked element_redeclaration' } ] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing empty arguments', function () { - sinon.stub(jq, 'elementRedeclaration').returns({'element_redeclaration': 'mocked element_redeclaration'}) - sinon.stub(jq, 'elementModificationReplaceable').returns({'element_modification_or_replaceble': 'mocked element_modification_or_replaceable'}) - var rawJson = {} - var jsonOutput = jq.classModification(rawJson) - var referenceJsonOutput = '()' + sinon.stub(jq, 'elementRedeclaration').returns({ element_redeclaration: 'mocked element_redeclaration' }) + sinon.stub(jq, 'elementModificationReplaceable').returns({ element_modification_or_replaceble: 'mocked element_modification_or_replaceable' }) + const rawJson = {} + const jsonOutput = jq.classModification(rawJson) + const referenceJsonOutput = '()' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) @@ -250,91 +256,91 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'classDefinition').returns('mocked class_definition') sinon.stub(jq, 'componentClause').returns('mocked component_clause') sinon.stub(jq, 'constrainingClause').returns('mocked constraining_clause') - var rawJson = { - 'elements': [ + const rawJson = { + elements: [ { - 'import_clause': 'test import_clause' + import_clause: 'test import_clause' }, { - 'extends_clause': 'test extends_clause' + extends_clause: 'test extends_clause' }, { - 'redeclare': true, - 'is_final': true, - 'inner': true, - 'outer': true, - 'replaceable': true, - 'class_definition': 'test class_definition', - 'component_clause': 'test component_clause', - 'constraining_clause': 'test constraining_clause', - 'comment': { - 'string_comment': 'test comment' + redeclare: true, + is_final: true, + inner: true, + outer: true, + replaceable: true, + class_definition: 'test class_definition', + component_clause: 'test component_clause', + constraining_clause: 'test constraining_clause', + comment: { + string_comment: 'test comment' } }, { - 'redeclare': true, - 'is_final': true, - 'inner': true, - 'outer': true, - 'replaceable': false, - 'class_definition': 'test class_definition', - 'component_clause': 'test component_clause' + redeclare: true, + is_final: true, + inner: true, + outer: true, + replaceable: false, + class_definition: 'test class_definition', + component_clause: 'test component_clause' } ] } - var jsonOutput = jq.elementList(rawJson) - var referenceJsonOutput = [ + const jsonOutput = jq.elementList(rawJson) + const referenceJsonOutput = [ { - 'import_clause': 'mocked import_clause', - 'extends_clause': undefined, - 'redeclare': undefined, - 'final': undefined, - 'inner': undefined, - 'outer': undefined, - 'replaceable': undefined, - 'class_definition': undefined, - 'component_clause': undefined, - 'constraining_clause': undefined, - 'description': undefined + import_clause: 'mocked import_clause', + extends_clause: undefined, + redeclare: undefined, + final: undefined, + inner: undefined, + outer: undefined, + replaceable: undefined, + class_definition: undefined, + component_clause: undefined, + constraining_clause: undefined, + description: undefined }, { - 'import_clause': undefined, - 'extends_clause': 'mocked extends_clause', - 'redeclare': undefined, - 'final': undefined, - 'inner': undefined, - 'outer': undefined, - 'replaceable': undefined, - 'class_definition': undefined, - 'component_clause': undefined, - 'constraining_clause': undefined, - 'description': undefined + import_clause: undefined, + extends_clause: 'mocked extends_clause', + redeclare: undefined, + final: undefined, + inner: undefined, + outer: undefined, + replaceable: undefined, + class_definition: undefined, + component_clause: undefined, + constraining_clause: undefined, + description: undefined }, { - 'import_clause': undefined, - 'extends_clause': undefined, - 'redeclare': true, - 'final': true, - 'inner': true, - 'outer': true, - 'replaceable': true, - 'class_definition': 'mocked class_definition', - 'component_clause': 'mocked component_clause', - 'constraining_clause': 'mocked constraining_clause', - 'description': { - 'description_string': 'test comment', - 'annotation': undefined + import_clause: undefined, + extends_clause: undefined, + redeclare: true, + final: true, + inner: true, + outer: true, + replaceable: true, + class_definition: 'mocked class_definition', + component_clause: 'mocked component_clause', + constraining_clause: 'mocked constraining_clause', + description: { + description_string: 'test comment', + annotation: undefined } }, { - 'import_clause': undefined, - 'extends_clause': undefined, - 'redeclare': true, - 'final': true, - 'inner': true, - 'outer': true, - 'replaceable': false, - 'class_definition': 'mocked class_definition', - 'component_clause': 'mocked component_clause', - 'constraining_clause': undefined, - 'description': undefined + import_clause: undefined, + extends_clause: undefined, + redeclare: true, + final: true, + inner: true, + outer: true, + replaceable: false, + class_definition: 'mocked class_definition', + component_clause: 'mocked component_clause', + constraining_clause: undefined, + description: undefined } ] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) @@ -345,19 +351,19 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'classDefinition').returns('mocked class_definition') sinon.stub(jq, 'componentClause').returns('mocked component_clause') sinon.stub(jq, 'constrainingClause').returns('mocked constraining_clause') - var rawJson = { - 'elements': [ + const rawJson = { + elements: [ { - 'redeclare': true, - 'is_final': true, - 'inner': true, - 'outer': true, - 'replaceable': false, - 'class_definition': 'test class_definition', - 'component_clause': 'test component_clause', - 'constraining_clause': 'test constraining_clause', - 'comment': { - 'string_comment': 'test comment' + redeclare: true, + is_final: true, + inner: true, + outer: true, + replaceable: false, + class_definition: 'test class_definition', + component_clause: 'test component_clause', + constraining_clause: 'test constraining_clause', + comment: { + string_comment: 'test comment' } } ] @@ -376,42 +382,42 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'algorithmSection').returns('mocked algorithm_section') sinon.stub(jq, 'equationSection').returns('mocked equation_section') - var rawJson = [ + const rawJson = [ { - 'public_element_list': 'test public_element_list' + public_element_list: 'test public_element_list' }, { - 'protected_element_list': 'test protected_element_list' + protected_element_list: 'test protected_element_list' }, { - 'algorithm_section': 'test algorithm_section' + algorithm_section: 'test algorithm_section' }, { - 'equation_section': 'test equation_section' + equation_section: 'test equation_section' } ] - var jsonOutput = jq.elementSections(rawJson) - var referenceJsonOutput = [ + const jsonOutput = jq.elementSections(rawJson) + const referenceJsonOutput = [ { - 'public_element_list': 'mocked public_element_list', - 'protected_element_list': undefined, - 'algorithm_section': undefined, - 'equation_section': undefined + public_element_list: 'mocked public_element_list', + protected_element_list: undefined, + algorithm_section: undefined, + equation_section: undefined }, { - 'public_element_list': undefined, - 'protected_element_list': 'mocked protected_element_list', - 'algorithm_section': undefined, - 'equation_section': undefined + public_element_list: undefined, + protected_element_list: 'mocked protected_element_list', + algorithm_section: undefined, + equation_section: undefined }, { - 'public_element_list': undefined, - 'protected_element_list': undefined, - 'algorithm_section': 'mocked algorithm_section', - 'equation_section': undefined + public_element_list: undefined, + protected_element_list: undefined, + algorithm_section: 'mocked algorithm_section', + equation_section: undefined }, { - 'public_element_list': undefined, - 'protected_element_list': undefined, - 'algorithm_section': undefined, - 'equation_section': 'mocked equation_section' + public_element_list: undefined, + protected_element_list: undefined, + algorithm_section: undefined, + equation_section: 'mocked equation_section' } ] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) @@ -422,21 +428,21 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'componentReference').returns('mocked component_reference') sinon.stub(jq, 'expression').withArgs('test expression1').returns('mocked expression1').withArgs('test expression2').returns('mocked expression2') - var rawJson = { - 'component_reference': 'test component_reference', - 'identifier': 'test.identifier.a', - 'expression_list': { - 'expressions': [ + const rawJson = { + component_reference: 'test component_reference', + identifier: 'test.identifier.a', + expression_list: { + expressions: [ 'test expression1', 'test expression2' ] } } - var jsonOutput = jq.externalFunctionCall(rawJson) - var referenceJsonOutput = { - 'component_reference': 'mocked component_reference', - 'identifier': 'test.identifier.a', - 'expression_list': [ + const jsonOutput = jq.externalFunctionCall(rawJson) + const referenceJsonOutput = { + component_reference: 'mocked component_reference', + identifier: 'test.identifier.a', + expression_list: [ 'mocked expression1', 'mocked expression2' ] @@ -448,18 +454,18 @@ mo.describe('jsonquery.js', function () { mo.it('testing structure', function () { sinon.stub(jq, 'externalFunctionCall').withArgs('test external_function_call').returns('mocked external_function_call') sinon.stub(jq, 'classModification').withArgs('test class_modification').returns('mocked class_modification') - var rawJson = { - 'language_specification': 'test language_specification', - 'external_function_call': 'test external_function_call', - 'external_annotation': { - 'class_modification': 'test class_modification' + const rawJson = { + language_specification: 'test language_specification', + external_function_call: 'test external_function_call', + external_annotation: { + class_modification: 'test class_modification' } } - var jsonOutput = jq.externalComposition(rawJson) - var referenceJsonOutput = { - 'language_specification': 'test language_specification', - 'external_function_call': 'mocked external_function_call', - 'external_annotation': 'mocked class_modification' + const jsonOutput = jq.externalComposition(rawJson) + const referenceJsonOutput = { + language_specification: 'test language_specification', + external_function_call: 'mocked external_function_call', + external_annotation: 'mocked class_modification' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -469,18 +475,18 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'typeSpecifier').withArgs('test type_specifier').returns('mocked type_specifier') sinon.stub(jq, 'arraySubscripts').withArgs('test array_subscripts').returns('mocked array_subscripts') sinon.stub(jq, 'componentList').withArgs('test component_list').returns('mocked component_list') - var rawJson = { - 'type_prefix': 'test type_prefix', - 'type_specifier': 'test type_specifier', - 'array_subscripts': 'test array_subscripts', - 'component_list': 'test component_list' + const rawJson = { + type_prefix: 'test type_prefix', + type_specifier: 'test type_specifier', + array_subscripts: 'test array_subscripts', + component_list: 'test component_list' } - var jsonOutput = jq.componentClause(rawJson) - var referenceJsonOutput = { - 'type_prefix': 'test type_prefix', - 'type_specifier': 'mocked type_specifier', - 'array_subscripts': 'mocked array_subscripts', - 'component_list': 'mocked component_list' + const jsonOutput = jq.componentClause(rawJson) + const referenceJsonOutput = { + type_prefix: 'test type_prefix', + type_specifier: 'mocked type_specifier', + array_subscripts: 'mocked array_subscripts', + component_list: 'mocked component_list' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -489,18 +495,18 @@ mo.describe('jsonquery.js', function () { mo.it('testing structure', function () { sinon.stub(jq, 'nameString').withArgs('test name').returns('mocked name') sinon.stub(jq, 'classModification').withArgs('test class_modification').returns('mocked class_modification').withArgs('test annotation.class_modification').returns('mocked annotation.class_modification') - var rawJson = { - 'name': 'test name', - 'class_modification': 'test class_modification', - 'annotation': { - 'class_modification': 'test annotation.class_modification' + const rawJson = { + name: 'test name', + class_modification: 'test class_modification', + annotation: { + class_modification: 'test annotation.class_modification' } } - var jsonOutput = jq.extendsClause(rawJson) - var referenceJsonOutput = { - 'name': 'mocked name', - 'class_modification': 'mocked class_modification', - 'annotation': 'mocked annotation.class_modification' + const jsonOutput = jq.extendsClause(rawJson) + const referenceJsonOutput = { + name: 'mocked name', + class_modification: 'mocked class_modification', + annotation: 'mocked annotation.class_modification' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -510,20 +516,20 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'nameString').withArgs('test name').returns('mocked name') sinon.stub(jq, 'importList').withArgs('test import_list').returns('mocked import_list') sinon.stub(jq, 'description').withArgs('test comment').returns('mocked comment').withArgs('test comment').returns('mocked comment') - var rawJson = { - 'identifier': 'test identifier', - 'name': 'test name', - 'dot_star': true, - 'import_list': 'test import_list', - 'comment': 'test comment' + const rawJson = { + identifier: 'test identifier', + name: 'test name', + dot_star: true, + import_list: 'test import_list', + comment: 'test comment' } - var jsonOutput = jq.importClause(rawJson) - var referenceJsonOutput = { - 'identifier': 'test identifier', - 'name': 'mocked name', - 'dot_star': '.*', - 'import_list': 'mocked import_list', - 'description': 'mocked comment' + const jsonOutput = jq.importClause(rawJson) + const referenceJsonOutput = { + identifier: 'test identifier', + name: 'mocked name', + dot_star: '.*', + import_list: 'mocked import_list', + description: 'mocked comment' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -533,24 +539,24 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'declaration').withArgs('test declaration').returns('mocked declaration') sinon.stub(jq, 'expression').withArgs('test condition_attribute.expression').returns('mocked condition_attribute.expression') sinon.stub(jq, 'description').withArgs('test comment').returns('mocked comment').withArgs('test comment').returns('mocked comment') - var rawJson = { - 'component_declaration_list': [ + const rawJson = { + component_declaration_list: [ { - 'declaration': 'test declaration', - 'condition_attribute': { - 'expression': 'test condition_attribute.expression' + declaration: 'test declaration', + condition_attribute: { + expression: 'test condition_attribute.expression' }, - 'comment': 'test comment' + comment: 'test comment' } ] } - var jsonOutput = jq.componentList(rawJson) - var referenceJsonOutput = [{ - 'declaration': 'mocked declaration', - 'condition_attribute': { - 'expression': 'mocked condition_attribute.expression' + const jsonOutput = jq.componentList(rawJson) + const referenceJsonOutput = [{ + declaration: 'mocked declaration', + condition_attribute: { + expression: 'mocked condition_attribute.expression' }, - 'description': 'mocked comment' + description: 'mocked comment' }] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -559,16 +565,16 @@ mo.describe('jsonquery.js', function () { mo.it('testing structure', function () { sinon.stub(jq, 'arraySubscripts').withArgs('test array_subscripts').returns('mocked array_subscripts') sinon.stub(jq, 'modification').withArgs('test modification').returns('mocked modification') - var rawJson = { - 'identifier': 'test.identifier.a', - 'array_subscripts': 'test array_subscripts', - 'modification': 'test modification' + const rawJson = { + identifier: 'test.identifier.a', + array_subscripts: 'test array_subscripts', + modification: 'test modification' } - var jsonOutput = jq.declaration(rawJson) - var referenceJsonOutput = { - 'identifier': 'test.identifier.a', - 'array_subscripts': 'mocked array_subscripts', - 'modification': 'mocked modification' + const jsonOutput = jq.declaration(rawJson) + const referenceJsonOutput = { + identifier: 'test.identifier.a', + array_subscripts: 'mocked array_subscripts', + modification: 'mocked modification' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -578,16 +584,16 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'nameString').withArgs('test name').returns('mocked name') sinon.stub(jq, 'modification').withArgs('test modification').returns('mocked modification') sinon.stub(graPri, 'graphicAnnotationObj').withArgs('test name', 'test modification').returns('mocked graphicAnnotationObj') - var rawJson = { - 'name': 'test name', - 'string_comment': 'test string_comment', - 'modification': 'test modification' + const rawJson = { + name: 'test name', + string_comment: 'test string_comment', + modification: 'test modification' } - var jsonOutput = jq.elementModification(rawJson) - var referenceJsonOutput = { - 'name': 'mocked name', - 'description_string': 'test string_comment', - 'modification': 'mocked modification' + const jsonOutput = jq.elementModification(rawJson) + const referenceJsonOutput = { + name: 'mocked name', + description_string: 'test string_comment', + modification: 'mocked modification' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -595,14 +601,14 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'nameString').withArgs('Line').returns('Line') sinon.stub(jq, 'modification').withArgs('test modification').returns('mocked modification') sinon.stub(graPri, 'graphicAnnotationObj').withArgs('Line', 'mocked modification').returns('mocked graphicAnnotationObj') - var rawJson = { - 'name': 'Line', - 'string_comment': 'test string_comment', - 'modification': 'test modification' + const rawJson = { + name: 'Line', + string_comment: 'test string_comment', + modification: 'test modification' } - var jsonOutput = jq.elementModification(rawJson) - var referenceJsonOutput = { - 'Line': 'mocked graphicAnnotationObj' + const jsonOutput = jq.elementModification(rawJson) + const referenceJsonOutput = { + Line: 'mocked graphicAnnotationObj' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -611,18 +617,18 @@ mo.describe('jsonquery.js', function () { mo.it('testing structure', function () { sinon.stub(jq, 'elementModification').withArgs('test element_modification').returns('mocked element_modification') sinon.stub(jq, 'elementReplaceable').withArgs('test element_replaceable').returns('mocked element_replaceable') - var rawJson = { - 'each': true, - 'is_final': true, - 'element_modification': 'test element_modification', - 'element_replaceable': 'test element_replaceable' + const rawJson = { + each: true, + is_final: true, + element_modification: 'test element_modification', + element_replaceable: 'test element_replaceable' } - var jsonOutput = jq.elementModificationReplaceable(rawJson) - var referenceJsonOutput = { - 'each': true, - 'final': true, - 'element_modification': 'mocked element_modification', - 'element_replaceable': 'mocked element_replaceable' + const jsonOutput = jq.elementModificationReplaceable(rawJson) + const referenceJsonOutput = { + each: true, + final: true, + element_modification: 'mocked element_modification', + element_replaceable: 'mocked element_replaceable' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -632,20 +638,20 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'shortClassDefinition').withArgs('test short_class_definition').returns('mocked short_class_definition') sinon.stub(jq, 'componentClause1').withArgs('test component_clause1').returns('mocked component_clause1') sinon.stub(jq, 'elementReplaceable').withArgs('test element_replaceable').returns('mocked element_replaceable') - var rawJson = { - 'each': true, - 'is_final': true, - 'short_class_definition': 'test short_class_definition', - 'component_clause1': 'test component_clause1', - 'element_replaceable': 'test element_replaceable' + const rawJson = { + each: true, + is_final: true, + short_class_definition: 'test short_class_definition', + component_clause1: 'test component_clause1', + element_replaceable: 'test element_replaceable' } - var jsonOutput = jq.elementRedeclaration(rawJson) - var referenceJsonOutput = { - 'each': true, - 'final': true, - 'short_class_definition': 'mocked short_class_definition', - 'component_clause1': 'mocked component_clause1', - 'element_replaceable': 'mocked element_replaceable' + const jsonOutput = jq.elementRedeclaration(rawJson) + const referenceJsonOutput = { + each: true, + final: true, + short_class_definition: 'mocked short_class_definition', + component_clause1: 'mocked component_clause1', + element_replaceable: 'mocked element_replaceable' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -654,27 +660,27 @@ mo.describe('jsonquery.js', function () { mo.it('testing structure', function () { sinon.stub(jq, 'simpleExpression').withArgs('test simple_expression1').returns('mocked simple_expression1').withArgs('test simple_expression2').returns('mocked simple_expression2') sinon.stub(jq, 'ifExpString').withArgs('test if_expression1').returns('mocked if_expression1').withArgs('test if_expression2').returns('mocked if_expression2') - var rawJson = [ + const rawJson = [ { - 'expressions': [ + expressions: [ { - 'simple_expression': 'test simple_expression1' + simple_expression: 'test simple_expression1' }, { - 'if_expression': 'test if_expression1' + if_expression: 'test if_expression1' } ] }, { - 'expressions': [ + expressions: [ { - 'simple_expression': 'test simple_expression2' + simple_expression: 'test simple_expression2' }, { - 'if_expression': 'test if_expression2' + if_expression: 'test if_expression2' } ] } ] - var jsonOutput = jq.expLisString(rawJson) - var referenceJsonOutput = 'mocked simple_expression1,mocked if_expression1;mocked simple_expression2,mocked if_expression2' + const jsonOutput = jq.expLisString(rawJson) + const referenceJsonOutput = 'mocked simple_expression1,mocked if_expression1;mocked simple_expression2,mocked if_expression2' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) @@ -682,51 +688,51 @@ mo.describe('jsonquery.js', function () { mo.it('testing only simple_expression structure', function () { sinon.stub(jq, 'simpleExpression').withArgs('test simple_expression1').returns('mocked simple_expression1') sinon.stub(jq, 'ifExpString').withArgs('test if_expression1').returns('mocked if_expression1').withArgs('test if_expression2').returns('mocked if_expression2') - var rawJson = { - 'simple_expression': 'test simple_expression1' + const rawJson = { + simple_expression: 'test simple_expression1' } - var jsonOutput = jq.expressionString(rawJson) - var referenceJsonOutput = 'mocked simple_expression1' + const jsonOutput = jq.expressionString(rawJson) + const referenceJsonOutput = 'mocked simple_expression1' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing only if_expression structure', function () { sinon.stub(jq, 'simpleExpression').withArgs('test simple_expression1').returns('mocked simple_expression1') sinon.stub(jq, 'ifExpString').withArgs('test if_expression1').returns('mocked if_expression1').withArgs('test if_expression2').returns('mocked if_expression2') - var rawJson = { - 'if_expression': 'test if_expression1' + const rawJson = { + if_expression: 'test if_expression1' } - var jsonOutput = jq.expressionString(rawJson) - var referenceJsonOutput = 'mocked if_expression1' + const jsonOutput = jq.expressionString(rawJson) + const referenceJsonOutput = 'mocked if_expression1' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing only simple_expression structure', function () { sinon.stub(jq, 'simpleExpression').withArgs('test simple_expression1').returns('mocked simple_expression1') sinon.stub(jq, 'ifExpString').withArgs('test if_expression1').returns('mocked if_expression1').withArgs('test if_expression2').returns('mocked if_expression2') - var rawJson = { - 'simple_expression': 'test simple_expression1', - 'if_expression': 'test if_expression1' + const rawJson = { + simple_expression: 'test simple_expression1', + if_expression: 'test if_expression1' } - var jsonOutput = jq.expressionString(rawJson) - var referenceJsonOutput = 'mocked simple_expression1' + const jsonOutput = jq.expressionString(rawJson) + const referenceJsonOutput = 'mocked simple_expression1' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing simple_expression', function () { mo.it('testing structure', function () { sinon.stub(jq, 'logicalExpression').withArgs('test logical_expression1').returns('mocked logical_expression1').withArgs('test logical_expression2') - .returns('mocked logical_expression2').withArgs('test logical_expression3').returns('mocked logical_expression3') - var rawJson = { - 'logical_expression1': 'test logical_expression1', - 'logical_expression2': 'test logical_expression2', - 'logical_expression3': 'test logical_expression3' + .returns('mocked logical_expression2').withArgs('test logical_expression3').returns('mocked logical_expression3') + const rawJson = { + logical_expression1: 'test logical_expression1', + logical_expression2: 'test logical_expression2', + logical_expression3: 'test logical_expression3' } - var jsonOutput = jq.simpleExpression(rawJson) - var referenceJsonOutput = 'mocked logical_expression1:mocked logical_expression2:mocked logical_expression3' + const jsonOutput = jq.simpleExpression(rawJson) + const referenceJsonOutput = 'mocked logical_expression1:mocked logical_expression2:mocked logical_expression3' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing null logical_expression1', function () { - var rawJson = { - 'logical_expression2': 'test logical_expression2' + const rawJson = { + logical_expression2: 'test logical_expression2' } try { jq.simpleExpression(rawJson) @@ -743,11 +749,11 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'ifExpressionObj').withArgs('mocked primary').returns(undefined) sinon.stub(jq, 'logicalExpressionObj').withArgs('test logical_expression1').returns(undefined) - var rawJson = { - 'logical_expression1': 'test logical_expression1' + const rawJson = { + logical_expression1: 'test logical_expression1' } - var jsonOutput = jq.simpleExpression(rawJson) - var referenceJsonOutput = {'function_call': 'mocked function_call_primary', 'for_loop': undefined, 'logical_expression': undefined, 'if_expression': undefined} + const jsonOutput = jq.simpleExpression(rawJson) + const referenceJsonOutput = { function_call: 'mocked function_call_primary', for_loop: undefined, logical_expression: undefined, if_expression: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing for_loop logical_expression1', function () { @@ -758,11 +764,11 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'ifExpressionObj').withArgs('mocked primary').returns(undefined) sinon.stub(jq, 'logicalExpressionObj').withArgs('test logical_expression1').returns(undefined) - var rawJson = { - 'logical_expression1': 'test logical_expression1' + const rawJson = { + logical_expression1: 'test logical_expression1' } - var jsonOutput = jq.simpleExpression(rawJson) - var referenceJsonOutput = {'function_call': undefined, 'for_loop': 'mocked for_loop', 'logical_expression': undefined, 'if_expression': undefined} + const jsonOutput = jq.simpleExpression(rawJson) + const referenceJsonOutput = { function_call: undefined, for_loop: 'mocked for_loop', logical_expression: undefined, if_expression: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing ifExpressionObj logical_expression1', function () { @@ -773,11 +779,11 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'ifExpressionObj').withArgs('mocked primary').returns('mocked if_expression') sinon.stub(jq, 'logicalExpressionObj').withArgs('test logical_expression1').returns(undefined) - var rawJson = { - 'logical_expression1': 'test logical_expression1' + const rawJson = { + logical_expression1: 'test logical_expression1' } - var jsonOutput = jq.simpleExpression(rawJson) - var referenceJsonOutput = {'function_call': undefined, 'for_loop': undefined, 'logical_expression': undefined, 'if_expression': 'mocked if_expression'} + const jsonOutput = jq.simpleExpression(rawJson) + const referenceJsonOutput = { function_call: undefined, for_loop: undefined, logical_expression: undefined, if_expression: 'mocked if_expression' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing logical_expression logical_expression1', function () { @@ -785,35 +791,35 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'checkPri').withArgs('test logical_expression1').returns(undefined) sinon.stub(jq, 'logicalExpressionObj').withArgs('test logical_expression1').returns('mocked logical_expression') - var rawJson = { - 'logical_expression1': 'test logical_expression1' + const rawJson = { + logical_expression1: 'test logical_expression1' } - var jsonOutput = jq.simpleExpression(rawJson) - var referenceJsonOutput = {'function_call': undefined, 'for_loop': undefined, 'logical_expression': 'mocked logical_expression', 'if_expression': undefined} + const jsonOutput = jq.simpleExpression(rawJson) + const referenceJsonOutput = { function_call: undefined, for_loop: undefined, logical_expression: 'mocked logical_expression', if_expression: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing if_expression', function () { mo.it('testing structure', function () { sinon.stub(jq, 'logicalExpression').withArgs('test logical_expression1').returns('mocked logical_expression1').withArgs('test logical_expression2') - .returns('mocked logical_expression2').withArgs('test logical_expression3').returns('mocked logical_expression3') - var rawJson = { - 'logical_expression1': 'test logical_expression1', - 'logical_expression2': 'test logical_expression2', - 'logical_expression3': 'test logical_expression3' + .returns('mocked logical_expression2').withArgs('test logical_expression3').returns('mocked logical_expression3') + const rawJson = { + logical_expression1: 'test logical_expression1', + logical_expression2: 'test logical_expression2', + logical_expression3: 'test logical_expression3' } - var jsonOutput = jq.simpleExpression(rawJson) - var referenceJsonOutput = 'mocked logical_expression1:mocked logical_expression2:mocked logical_expression3' + const jsonOutput = jq.simpleExpression(rawJson) + const referenceJsonOutput = 'mocked logical_expression1:mocked logical_expression2:mocked logical_expression3' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing long_class_specifier', function () { mo.it('checking for missing identifier -> should return an error', function () { - var rawJson = { - 'string_comment': 'test string_comment', - 'composition': 'test composition', - 'is_extends': true, - 'class_modification': 'test class_modification' + const rawJson = { + string_comment: 'test string_comment', + composition: 'test composition', + is_extends: true, + class_modification: 'test class_modification' } try { jq.longClassSpecifier(rawJson) @@ -823,11 +829,11 @@ mo.describe('jsonquery.js', function () { } }) mo.it('checking for missing composition -> should return an error', function () { - var rawJson = { - 'identifier': 'test identifier', - 'string_comment': 'test string_comment', - 'is_extends': true, - 'class_modification': 'test class_modification' + const rawJson = { + identifier: 'test identifier', + string_comment: 'test string_comment', + is_extends: true, + class_modification: 'test class_modification' } try { jq.longClassSpecifier(rawJson) @@ -840,20 +846,20 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'trimDesString').returns('mocked string_comment') sinon.stub(jq, 'composition').returns('mocked composition') sinon.stub(jq, 'classModification').returns('mocked class_modification') - var rawJson = { - 'identifier': 'test identifier', - 'string_comment': 'test string_comment', - 'composition': 'test composition', - 'is_extends': true, - 'class_modification': 'test class_modification' + const rawJson = { + identifier: 'test identifier', + string_comment: 'test string_comment', + composition: 'test composition', + is_extends: true, + class_modification: 'test class_modification' } - var jsonOutput = jq.longClassSpecifier(rawJson) - var referenceJsonOutput = { - 'identifier': 'test identifier', - 'description_string': 'mocked string_comment', - 'composition': 'mocked composition', - 'is_extends': true, - 'class_modification': 'mocked class_modification' + const jsonOutput = jq.longClassSpecifier(rawJson) + const referenceJsonOutput = { + identifier: 'test identifier', + description_string: 'mocked string_comment', + composition: 'mocked composition', + extends: true, + class_modification: 'mocked class_modification' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -861,11 +867,11 @@ mo.describe('jsonquery.js', function () { mo.describe('testing type_specifier', function () { mo.it('testing structure', function () { sinon.stub(jq, 'nameString').returns('mocked name') - var rawJson = { - 'identifier_list': ['identifier1', 'identifier2', 'identifier3'] + const rawJson = { + identifier_list: ['identifier1', 'identifier2', 'identifier3'] } - var jsonOutput = jq.importList(rawJson) - var referenceJsonOutput = 'identifier1,identifier2,identifier3' + const jsonOutput = jq.importList(rawJson) + const referenceJsonOutput = 'identifier1,identifier2,identifier3' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) @@ -873,68 +879,68 @@ mo.describe('jsonquery.js', function () { mo.it('testing structure', function () { sinon.stub(jq, 'trimDesString').returns('mocked string_comment') sinon.stub(jq, 'classModification').returns('mocked class_modification') - var rawJson = { - 'string_comment': 'test string_comment', - 'annotation': { - 'class_modification': 'test class_modification' + const rawJson = { + string_comment: 'test string_comment', + annotation: { + class_modification: 'test class_modification' } } - var jsonOutput = jq.description(rawJson) - var referenceJsonOutput = { - 'description_string': 'mocked string_comment', - 'annotation': 'mocked class_modification' + const jsonOutput = jq.description(rawJson) + const referenceJsonOutput = { + description_string: 'mocked string_comment', + annotation: 'mocked class_modification' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing () annotation', function () { sinon.stub(jq, 'trimDesString').returns('mocked string_comment') sinon.stub(jq, 'classModification').returns('()') - var rawJson = { - 'string_comment': 'test string_comment', - 'annotation': { - 'class_modification': 'test class_modification' + const rawJson = { + string_comment: 'test string_comment', + annotation: { + class_modification: 'test class_modification' } } - var jsonOutput = jq.description(rawJson) - var referenceJsonOutput = { - 'description_string': 'mocked string_comment', - 'annotation': undefined + const jsonOutput = jq.description(rawJson) + const referenceJsonOutput = { + description_string: 'mocked string_comment', + annotation: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing no annotation', function () { sinon.stub(jq, 'trimDesString').returns('mocked string_comment') sinon.stub(jq, 'classModification').returns('()') - var rawJson = { - 'string_comment': 'test string_comment' + const rawJson = { + string_comment: 'test string_comment' } - var jsonOutput = jq.description(rawJson) - var referenceJsonOutput = { - 'description_string': 'mocked string_comment', - 'annotation': undefined + const jsonOutput = jq.description(rawJson) + const referenceJsonOutput = { + description_string: 'mocked string_comment', + annotation: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing trim_des_string', function () { mo.it('testing empty string', function () { - var rawJson = '' - var jsonOutput = jq.trimDesString(rawJson) - var referenceJsonOutput + const rawJson = '' + const jsonOutput = jq.trimDesString(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing nested string', function () { sinon.stub(jq, 'nameString').returns('mocked name') - var rawJson = '"' - var jsonOutput = jq.trimDesString(rawJson) - var referenceJsonOutput = '' + const rawJson = '"' + const jsonOutput = jq.trimDesString(rawJson) + const referenceJsonOutput = '' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing non-empty string', function () { sinon.stub(jq, 'nameString').returns('mocked name') - var rawJson = ' test ' - var jsonOutput = jq.trimDesString(rawJson) - var referenceJsonOutput = 'test' + const rawJson = ' test ' + const jsonOutput = jq.trimDesString(rawJson) + const referenceJsonOutput = 'test' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) @@ -942,23 +948,23 @@ mo.describe('jsonquery.js', function () { mo.it('testing structure', function () { sinon.stub(jq, 'nameString').returns('mocked name') sinon.stub(jq, 'classModification').returns('mocked class_modification') - var rawJson = { - 'name': 'test name', - 'class_modification': 'test class_modification' + const rawJson = { + name: 'test name', + class_modification: 'test class_modification' } - var jsonOutput = jq.constrainingClause(rawJson) - var referenceJsonOutput = { - 'name': 'mocked name', - 'class_modification': 'mocked class_modification' + const jsonOutput = jq.constrainingClause(rawJson) + const referenceJsonOutput = { + name: 'mocked name', + class_modification: 'mocked class_modification' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing undefined', function () { - var rawJson = {} - var jsonOutput = jq.constrainingClause(rawJson) - var referenceJsonOutput = { - 'name': undefined, - 'class_modification': undefined + const rawJson = {} + const jsonOutput = jq.constrainingClause(rawJson) + const referenceJsonOutput = { + name: undefined, + class_modification: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -966,37 +972,37 @@ mo.describe('jsonquery.js', function () { mo.describe('testing type_specifier', function () { mo.it('testing structure', function () { sinon.stub(jq, 'nameString').returns('mocked name') - var rawJson = { - 'name': 'test name' + const rawJson = { + name: 'test name' } - var jsonOutput = jq.typeSpecifier(rawJson) - var referenceJsonOutput = 'mocked name' + const jsonOutput = jq.typeSpecifier(rawJson) + const referenceJsonOutput = 'mocked name' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing array_subscripts', function () { mo.it('testing structure', function () { sinon.stub(jq, 'expression').withArgs('test expression1').returns('mocked expression1') - .withArgs('test expression2').returns('mocked expression2') - var rawJson = { - 'subscripts': [ + .withArgs('test expression2').returns('mocked expression2') + const rawJson = { + subscripts: [ { - 'expression': 'test expression1', - 'colon_op': true + expression: 'test expression1', + colon_op: true }, { - 'expression': 'test expression2', - 'colon_op': false + expression: 'test expression2', + colon_op: false } ] } - var jsonOutput = jq.arraySubscripts(rawJson) - var referenceJsonOutput = [ + const jsonOutput = jq.arraySubscripts(rawJson) + const referenceJsonOutput = [ { - 'colon_op': true, - 'expression': 'mocked expression1' + colon_op: true, + expression: 'mocked expression1' }, { - 'colon_op': undefined, - 'expression': 'mocked expression1' + colon_op: undefined, + expression: 'mocked expression1' } ] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) @@ -1006,26 +1012,26 @@ mo.describe('jsonquery.js', function () { mo.it('testing structure', function () { sinon.stub(jq, 'arraySubscripts').returns('mocked array_subscripts') sinon.stub(jq, 'modification').returns('mocked modification') - var rawJson = { - 'identifier': 'test identifier', - 'array_subscripts': 'test array_subscripts', - 'modification': true + const rawJson = { + identifier: 'test identifier', + array_subscripts: 'test array_subscripts', + modification: true } - var jsonOutput = jq.declaration(rawJson) - var referenceJsonOutput = { - 'identifier': 'test identifier', - 'array_subscripts': 'mocked array_subscripts', - 'modification': 'mocked modification' + const jsonOutput = jq.declaration(rawJson) + const referenceJsonOutput = { + identifier: 'test identifier', + array_subscripts: 'mocked array_subscripts', + modification: 'mocked modification' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing undefined', function () { - var rawJson = {} - var jsonOutput = jq.declaration(rawJson) - var referenceJsonOutput = { - 'identifier': 'test identifier', - 'array_subscripts': undefined, - 'modification': undefined + const rawJson = {} + const jsonOutput = jq.declaration(rawJson) + const referenceJsonOutput = { + identifier: 'test identifier', + array_subscripts: undefined, + modification: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1034,29 +1040,29 @@ mo.describe('jsonquery.js', function () { mo.it('testing structure', function () { sinon.stub(jq, 'classModification').returns('mocked class_modification') sinon.stub(jq, 'expression').returns('mocked expression') - var rawJson = { - 'class_modification': 'test class_modification', - 'equal': true, - 'colon_equal': true, - 'expression': 'test expression' + const rawJson = { + class_modification: 'test class_modification', + equal: true, + colon_equal: true, + expression: 'test expression' } - var jsonOutput = jq.modification(rawJson) - var referenceJsonOutput = { - 'class_modification': 'mocked class_modification', - 'equal': true, - 'colon_equal': true, - 'expression': 'mocked expression' + const jsonOutput = jq.modification(rawJson) + const referenceJsonOutput = { + class_modification: 'mocked class_modification', + equal: true, + colon_equal: true, + expression: 'mocked expression' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing undefined', function () { - var rawJson = {} - var jsonOutput = jq.modification(rawJson) - var referenceJsonOutput = { - 'class_modification': undefined, - 'equal': undefined, - 'colon_equal': undefined, - 'expression': undefined + const rawJson = {} + const jsonOutput = jq.modification(rawJson) + const referenceJsonOutput = { + class_modification: undefined, + equal: undefined, + colon_equal: undefined, + expression: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1066,26 +1072,26 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'shortClassDefinition').returns('mocked short_class_definition') sinon.stub(jq, 'componentClause1').returns('mocked component_clause1') sinon.stub(jq, 'constrainingClause').returns('mocked constraining_clause') - var rawJson = { - 'short_class_definition': 'test short_class_definition', - 'component_clause1': 'test component_clause1', - 'constraining_clause': 'test constraining_clause' + const rawJson = { + short_class_definition: 'test short_class_definition', + component_clause1: 'test component_clause1', + constraining_clause: 'test constraining_clause' } - var jsonOutput = jq.elementReplaceable(rawJson) - var referenceJsonOutput = { - 'short_class_definition': 'mocked short_class_definition', - 'component_clause1': 'mocked component_clause1', - 'constraining_clause': 'mocked constraining_clause' + const jsonOutput = jq.elementReplaceable(rawJson) + const referenceJsonOutput = { + short_class_definition: 'mocked short_class_definition', + component_clause1: 'mocked component_clause1', + constraining_clause: 'mocked constraining_clause' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing undefined', function () { - var rawJson = {} - var jsonOutput = jq.elementReplaceable(rawJson) - var referenceJsonOutput = { - 'short_class_definition': undefined, - 'component_clause1': undefined, - 'constraining_clause': undefined + const rawJson = {} + const jsonOutput = jq.elementReplaceable(rawJson) + const referenceJsonOutput = { + short_class_definition: undefined, + component_clause1: undefined, + constraining_clause: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1093,14 +1099,14 @@ mo.describe('jsonquery.js', function () { mo.describe('testing short_class_definition', function () { mo.it('testing structure', function () { sinon.stub(jq, 'shortClassSpecifier').returns('mocked short_class_specifier') - var rawJson = { - 'class_prefixes': 'test class_prefixes', - 'short_class_specifier': 'test short_class_specifier' + const rawJson = { + class_prefixes: 'test class_prefixes', + short_class_specifier: 'test short_class_specifier' } - var jsonOutput = jq.shortClassDefinition(rawJson) - var referenceJsonOutput = { - 'class_prefixes': 'test class_prefixes', - 'short_class_specifier': 'mocked short_class_specifier' + const jsonOutput = jq.shortClassDefinition(rawJson) + const referenceJsonOutput = { + class_prefixes: 'test class_prefixes', + short_class_specifier: 'mocked short_class_specifier' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1109,25 +1115,25 @@ mo.describe('jsonquery.js', function () { mo.it('testing structure', function () { sinon.stub(jq, 'description').returns('mocked description') sinon.stub(jq, 'declaration').returns('mocked declaration') - var rawJson = { - 'declaration': 'test declaration', - 'comment': 'test comment' + const rawJson = { + declaration: 'test declaration', + comment: 'test comment' } - var jsonOutput = jq.componentDeclaration1(rawJson) - var referenceJsonOutput = { - 'declaration': 'mocked declaration', - 'description': 'mocked description' + const jsonOutput = jq.componentDeclaration1(rawJson) + const referenceJsonOutput = { + declaration: 'mocked declaration', + description: 'mocked description' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing undefined', function () { sinon.stub(jq, 'description').returns('mocked description') sinon.stub(jq, 'declaration').returns('mocked declaration') - var rawJson = {} - var jsonOutput = jq.componentDeclaration1(rawJson) - var referenceJsonOutput = { - 'declaration': 'mocked declaration', - 'description': undefined + const rawJson = {} + const jsonOutput = jq.componentDeclaration1(rawJson) + const referenceJsonOutput = { + declaration: 'mocked declaration', + description: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1135,15 +1141,15 @@ mo.describe('jsonquery.js', function () { mo.describe('testing equation_section', function () { mo.it('testing structure', function () { sinon.stub(jq, 'equation').withArgs('test equation1').returns('mocked equation1') - .withArgs('test equation2').returns('mocked equation2') - var rawJson = { - 'initial': true, - 'equations': ['test equation1', 'test equation2'] + .withArgs('test equation2').returns('mocked equation2') + const rawJson = { + initial: true, + equations: ['test equation1', 'test equation2'] } - var jsonOutput = jq.equationSection(rawJson) - var referenceJsonOutput = { - 'initial': true, - 'equation': ['mocked equation1', 'mocked equation2'] + const jsonOutput = jq.equationSection(rawJson) + const referenceJsonOutput = { + initial: true, + equation: ['mocked equation1', 'mocked equation2'] } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1157,38 +1163,38 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'whenEquation').returns('mocked when_equation') sinon.stub(jq, 'functionCallEquation').returns('mocked function_call_equation') sinon.stub(jq, 'description').returns('mocked description') - var rawJson = { - 'assignment_equation': {'lhs': 'test simple_expression', 'rhs': 'test expression'}, - 'if_equation': 'test if_equation', - 'for_equation': 'test for_equation', - 'connect_clause': 'test connect_clause', - 'when_equation': 'test when_equation', - 'function_call_equation': 'test function_call_equation', - 'comment': 'test comment' - } - var jsonOutput = jq.equation(rawJson) - var referenceJsonOutput = { - 'assignment_equation': 'mocked assignment_equation', - 'if_equation': 'mocked if_equation', - 'for_equation': 'mocked for_equation', - 'connect_clause': 'mocked connect_clause', - 'when_equation': 'mocked when_equation', - 'function_call_equation': 'mocked function_call_equation', - 'description': 'mocked description' + const rawJson = { + assignment_equation: { lhs: 'test simple_expression', rhs: 'test expression' }, + if_equation: 'test if_equation', + for_equation: 'test for_equation', + connect_clause: 'test connect_clause', + when_equation: 'test when_equation', + function_call_equation: 'test function_call_equation', + comment: 'test comment' + } + const jsonOutput = jq.equation(rawJson) + const referenceJsonOutput = { + assignment_equation: 'mocked assignment_equation', + if_equation: 'mocked if_equation', + for_equation: 'mocked for_equation', + connect_clause: 'mocked connect_clause', + when_equation: 'mocked when_equation', + function_call_equation: 'mocked function_call_equation', + description: 'mocked description' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing empty dictionary', function () { - var rawJson = {} - var jsonOutput = jq.equation(rawJson) - var referenceJsonOutput = { - 'assignment_equation': undefined, - 'if_equation': undefined, - 'for_equation': undefined, - 'connect_clause': undefined, - 'when_equation': undefined, - 'function_call_equation': undefined, - 'description': undefined + const rawJson = {} + const jsonOutput = jq.equation(rawJson) + const referenceJsonOutput = { + assignment_equation: undefined, + if_equation: undefined, + for_equation: undefined, + connect_clause: undefined, + when_equation: undefined, + function_call_equation: undefined, + description: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1197,23 +1203,23 @@ mo.describe('jsonquery.js', function () { mo.it('testing structure', function () { sinon.stub(jq, 'simpleExpression').returns('mocked simple_expression') sinon.stub(jq, 'expression').returns('mocked expression') - var rawJson = { - 'lhs': 'test lhs', - 'rhs': 'test rhs' + const rawJson = { + lhs: 'test lhs', + rhs: 'test rhs' } - var jsonOutput = jq.assignmentEquation(rawJson) - var referenceJsonOutput = { - 'lhs': 'mocked simple_expression', - 'rhs': 'mocked expression' + const jsonOutput = jq.assignmentEquation(rawJson) + const referenceJsonOutput = { + lhs: 'mocked simple_expression', + rhs: 'mocked expression' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing empty dictionary', function () { - var rawJson = {} - var jsonOutput = jq.assignmentEquation(rawJson) - var referenceJsonOutput = { - 'lhs': undefined, - 'rhs': undefined + const rawJson = {} + const jsonOutput = jq.assignmentEquation(rawJson) + const referenceJsonOutput = { + lhs: undefined, + rhs: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1222,32 +1228,32 @@ mo.describe('jsonquery.js', function () { mo.it('testing structure', function () { sinon.stub(jq, 'expression').returns('mocked condition') sinon.stub(jq, 'equation').withArgs('test equation1').returns('mocked equation1') - .withArgs('test equation2').returns('mocked equation2') - .withArgs('test equation3').returns('mocked equation3') - .withArgs('test equation4').returns('mocked equation4') - .withArgs('test equation5').returns('mocked equation5') - var rawJson = { - 'if_elseif': [ + .withArgs('test equation2').returns('mocked equation2') + .withArgs('test equation3').returns('mocked equation3') + .withArgs('test equation4').returns('mocked equation4') + .withArgs('test equation5').returns('mocked equation5') + const rawJson = { + if_elseif: [ { - 'condition': 'test condition', - 'then': ['test equation1', 'test equation2'] + condition: 'test condition', + then: ['test equation1', 'test equation2'] }, { - 'then': ['test equation3'] + then: ['test equation3'] } ], - 'else_equation': ['test equation4', 'test equation5'] + else_equation: ['test equation4', 'test equation5'] } - var jsonOutput = jq.ifEquation(rawJson) - var referenceJsonOutput = { - 'if_elseif': [ + const jsonOutput = jq.ifEquation(rawJson) + const referenceJsonOutput = { + if_elseif: [ { - 'condition': 'mocked condition', - 'then': [{'equation': 'mocked equation1'}, {'equation': 'mocked equation2'}] + condition: 'mocked condition', + then: [{ equation: 'mocked equation1' }, { equation: 'mocked equation2' }] }, { - 'then': [{'equation': 'mocked equation3'}] + then: [{ equation: 'mocked equation3' }] } ], - 'else_equation': [ + else_equation: [ 'mocked equation4', 'mocked equation5' ] } @@ -1258,15 +1264,15 @@ mo.describe('jsonquery.js', function () { mo.it('testing structure', function () { sinon.stub(jq, 'forIndices').returns('mocked for_indices') sinon.stub(jq, 'equation').withArgs('test equation1').returns('mocked equation1') - .withArgs('test equation2').returns('mocked equation2') - var rawJson = { - 'for_indices': 'test for_indices', - 'loop_equations': ['test equation1', 'test equation2'] + .withArgs('test equation2').returns('mocked equation2') + const rawJson = { + for_indices: 'test for_indices', + loop_equations: ['test equation1', 'test equation2'] } - var jsonOutput = jq.forEquation(rawJson) - var referenceJsonOutput = { - 'for_indices': 'mocked for_indices', - 'loop_equations': ['mocked equation1', 'mocked equation2'] + const jsonOutput = jq.forEquation(rawJson) + const referenceJsonOutput = { + for_indices: 'mocked for_indices', + loop_equations: ['mocked equation1', 'mocked equation2'] } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1274,15 +1280,15 @@ mo.describe('jsonquery.js', function () { mo.describe('testing connect_clause', function () { mo.it('testing structure', function () { sinon.stub(jq, 'componentReference').withArgs('test from').returns('mocked from') - .withArgs('test to').returns('mocked to') - var rawJson = { - 'from': 'test from', - 'to': 'test to' + .withArgs('test to').returns('mocked to') + const rawJson = { + from: 'test from', + to: 'test to' } - var jsonOutput = jq.connectClause(rawJson) - var referenceJsonOutput = { - 'from': 'mocked from', - 'to': 'mocked to' + const jsonOutput = jq.connectClause(rawJson) + const referenceJsonOutput = { + from: 'mocked from', + to: 'mocked to' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1290,28 +1296,28 @@ mo.describe('jsonquery.js', function () { mo.describe('testing component_reference', function () { mo.it('testing structure', function () { sinon.stub(jq, 'arraySubscripts').returns('mocked array_subscripts') - var rawJson = { - 'component_reference_parts': [ + const rawJson = { + component_reference_parts: [ { - 'dot_op': true, - 'identifier': 'test identifier', - 'array_subscripts': 'test array_subscripts' + dot_op: true, + identifier: 'test identifier', + array_subscripts: 'test array_subscripts' }, { - 'dot_op': false, - 'identifier': 'test identifier' + dot_op: false, + identifier: 'test identifier' } ] } - var jsonOutput = jq.componentReference(rawJson) - var referenceJsonOutput = [ + const jsonOutput = jq.componentReference(rawJson) + const referenceJsonOutput = [ { - 'dot_op': true, - 'identifier': 'test identifier', - 'array_subscripts': 'mocked array_subscripts' + dot_op: true, + identifier: 'test identifier', + array_subscripts: 'mocked array_subscripts' }, { - 'dot_op': false, - 'identifier': 'test identifier', - 'array_subscripts': undefined + dot_op: false, + identifier: 'test identifier', + array_subscripts: undefined } ] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) @@ -1321,20 +1327,20 @@ mo.describe('jsonquery.js', function () { mo.it('testing structure', function () { sinon.stub(jq, 'expression').returns('mocked expression') sinon.stub(jq, 'functionCallArgs').withArgs('test equation1').returns('mocked equation1') - .withArgs('test equation2').returns('mocked equation2') - var rawJson = { - 'when_elsewhen': [ + .withArgs('test equation2').returns('mocked equation2') + const rawJson = { + when_elsewhen: [ { - 'condition': 'test expression', - 'then': ['test equation1', 'test equation2'] + condition: 'test expression', + then: ['test equation1', 'test equation2'] } ] } - var jsonOutput = jq.whenEquation(rawJson) - var referenceJsonOutput = [ + const jsonOutput = jq.whenEquation(rawJson) + const referenceJsonOutput = [ { - 'condition': 'mocked expression', - 'then': ['mocked equation1', 'mocked equation2'] + condition: 'mocked expression', + then: ['mocked equation1', 'mocked equation2'] } ] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) @@ -1344,23 +1350,23 @@ mo.describe('jsonquery.js', function () { mo.it('testing structure', function () { sinon.stub(jq, 'nameString').returns('mocked function_name') sinon.stub(jq, 'functionCallArgs').returns('mocked function_call_args') - var rawJson = { - 'function_name': 'test function_name', - 'function_call_args': 'test function_call_args' + const rawJson = { + function_name: 'test function_name', + function_call_args: 'test function_call_args' } - var jsonOutput = jq.functionCallEquation(rawJson) - var referenceJsonOutput = { - 'function_name': 'mocked function_name', - 'function_call_args': 'mocked function_call_args' + const jsonOutput = jq.functionCallEquation(rawJson) + const referenceJsonOutput = { + function_name: 'mocked function_name', + function_call_args: 'mocked function_call_args' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing undefined', function () { - var rawJson = {} - var jsonOutput = jq.functionCallEquation(rawJson) - var referenceJsonOutput = { - 'function_name': undefined, - 'function_call_args': undefined + const rawJson = {} + const jsonOutput = jq.functionCallEquation(rawJson) + const referenceJsonOutput = { + function_name: undefined, + function_call_args: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1368,30 +1374,30 @@ mo.describe('jsonquery.js', function () { mo.describe('testing function_call_args', function () { mo.it('testing structure', function () { sinon.stub(jq, 'functionArguments').returns('mocked function_arguments') - var rawJson = { - 'function_arguments': 'test function_arguments' + const rawJson = { + function_arguments: 'test function_arguments' } - var jsonOutput = jq.functionCallArgs(rawJson) - var referenceJsonOutput = 'mocked function_arguments' + const jsonOutput = jq.functionCallArgs(rawJson) + const referenceJsonOutput = 'mocked function_arguments' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing empty dictionary', function () { sinon.stub(jq, 'functionArguments').returns('mocked function_arguments') - var rawJson = {} - var jsonOutput = jq.functionCallArgs(rawJson) - var referenceJsonOutput + const rawJson = {} + const jsonOutput = jq.functionCallArgs(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing function_arguments', function () { mo.it('testing undefined', function () { - var rawJson = {} - var jsonOutput = jq.functionArguments(rawJson) - var referenceJsonOutput = { - 'named_arguments': undefined, - 'function_argument': undefined, - 'for_indices': undefined, - 'function_arguments': undefined + const rawJson = {} + const jsonOutput = jq.functionArguments(rawJson) + const referenceJsonOutput = { + named_arguments: undefined, + function_argument: undefined, + for_indices: undefined, + function_arguments: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1400,25 +1406,25 @@ mo.describe('jsonquery.js', function () { mo.it('testing structure', function () { sinon.stub(jq, 'namedArgsArray').returns([ { - 'identifier': 'mocked identifier1', - 'value': 'mocked value' + identifier: 'mocked identifier1', + value: 'mocked value' }, { - 'identifier': 'mocked identifier2' + identifier: 'mocked identifier2' } ]) sinon.stub(jq, 'functionArgument').returns('mocked value') - var rawJson = { - 'named_argument': 'test named_argument', - 'named_arguments': 'test named_arguments' + const rawJson = { + named_argument: 'test named_argument', + named_arguments: 'test named_arguments' } - var jsonOutput = jq.namedArguments(rawJson) - var referenceJsonOutput = [ + const jsonOutput = jq.namedArguments(rawJson) + const referenceJsonOutput = [ { - 'identifier': 'mocked identifier1', - 'value': 'mocked value' + identifier: 'mocked identifier1', + value: 'mocked value' }, { - 'identifier': 'mocked identifier2', - 'value': undefined + identifier: 'mocked identifier2', + value: undefined }] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1428,26 +1434,26 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'nameString').returns('mocked function_name') sinon.stub(jq, 'namedArguments').returns('mocked named_arguments') sinon.stub(jq, 'expression').returns('mocked expression') - var rawJson = { - 'function_name': 'test function_name', - 'named_arguments': 'test named_arguments', - 'expression': 'test expression' + const rawJson = { + function_name: 'test function_name', + named_arguments: 'test named_arguments', + expression: 'test expression' } - var jsonOutput = jq.functionArgument(rawJson) - var referenceJsonOutput = { - 'function_name': 'mocked function_name', - 'named_arguments': 'mocked named_arguments', - 'expression': 'mocked expression' + const jsonOutput = jq.functionArgument(rawJson) + const referenceJsonOutput = { + function_name: 'mocked function_name', + named_arguments: 'mocked named_arguments', + expression: 'mocked expression' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing undefineds', function () { - var rawJson = {} - var jsonOutput = jq.functionArgument(rawJson) - var referenceJsonOutput = { - 'function_name': undefined, - 'named_arguments': undefined, - 'expression': undefined + const rawJson = {} + const jsonOutput = jq.functionArgument(rawJson) + const referenceJsonOutput = { + function_name: undefined, + named_arguments: undefined, + expression: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1455,24 +1461,24 @@ mo.describe('jsonquery.js', function () { mo.describe('testing for_indices', function () { mo.it('testing structure', function () { sinon.stub(jq, 'expression').returns('mocked expression') - var rawJson = { - 'indices': [ + const rawJson = { + indices: [ { - 'identifier': 'test identifier1', - 'expression': 'test expression' + identifier: 'test identifier1', + expression: 'test expression' }, { - 'identifier': 'test identifier2' + identifier: 'test identifier2' } ] } - var jsonOutput = jq.forIndices(rawJson) - var referenceJsonOutput = [ + const jsonOutput = jq.forIndices(rawJson) + const referenceJsonOutput = [ { - 'identifier': 'test identifier1', - 'expression': 'mocked expression' + identifier: 'test identifier1', + expression: 'mocked expression' }, { - 'identifier': 'test identifier2', - 'expression': undefined + identifier: 'test identifier2', + expression: undefined } ] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) @@ -1480,52 +1486,52 @@ mo.describe('jsonquery.js', function () { }) mo.describe('testing algorithm_section', function () { mo.it('testing initial false', function () { - var rawJson = { - 'initial': false, - 'statements': [] + const rawJson = { + initial: false, + statements: [] } - var jsonOutput = jq.algorithmSection(rawJson) - var referenceJsonOutput = { - 'initial': undefined, - 'statement': [] + const jsonOutput = jq.algorithmSection(rawJson) + const referenceJsonOutput = { + initial: undefined, + statement: [] } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing structure', function () { sinon.stub(jq, 'statement').withArgs('test statement1').returns('mocked statement1') - .withArgs('test statement2').returns('mocked statement2') - var rawJson = { - 'initial': true, - 'statements': [ + .withArgs('test statement2').returns('mocked statement2') + const rawJson = { + initial: true, + statements: [ 'test statement1', 'test statement2' ] } - var jsonOutput = jq.algorithmSection(rawJson) - var referenceJsonOutput = { - 'initial': true, - 'statement': ['mocked statement1', 'mocked statement2'] + const jsonOutput = jq.algorithmSection(rawJson) + const referenceJsonOutput = { + initial: true, + statement: ['mocked statement1', 'mocked statement2'] } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing statement', function () { mo.it('testing undefineds', function () { - var rawJson = { - 'is_break': false, - 'is_return': false + const rawJson = { + is_break: false, + is_return: false } - var jsonOutput = jq.statement(rawJson) - var referenceJsonOutput = { - 'assignment_statement': undefined, - 'Function_call_statement': undefined, - 'assignment_with_function_call_statement': undefined, - 'is_break': undefined, - 'is_return': undefined, - 'if_statement': undefined, - 'for_statement': undefined, - 'while_statement': undefined, - 'when_statement': undefined, - 'description': undefined + const jsonOutput = jq.statement(rawJson) + const referenceJsonOutput = { + assignment_statement: undefined, + Function_call_statement: undefined, + assignment_with_function_call_statement: undefined, + break: undefined, + return: undefined, + if_statement: undefined, + for_statement: undefined, + while_statement: undefined, + when_statement: undefined, + description: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1538,131 +1544,131 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'forStatement').returns('mocked for_statement') sinon.stub(jq, 'whileStatement').returns('mocked while_statement') sinon.stub(jq, 'whenStatement').returns('mocked when_statement') - var rawJson = { - 'assignment_statement': 'test assignment_statement', - 'Function_call_statement': 'test Function_call_statement', - 'assignment_with_function_call_statement': 'test assignment_with_function_call_statement', - 'is_break': true, - 'is_return': true, - 'if_statement': 'test if_statement', - 'for_statement': 'test for_statement', - 'while_statement': 'test while_statement', - 'when_statement': 'test when_statement', - 'comment': 'test comment' - } - var jsonOutput = jq.statement(rawJson) - var referenceJsonOutput = { - 'assignment_statement': 'mocked assignment_statement', - 'Function_call_statement': 'mocked Function_call_statement', - 'assignment_with_function_call_statement': 'mocked assignment_with_function_call_statement', - 'is_break': true, - 'is_return': true, - 'if_statement': 'mocked if_statement', - 'for_statement': 'mocked for_statement', - 'while_statement': 'mocked while_statement', - 'when_statement': 'mocked when_statement', - 'description': 'mocked description' + const rawJson = { + assignment_statement: 'test assignment_statement', + Function_call_statement: 'test Function_call_statement', + assignment_with_function_call_statement: 'test assignment_with_function_call_statement', + is_break: true, + is_return: true, + if_statement: 'test if_statement', + for_statement: 'test for_statement', + while_statement: 'test while_statement', + when_statement: 'test when_statement', + comment: 'test comment' + } + const jsonOutput = jq.statement(rawJson) + const referenceJsonOutput = { + assignment_statement: 'mocked assignment_statement', + Function_call_statement: 'mocked Function_call_statement', + assignment_with_function_call_statement: 'mocked assignment_with_function_call_statement', + break: true, + return: true, + if_statement: 'mocked if_statement', + for_statement: 'mocked for_statement', + while_statement: 'mocked while_statement', + when_statement: 'mocked when_statement', + description: 'mocked description' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing assignment_statement', function () { mo.it('testing undefineds', function () { - var rawJson = {} - var jsonOutput = jq.assignmentStatement(rawJson) - var referenceJsonOutput = { - 'identifier': undefined, - 'value': undefined + const rawJson = {} + const jsonOutput = jq.assignmentStatement(rawJson) + const referenceJsonOutput = { + identifier: undefined, + value: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing structure', function () { sinon.stub(jq, 'componentReference').returns('mocked identifier') sinon.stub(jq, 'expression').returns('mocked value') - var rawJson = { - 'identifier': 'test identifier', - 'value': 'test value' + const rawJson = { + identifier: 'test identifier', + value: 'test value' } - var jsonOutput = jq.assignmentStatement(rawJson) - var referenceJsonOutput = { - 'identifier': 'mocked identifier', - 'value': 'mocked value' + const jsonOutput = jq.assignmentStatement(rawJson) + const referenceJsonOutput = { + identifier: 'mocked identifier', + value: 'mocked value' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing function_call_statement', function () { mo.it('testing undefineds', function () { - var rawJson = {} - var jsonOutput = jq.functionCallStatement(rawJson) - var referenceJsonOutput = { - 'function_name': undefined, - 'function_call_args': undefined + const rawJson = {} + const jsonOutput = jq.functionCallStatement(rawJson) + const referenceJsonOutput = { + function_name: undefined, + function_call_args: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing structure', function () { sinon.stub(jq, 'componentReference').returns('mocked name') sinon.stub(jq, 'functionCallArgs').returns('mocked function_call_args') - var rawJson = { - 'function_name': 'test function_name', - 'function_call_args': 'test function_call_args' + const rawJson = { + function_name: 'test function_name', + function_call_args: 'test function_call_args' } - var jsonOutput = jq.functionCallStatement(rawJson) - var referenceJsonOutput = { - 'function_name': 'mocked name', - 'function_call_args': 'mocked function_call_args' + const jsonOutput = jq.functionCallStatement(rawJson) + const referenceJsonOutput = { + function_name: 'mocked name', + function_call_args: 'mocked function_call_args' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing assignment_with_function_call_statement', function () { mo.it('testing undefineds', function () { - var rawJson = {} - var jsonOutput = jq.assignmentWithFunctionCallStatement(rawJson) - var referenceJsonOutput = { - 'function_name': undefined, - 'function_call_args': undefined + const rawJson = {} + const jsonOutput = jq.assignmentWithFunctionCallStatement(rawJson) + const referenceJsonOutput = { + function_name: undefined, + function_call_args: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing structure with output_expressions', function () { sinon.stub(jq, 'expression').withArgs('test expression1').returns('mocked expression1') - .withArgs('test expression2').returns('mocked expression2') + .withArgs('test expression2').returns('mocked expression2') sinon.stub(jq, 'componentReference').returns('mocked function_name') sinon.stub(jq, 'functionCallArgs').returns('mocked function_call_args') - var rawJson = { - 'output_expression_list': { - 'output_expressions': [ + const rawJson = { + output_expression_list: { + output_expressions: [ 'test expression1', 'test expression2' ] }, - 'function_name': 'test function_name', - 'function_call_args': 'test function_call_args' + function_name: 'test function_name', + function_call_args: 'test function_call_args' } - var jsonOutput = jq.assignmentWithFunctionCallStatement(rawJson) - var referenceJsonOutput = { - 'output_expression_list': [ + const jsonOutput = jq.assignmentWithFunctionCallStatement(rawJson) + const referenceJsonOutput = { + output_expression_list: [ 'mocked expression1', 'mocked expression2' ], - 'function_name': 'mocked function_name', - 'function_call_args': 'mocked function_call_args' + function_name: 'mocked function_name', + function_call_args: 'mocked function_call_args' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing structure without output_expressions', function () { sinon.stub(jq, 'componentReference').returns('mocked function_name') sinon.stub(jq, 'functionCallArgs').returns('mocked function_call_args') - var rawJson = { - 'output_expression_list': {}, - 'function_name': 'test function_name', - 'function_call_args': 'test function_call_args' + const rawJson = { + output_expression_list: {}, + function_name: 'test function_name', + function_call_args: 'test function_call_args' } - var jsonOutput = jq.assignmentWithFunctionCallStatement(rawJson) - var referenceJsonOutput = { - 'function_name': 'mocked function_name', - 'function_call_args': 'mocked function_call_args' + const jsonOutput = jq.assignmentWithFunctionCallStatement(rawJson) + const referenceJsonOutput = { + function_name: 'mocked function_name', + function_call_args: 'mocked function_call_args' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1670,36 +1676,36 @@ mo.describe('jsonquery.js', function () { mo.describe('testing if_expression', function () { mo.it('testing structure', function () { sinon.stub(jq, 'statement').withArgs('test statement1').returns('mocked statement1') - .withArgs('test statement2').returns('mocked statement2') - .withArgs('test statement3').returns('mocked statement3') - .withArgs('test statement4').returns('mocked statement4') + .withArgs('test statement2').returns('mocked statement2') + .withArgs('test statement3').returns('mocked statement3') + .withArgs('test statement4').returns('mocked statement4') sinon.stub(jq, 'expression').withArgs('mocked condition') - var rawJson = { - 'if_elseif': [ + const rawJson = { + if_elseif: [ { - 'condition': 'test condition1', - 'then': [ + condition: 'test condition1', + then: [ 'test statement1', 'test statement2' ] }, { - 'then': [] + then: [] } ], - 'else_statement': [ + else_statement: [ 'test statement3', 'test statement4' ] } - var jsonOutput = jq.ifStatement(rawJson) - var referenceJsonOutput = { - 'if_elseif': [ + const jsonOutput = jq.ifStatement(rawJson) + const referenceJsonOutput = { + if_elseif: [ { - 'condition': 'mocked condition', - 'then': ['mocked statement1', 'mocked statement2'] + condition: 'mocked condition', + then: ['mocked statement1', 'mocked statement2'] }, { - 'condition': undefined, - 'then': [] + condition: undefined, + then: [] }], - 'else_statement': [ + else_statement: [ 'mocked statement3', 'mocked statement4' ] } @@ -1709,18 +1715,18 @@ mo.describe('jsonquery.js', function () { mo.describe('testing for_statement', function () { mo.it('testing structure', function () { sinon.stub(jq, 'statement').withArgs('test statement1').returns('mocked statement1').withArgs('test statement2') - .returns('mocked statement2').withArgs('test statement3').returns('mocked statement3') + .returns('mocked statement2').withArgs('test statement3').returns('mocked statement3') sinon.stub(jq, 'forIndices').returns('mocked indices') - var rawJson = { - 'for_indices': 'test for_indices', - 'loop_statements': [ + const rawJson = { + for_indices: 'test for_indices', + loop_statements: [ 'test statement1', 'test statement2', 'test statement3' ] } - var jsonOutput = jq.forStatement(rawJson) - var referenceJsonOutput = { - 'for_indices': 'mocked indices', - 'loop_statements': [ + const jsonOutput = jq.forStatement(rawJson) + const referenceJsonOutput = { + for_indices: 'mocked indices', + loop_statements: [ 'mocked statement1', 'mocked statement2', 'mocked statement3' ] } @@ -1730,32 +1736,32 @@ mo.describe('jsonquery.js', function () { mo.describe('testing while_statement', function () { mo.it('testing with undefined condition', function () { sinon.stub(jq, 'statement').withArgs('test loop1').returns('mocked loop1').withArgs('test loop2') - .returns('mocked loop2') + .returns('mocked loop2') sinon.stub(jq, 'expression').withArgs('mocked condition') - var rawJson = { - 'loop_statements': ['test loop1', 'test loop2'] + const rawJson = { + loop_statements: ['test loop1', 'test loop2'] } - var jsonOutput = jq.whileStatement(rawJson) - var referenceJsonOutput = + const jsonOutput = jq.whileStatement(rawJson) + const referenceJsonOutput = { - 'expression': undefined, - 'loop_statement': ['mocked loop1', 'mocked loop2'] + expression: undefined, + loop_statement: ['mocked loop1', 'mocked loop2'] } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing structure', function () { sinon.stub(jq, 'statement').withArgs('test loop1').returns('mocked loop1').withArgs('test loop2') - .returns('mocked loop2') + .returns('mocked loop2') sinon.stub(jq, 'expression').returns('mocked condition') - var rawJson = { - 'expression': 'test condition', - 'loop_statements': ['test loop1', 'test loop2'] + const rawJson = { + expression: 'test condition', + loop_statements: ['test loop1', 'test loop2'] } - var jsonOutput = jq.whileStatement(rawJson) - var referenceJsonOutput = + const jsonOutput = jq.whileStatement(rawJson) + const referenceJsonOutput = { - 'expression': 'mocked condition', - 'loop_statement': ['mocked loop1', 'mocked loop2'] + expression: 'mocked condition', + loop_statement: ['mocked loop1', 'mocked loop2'] } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1763,27 +1769,27 @@ mo.describe('jsonquery.js', function () { mo.describe('testing when_statement', function () { mo.it('testing structure', function () { sinon.stub(jq, 'statement').withArgs('test then1').returns('mocked then1').withArgs('test then2') - .returns('mocked then2') + .returns('mocked then2') sinon.stub(jq, 'expression').withArgs('test condition1').returns('mocked condition1') - .withArgs('test condition2').returns('mocked condition2') - var rawJson = { - 'when_elsewhen': [ + .withArgs('test condition2').returns('mocked condition2') + const rawJson = { + when_elsewhen: [ { - 'condition': 'test condition1', - 'then': ['test then1', 'test then2'] + condition: 'test condition1', + then: ['test then1', 'test then2'] }, { - 'condition': undefined, - 'then': [] + condition: undefined, + then: [] }] } - var jsonOutput = jq.whenStatement(rawJson) - var referenceJsonOutput = [ + const jsonOutput = jq.whenStatement(rawJson) + const referenceJsonOutput = [ { - 'condition': 'mocked condition1', - 'then': ['mocked then1', 'mocked then2'] + condition: 'mocked condition1', + then: ['mocked then1', 'mocked then2'] }, { - 'condition': undefined, - 'then': [] + condition: undefined, + then: [] }] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1791,24 +1797,24 @@ mo.describe('jsonquery.js', function () { mo.describe('testing short_class_specifier', function () { mo.it('testing undefineds', function () { sinon.stub(jq, 'shortClassSpecifierValue').returns('mocked short_class_specifier_value') - var rawJson = {} - var jsonOutput = jq.shortClassSpecifier(rawJson) - var referenceJsonOutput = { - 'identifier': undefined, - 'value': undefined + const rawJson = {} + const jsonOutput = jq.shortClassSpecifier(rawJson) + const referenceJsonOutput = { + identifier: undefined, + value: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing structure', function () { sinon.stub(jq, 'shortClassSpecifierValue').returns('mocked short_class_specifier_value') - var rawJson = { - 'identifier': 'test identifier', - 'short_class_specifier_value': 'test short_class_specifier_value' + const rawJson = { + identifier: 'test identifier', + short_class_specifier_value: 'test short_class_specifier_value' } - var jsonOutput = jq.shortClassSpecifier(rawJson) - var referenceJsonOutput = { - 'identifier': 'test identifier', - 'value': 'mocked short_class_specifier_value' + const jsonOutput = jq.shortClassSpecifier(rawJson) + const referenceJsonOutput = { + identifier: 'test identifier', + value: 'mocked short_class_specifier_value' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1819,15 +1825,15 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'nameString').returns('mocked name_string') sinon.stub(jq, 'arraySubscripts').returns('mocked array_subscripts') sinon.stub(jq, 'classModification').returns('mocked class_mod') - var rawJson = {} - var jsonOutput = jq.shortClassSpecifierValue(rawJson) - var referenceJsonOutput = { - 'base_prefix': undefined, - 'name': undefined, - 'array_subscripts': undefined, - 'class_modification': undefined, - 'description': undefined, - 'enum_list': undefined + const rawJson = {} + const jsonOutput = jq.shortClassSpecifierValue(rawJson) + const referenceJsonOutput = { + base_prefix: undefined, + name: undefined, + array_subscripts: undefined, + class_modification: undefined, + description: undefined, + enum_list: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -1836,34 +1842,34 @@ mo.describe('jsonquery.js', function () { sinon.stub(jq, 'nameString').returns('mocked name_string') sinon.stub(jq, 'arraySubscripts').returns('mocked array_subscripts') sinon.stub(jq, 'classModification').returns('mocked class_mod') - var rawJson = { - 'base_prefix': { - 'type_prefix': 'test type_prefix' + const rawJson = { + base_prefix: { + type_prefix: 'test type_prefix' }, - 'name': 'test name', - 'array_subscripts': 'test array_subscripts', - 'class_modification': 'test class_modification', - 'comment': { - 'string_comment': 'test string_comment', - 'annotation': 'test annotation' + name: 'test name', + array_subscripts: 'test array_subscripts', + class_modification: 'test class_modification', + comment: { + string_comment: 'test string_comment', + annotation: 'test annotation' }, - 'enum_list': [{ - 'identifier': 'test identifier1', - 'comment': 'test comment1' + enum_list: [{ + identifier: 'test identifier1', + comment: 'test comment1' }, { - 'identifier': 'test identifier2' + identifier: 'test identifier2' }] } - var jsonOutput = jq.shortClassSpecifierValue(rawJson) - var referenceJsonOutput = { - 'base_prefix': 'test type_prefix', - 'name': 'mocked name_string', - 'array_subscripts': 'mocked array_subscripts', - 'class_modification': 'mocked class_mod', - 'description': 'mocked description', - 'enum_list': [ - {'identifier': 'test identifier1', 'description': 'mocked description'}, - {'identifier': 'test identifier1', 'description': undefined} + const jsonOutput = jq.shortClassSpecifierValue(rawJson) + const referenceJsonOutput = { + base_prefix: 'test type_prefix', + name: 'mocked name_string', + array_subscripts: 'mocked array_subscripts', + class_modification: 'mocked class_mod', + description: 'mocked description', + enum_list: [ + { identifier: 'test identifier1', description: 'mocked description' }, + { identifier: 'test identifier1', description: undefined } ] } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) @@ -1871,52 +1877,52 @@ mo.describe('jsonquery.js', function () { }) mo.describe('testing der_class_specifier', function () { mo.it('testing with no val', function () { - var rawJson = { - 'identifier': 'test identifier' + const rawJson = { + identifier: 'test identifier' } - var jsonOutput = jq.derClassSpecifier(rawJson) - var referenceJsonOutput = { - 'identifier': 'test identifier', - 'value': undefined + const jsonOutput = jq.derClassSpecifier(rawJson) + const referenceJsonOutput = { + identifier: 'test identifier', + value: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing with no comment', function () { - var rawJson = { - 'identifier': 'test identifier', - 'der_class_specifier_value': { - 'type_specifier': 'test type_specifier', - 'identifiers': 'test identifiers' + const rawJson = { + identifier: 'test identifier', + der_class_specifier_value: { + type_specifier: 'test type_specifier', + identifiers: 'test identifiers' } } - var jsonOutput = jq.derClassSpecifier(rawJson) - var referenceJsonOutput = { - 'identifier': 'test identifier', - 'value': { - 'type_specifier': 'test type_specifier', - 'identifier': 'test identifiers', - 'description': undefined + const jsonOutput = jq.derClassSpecifier(rawJson) + const referenceJsonOutput = { + identifier: 'test identifier', + value: { + type_specifier: 'test type_specifier', + identifier: 'test identifiers', + description: undefined } } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing structure', function () { sinon.stub(jq, 'description').returns('test description') - var rawJson = { - 'identifier': 'test identifier', - 'der_class_specifier_value': { - 'type_specifier': 'test type_specifier', - 'identifiers': 'test identifiers', - 'comment': 'test comment' + const rawJson = { + identifier: 'test identifier', + der_class_specifier_value: { + type_specifier: 'test type_specifier', + identifiers: 'test identifiers', + comment: 'test comment' } } - var jsonOutput = jq.derClassSpecifier(rawJson) - var referenceJsonOutput = { - 'identifier': 'test identifier', - 'value': { - 'type_specifier': 'test type_specifier', - 'identifier': 'test identifiers', - 'description': 'test description' + const jsonOutput = jq.derClassSpecifier(rawJson) + const referenceJsonOutput = { + identifier: 'test identifier', + value: { + type_specifier: 'test type_specifier', + identifier: 'test identifiers', + description: 'test description' } } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) @@ -1925,64 +1931,64 @@ mo.describe('jsonquery.js', function () { mo.describe('testing if_expression_obj', function () { mo.it('testing no output_expression_list', function () { - var rawJson = {} - var jsonOutput = jq.ifExpressionObj(rawJson) - var referenceJsonOutput + const rawJson = {} + const jsonOutput = jq.ifExpressionObj(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing with simple_expression', function () { - var rawJson = { - 'output_expression_list': { - 'output_expressions': [ + const rawJson = { + output_expression_list: { + output_expressions: [ { - 'simple_expression': 'test simple_expression' + simple_expression: 'test simple_expression' }] } } - var jsonOutput = jq.ifExpressionObj(rawJson) - var referenceJsonOutput + const jsonOutput = jq.ifExpressionObj(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing with simple_expression', function () { sinon.stub(jq, 'expressionString').withArgs('test condition1').returns('mocked condition1') - .withArgs('test then1').returns('mocked then1') - .withArgs('test condition2').returns('mocked condition2') - .withArgs('test then2').returns('mocked then2') - .withArgs('test else_expression').returns({'else': 'mocked else'}) - var rawJson = { - 'output_expression_list': { - 'output_expressions': [ + .withArgs('test then1').returns('mocked then1') + .withArgs('test condition2').returns('mocked condition2') + .withArgs('test then2').returns('mocked then2') + .withArgs('test else_expression').returns({ else: 'mocked else' }) + const rawJson = { + output_expression_list: { + output_expressions: [ { - 'if_expression': { - 'if_elseif': [ + if_expression: { + if_elseif: [ { - 'condition': 'test condition1', - 'then': 'test then1' + condition: 'test condition1', + then: 'test then1' }, { - 'condition': 'test condition2', - 'then': 'test then2' + condition: 'test condition2', + then: 'test then2' } ], - 'else_expression': 'test else_expression' + else_expression: 'test else_expression' } }] } } - var jsonOutput = jq.ifExpressionObj(rawJson) - var referenceJsonOutput = [ + const jsonOutput = jq.ifExpressionObj(rawJson) + const referenceJsonOutput = [ { - 'if_elseif': [ + if_elseif: [ { - 'condition': 'mocked condition1', - 'then': 'mocked then1' + condition: 'mocked condition1', + then: 'mocked then1' }, { - 'condition': 'mocked condition2', - 'then': 'mocked then2' + condition: 'mocked condition2', + then: 'mocked then2' } ], - 'else': { - 'else': 'mocked else' + else: { + else: 'mocked else' } } ] @@ -1991,31 +1997,31 @@ mo.describe('jsonquery.js', function () { }) mo.describe('testing for_loop_obj', function () { mo.it('testing no fun_args', function () { - var rawJson = {} - var jsonOutput = jq.forLoopObj(rawJson) - var referenceJsonOutput + const rawJson = {} + const jsonOutput = jq.forLoopObj(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing no for_indices', function () { - var rawJson = { - 'function_arguments': {} + const rawJson = { + function_arguments: {} } - var jsonOutput = jq.forLoopObj(rawJson) - var referenceJsonOutput + const jsonOutput = jq.forLoopObj(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing structure', function () { sinon.stub(jq, 'funArgObj').returns('mocked function_argument') - sinon.stub(jq, 'forIndObj').returns({'for_indices': 'mocked for_ind_obj'}) - var rawJson = { - 'function_arguments': { - 'for_indices': 'test for_indices' + sinon.stub(jq, 'forIndObj').returns({ for_indices: 'mocked for_ind_obj' }) + const rawJson = { + function_arguments: { + for_indices: 'test for_indices' } } - var jsonOutput = jq.forLoopObj(rawJson) - var referenceJsonOutput = { - 'expression': 'mocked function_argument', - 'for_indices': 'mocked for_ind_obj' + const jsonOutput = jq.forLoopObj(rawJson) + const referenceJsonOutput = { + expression: 'mocked function_argument', + for_indices: 'mocked for_ind_obj' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -2023,21 +2029,21 @@ mo.describe('jsonquery.js', function () { mo.describe('testing logical_expression_obj', function () { mo.it('testing structure', function () { sinon.stub(jq, 'logicalFactorObj').withArgs('test logical_factor1').returns('mocked logical_factor1') - .withArgs('test logical_factor2').returns('mocked logical_factor2') - var rawJson = { - 'logical_term_list': [ + .withArgs('test logical_factor2').returns('mocked logical_factor2') + const rawJson = { + logical_term_list: [ { - 'logical_factor_list': [ + logical_factor_list: [ 'test logical_factor1', 'test logical_factor2' ] } ] } - var jsonOutput = jq.logicalExpressionObj(rawJson) - var referenceJsonOutput = { - 'logical_or': [ + const jsonOutput = jq.logicalExpressionObj(rawJson) + const referenceJsonOutput = { + logical_or: [ { - 'logical_and': [ + logical_and: [ 'mocked logical_factor1', 'mocked logical_factor2' ] } @@ -2049,59 +2055,59 @@ mo.describe('jsonquery.js', function () { mo.describe('testing logical_factor_obj', function () { mo.it('testing if no rel_op --> returns undefined', function () { sinon.stub(jq, 'arithmeticExpression').withArgs('test arithmetic_expression1').returns('mocked arithmetic_expression1') - var rawJson = { - 'not': true, - 'relation': { - 'arithmetic_expression1': 'test arithmetic_expression1', - 'arithmetic_expression2': 'test arithmetic_expression2' + const rawJson = { + not: true, + relation: { + arithmetic_expression1: 'test arithmetic_expression1', + arithmetic_expression2: 'test arithmetic_expression2' } } - var jsonOutput = jq.logicalFactorObj(rawJson) - var referenceJsonOutput + const jsonOutput = jq.logicalFactorObj(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing structure with 1 arithmetic_expression', function () { sinon.stub(jq, 'arithmeticExpression').withArgs('test arithmetic_expression1').returns('mocked arithmetic_expression1') - var rawJson = { - 'not': true, - 'relation': { - 'arithmetic_expression1': 'test arithmetic_expression1', - 'rel_op': 'test rel_op' + const rawJson = { + not: true, + relation: { + arithmetic_expression1: 'test arithmetic_expression1', + rel_op: 'test rel_op' } } - var jsonOutput = jq.logicalFactorObj(rawJson) - var referenceJsonOutput = { - 'not': true, - 'arithmetic_expressions': [{ - 'name': 'mocked arithmetic_expression1' + const jsonOutput = jq.logicalFactorObj(rawJson) + const referenceJsonOutput = { + not: true, + arithmetic_expressions: [{ + name: 'mocked arithmetic_expression1' }, { - 'name': undefined + name: undefined } ], - 'relation_operator': 'test rel_op' + relation_operator: 'test rel_op' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing structure with 2 arithmetic_expression', function () { sinon.stub(jq, 'arithmeticExpression').withArgs('test arithmetic_expression1').returns('mocked arithmetic_expression1') - .withArgs('test arithmetic_expression2').returns('mocked arithmetic_expression2') - var rawJson = { - 'not': true, - 'relation': { - 'arithmetic_expression1': 'test arithmetic_expression1', - 'rel_op': 'test rel_op', - 'arithmetic_expression2': 'test arithmetic_expression2' + .withArgs('test arithmetic_expression2').returns('mocked arithmetic_expression2') + const rawJson = { + not: true, + relation: { + arithmetic_expression1: 'test arithmetic_expression1', + rel_op: 'test rel_op', + arithmetic_expression2: 'test arithmetic_expression2' } } - var jsonOutput = jq.logicalFactorObj(rawJson) - var referenceJsonOutput = { - 'not': true, - 'arithmetic_expressions': [{ - 'name': 'mocked arithmetic_expression1' + const jsonOutput = jq.logicalFactorObj(rawJson) + const referenceJsonOutput = { + not: true, + arithmetic_expressions: [{ + name: 'mocked arithmetic_expression1' }, { - 'name': 'mocked arithmetic_expression2' + name: 'mocked arithmetic_expression2' }], - 'relation_operator': 'test rel_op' + relation_operator: 'test rel_op' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -2109,282 +2115,282 @@ mo.describe('jsonquery.js', function () { mo.describe('testing check_pri', function () { mo.it('testing if only 1 term --> returns undefined otherwise', function () { - var rawJson = { - 'logical_term_list': [{ - 'logical_factor_list': ['test logical_factor_list1', 'test logical_factor_list2'] + const rawJson = { + logical_term_list: [{ + logical_factor_list: ['test logical_factor_list1', 'test logical_factor_list2'] }] } - var jsonOutput = jq.checkPri(rawJson) - var referenceJsonOutput + const jsonOutput = jq.checkPri(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if only 1 logical factor --> returns undefined otherwise', function () { - var rawJson = { - 'logical_term_list': [ + const rawJson = { + logical_term_list: [ { - 'logical_factor_list': [ + logical_factor_list: [ { - 'not': true, - 'relation': 'test relation' + not: true, + relation: 'test relation' }, { - 'not': true, - 'relation': 'test relation' + not: true, + relation: 'test relation' }] }] } - var jsonOutput = jq.checkPri(rawJson) - var referenceJsonOutput + const jsonOutput = jq.checkPri(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if has not operator --> returns undefined otherwise', function () { - var rawJson = { - 'logical_term_list': [ + const rawJson = { + logical_term_list: [ { - 'logical_factor_list': [ + logical_factor_list: [ { - 'not': true, - 'relation': 'test relation' + not: true, + relation: 'test relation' }] }] } - var jsonOutput = jq.checkPri(rawJson) - var referenceJsonOutput + const jsonOutput = jq.checkPri(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if it doesnt have rel_op --> returns undefined otherwise', function () { - var rawJson = { - 'logical_term_list': [ + const rawJson = { + logical_term_list: [ { - 'logical_factor_list': [ + logical_factor_list: [ { - 'not': false, - 'relation': { - 'arithmetic_expression1': 'test arithmetic_expression1', - 'rel_op': 'test rel_op', - 'arithmetic_expression2': 'test arithmetic_expression2' + not: false, + relation: { + arithmetic_expression1: 'test arithmetic_expression1', + rel_op: 'test rel_op', + arithmetic_expression2: 'test arithmetic_expression2' } }] }] } - var jsonOutput = jq.checkPri(rawJson) - var referenceJsonOutput + const jsonOutput = jq.checkPri(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if has only 1 arithmetic term --> returns undefined otherwise', function () { - var rawJson = { - 'logical_term_list': [ + const rawJson = { + logical_term_list: [ { - 'logical_factor_list': [ + logical_factor_list: [ { - 'not': false, - 'relation': { - 'arithmetic_expression1': { - 'arithmetic_term_list': ['test arithmetic_term1', 'test arithmetic_term2'] + not: false, + relation: { + arithmetic_expression1: { + arithmetic_term_list: ['test arithmetic_term1', 'test arithmetic_term2'] }, - 'arithmetic_expression2': 'test "arithmetic_expression2' + arithmetic_expression2: 'test "arithmetic_expression2' } }] }] } - var jsonOutput = jq.checkPri(rawJson) - var referenceJsonOutput + const jsonOutput = jq.checkPri(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if does not have plus op --> returns undefined otherwise', function () { - var rawJson = { - 'logical_term_list': [ + const rawJson = { + logical_term_list: [ { - 'logical_factor_list': [ + logical_factor_list: [ { - 'not': false, - 'relation': { - 'arithmetic_expression1': { - 'arithmetic_term_list': [ + not: false, + relation: { + arithmetic_expression1: { + arithmetic_term_list: [ { - 'add_op': 'test add_op', - 'term': 'test term' + add_op: 'test add_op', + term: 'test term' } ] }, - 'arithmetic_expression2': 'test "arithmetic_expression2' + arithmetic_expression2: 'test "arithmetic_expression2' } }] }] } - var jsonOutput = jq.checkPri(rawJson) - var referenceJsonOutput + const jsonOutput = jq.checkPri(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if does not have * op --> returns undefined otherwise', function () { - var rawJson = { - 'logical_term_list': [ + const rawJson = { + logical_term_list: [ { - 'logical_factor_list': [ + logical_factor_list: [ { - 'not': false, - 'relation': { - 'arithmetic_expression1': { - 'arithmetic_term_list': [ + not: false, + relation: { + arithmetic_expression1: { + arithmetic_term_list: [ { - 'mul_ops': 'test mul_ops', - 'term': 'test term' + mul_ops: 'test mul_ops', + term: 'test term' } ] }, - 'arithmetic_expression2': 'test "arithmetic_expression2' + arithmetic_expression2: 'test "arithmetic_expression2' } }] }] } - var jsonOutput = jq.checkPri(rawJson) - var referenceJsonOutput + const jsonOutput = jq.checkPri(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if has 1 factor --> returns undefined otherwise', function () { - var rawJson = { - 'logical_term_list': [ + const rawJson = { + logical_term_list: [ { - 'logical_factor_list': [ + logical_factor_list: [ { - 'not': false, - 'relation': { - 'arithmetic_expression1': { - 'arithmetic_term_list': [ + not: false, + relation: { + arithmetic_expression1: { + arithmetic_term_list: [ { - 'term': { - 'factors': ['test factor1', 'test factor2'] + term: { + factors: ['test factor1', 'test factor2'] } } ] }, - 'arithmetic_expression2': 'test "arithmetic_expression2' + arithmetic_expression2: 'test "arithmetic_expression2' } }] }] } - var jsonOutput = jq.checkPri(rawJson) - var referenceJsonOutput + const jsonOutput = jq.checkPri(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if has no factor op --> returns undefined otherwise', function () { - var rawJson = { - 'logical_term_list': [ + const rawJson = { + logical_term_list: [ { - 'logical_factor_list': [ + logical_factor_list: [ { - 'relation': { - 'arithmetic_expression1': { - 'arithmetic_term_list': [ + relation: { + arithmetic_expression1: { + arithmetic_term_list: [ { - 'term': { - 'factors': [ + term: { + factors: [ { - 'primary1': 'test primary1', - 'op': 'test op' + primary1: 'test primary1', + op: 'test op' }] } } ] }, - 'arithmetic_expression2': 'test "arithmetic_expression2' + arithmetic_expression2: 'test "arithmetic_expression2' } }] }] } - var jsonOutput = jq.checkPri(rawJson) - var referenceJsonOutput + const jsonOutput = jq.checkPri(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing to return primary1', function () { - var rawJson = { - 'logical_term_list': [ + const rawJson = { + logical_term_list: [ { - 'logical_factor_list': [ + logical_factor_list: [ { - 'relation': { - 'arithmetic_expression1': { - 'arithmetic_term_list': [ + relation: { + arithmetic_expression1: { + arithmetic_term_list: [ { - 'term': { - 'factors': [ + term: { + factors: [ { - 'primary1': 'test primary1' + primary1: 'test primary1' }] } } ] }, - 'arithmetic_expression2': 'test "arithmetic_expression2' + arithmetic_expression2: 'test "arithmetic_expression2' } }] }] } - var jsonOutput = jq.checkPri(rawJson) - var referenceJsonOutput = 'test primary1' + const jsonOutput = jq.checkPri(rawJson) + const referenceJsonOutput = 'test primary1' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing function_call_obj', function () { mo.it('testing if not applicable for output function call object --> returns undefined', function () { - var rawJson = { - 'unsigned_number': 1.0, - 'primary_string': 'test primary_string', - 'is_false': true, - 'is_true': true, - 'component_reference': 'test component_reference', - 'output_expression_list': 'test output_expression_list', - 'expression_lists': [], - 'function_arguments': 'test function_arguments', - 'end': true + const rawJson = { + unsigned_number: 1.0, + primary_string: 'test primary_string', + is_false: true, + is_true: true, + component_reference: 'test component_reference', + output_expression_list: 'test output_expression_list', + expression_lists: [], + function_arguments: 'test function_arguments', + end: true } - var jsonOutput = jq.functionCallObj(rawJson) - var referenceJsonOutput + const jsonOutput = jq.functionCallObj(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if function call primary with der/initial/no name --> returns undefined', function () { - var rawJson = { - 'function_call_primary': { - 'function_name': 'test name', - 'der': true, - 'initial': true, - 'function_call_args': 'test function_call_args' + const rawJson = { + function_call_primary: { + function_name: 'test name', + der: true, + initial: true, + function_call_args: 'test function_call_args' } } - var jsonOutput = jq.functionCallObj(rawJson) - var referenceJsonOutput + const jsonOutput = jq.functionCallObj(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if function call primary with no function_call_args', function () { sinon.stub(jq, 'nameString').returns('mocked name_string') - var rawJson = { - 'function_call_primary': { - 'function_name': 'test name', - 'der': false, - 'initial': false + const rawJson = { + function_call_primary: { + function_name: 'test name', + der: false, + initial: false } } - var jsonOutput = jq.functionCallObj(rawJson) - var referenceJsonOutput = { - 'name': 'mocked name_string', - 'arguments': undefined + const jsonOutput = jq.functionCallObj(rawJson) + const referenceJsonOutput = { + name: 'mocked name_string', + arguments: undefined } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if function call primary with function_call_args', function () { sinon.stub(jq, 'nameString').returns('mocked name_string') sinon.stub(jq, 'funCalArgObj').returns('mocked fun_cal_arg_obj') - var rawJson = { - 'function_call_primary': { - 'function_name': 'test name', - 'der': false, - 'initial': false, - 'function_call_args': 'test function_call_args' + const rawJson = { + function_call_primary: { + function_name: 'test name', + der: false, + initial: false, + function_call_args: 'test function_call_args' } } - var jsonOutput = jq.functionCallObj(rawJson) - var referenceJsonOutput = { - 'name': 'mocked name_string', - 'arguments': 'mocked fun_cal_arg_obj' + const jsonOutput = jq.functionCallObj(rawJson) + const referenceJsonOutput = { + name: 'mocked name_string', + arguments: 'mocked fun_cal_arg_obj' } as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) @@ -2392,34 +2398,34 @@ mo.describe('jsonquery.js', function () { mo.describe('testing fun_cal_arg_obj', function () { mo.it('testing empty object', function () { sinon.stub(jq, 'funArgsObj').returns('mocked fun_args_obj') - var rawJson = {} - var jsonOutput = jq.funCalArgObj(rawJson) - var referenceJsonOutput + const rawJson = {} + const jsonOutput = jq.funCalArgObj(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing structure', function () { sinon.stub(jq, 'funArgsObj').returns('mocked fun_args_obj') - var rawJson = { - 'function_arguments': 'test function_arguments' + const rawJson = { + function_arguments: 'test function_arguments' } - var jsonOutput = jq.funCalArgObj(rawJson) - var referenceJsonOutput = 'mocked fun_args_obj' + const jsonOutput = jq.funCalArgObj(rawJson) + const referenceJsonOutput = 'mocked fun_args_obj' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing fun_args_obj', function () { mo.it('testing if named_arguments', function () { sinon.stub(jq, 'namedArgsString').returns('mocked named_args_string') - var rawJson = { - 'named_arguments': 'test named_arguments', - 'function_argument': 'test function_argument', - 'for_indices': 'test for_indices', - 'function_arguments': 'test function_arguments' - } - var jsonOutput = jq.funArgsObj(rawJson) - var referenceJsonOutput = [ + const rawJson = { + named_arguments: 'test named_arguments', + function_argument: 'test function_argument', + for_indices: 'test for_indices', + function_arguments: 'test function_arguments' + } + const jsonOutput = jq.funArgsObj(rawJson) + const referenceJsonOutput = [ { - 'name': 'mocked named_args_string' + name: 'mocked named_args_string' } ] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) @@ -2427,45 +2433,45 @@ mo.describe('jsonquery.js', function () { mo.it('testing function_argument', function () { sinon.stub(jq, 'funArgString').returns('mocked fun_arg_string') sinon.stub(jq, 'funArgsString').returns('mocked fun_args_string') - var rawJson = { - 'function_argument': 'test function_argument', - 'for_indices': 'test for_indices', - 'function_arguments': 'test function_arguments' + const rawJson = { + function_argument: 'test function_argument', + for_indices: 'test for_indices', + function_arguments: 'test function_arguments' } - var jsonOutput = jq.funArgsObj(rawJson) - var referenceJsonOutput = [ + const jsonOutput = jq.funArgsObj(rawJson) + const referenceJsonOutput = [ { - 'name': 'mocked fun_arg_string' + name: 'mocked fun_arg_string' }, { - 'name': 'mocked fun_args_string' + name: 'mocked fun_args_string' } ] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if for_indices', function () { sinon.stub(jq, 'funArgObj').returns('mocked fun_arg_obj') - sinon.stub(jq, 'forIndObj').returns({'for_indices': 'mocked for_ind_obj'}) - var rawJson = { - 'for_indices': 'test for_indices' + sinon.stub(jq, 'forIndObj').returns({ for_indices: 'mocked for_ind_obj' }) + const rawJson = { + for_indices: 'test for_indices' } - var jsonOutput = jq.funArgsObj(rawJson) - var referenceJsonOutput = [ + const jsonOutput = jq.funArgsObj(rawJson) + const referenceJsonOutput = [ { - 'expression': 'mocked fun_arg_obj', - 'for_indices': 'mocked for_ind_obj' + expression: 'mocked fun_arg_obj', + for_indices: 'mocked for_ind_obj' } ] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if function_arguments', function () { sinon.stub(jq, 'funArgString').returns('mocked fun_arg_string') - var rawJson = { - 'function_argument': 'test function_arguments' + const rawJson = { + function_argument: 'test function_arguments' } - var jsonOutput = jq.funArgsObj(rawJson) - var referenceJsonOutput = [ + const jsonOutput = jq.funArgsObj(rawJson) + const referenceJsonOutput = [ { - 'name': 'mocked fun_arg_string' + name: 'mocked fun_arg_string' } ] as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) @@ -2474,27 +2480,27 @@ mo.describe('jsonquery.js', function () { mo.describe('testing for_ind_obj', function () { mo.it('testing structure', function () { sinon.stub(jq, 'expressionString').withArgs().returns('mocked expression_string') - var rawJson = { - 'indices': + const rawJson = { + indices: [ { - 'identifier': 'test str1', - 'expression': 'test expression1' + identifier: 'test str1', + expression: 'test expression1' }, { - 'identifier': 'test str2' + identifier: 'test str2' } ] } - var jsonOutput = jq.forIndObj(rawJson) - var referenceJsonOutput = { - 'for_loop': + const jsonOutput = jq.forIndObj(rawJson) + const referenceJsonOutput = { + for_loop: [ { - 'name': 'test str1', - 'range': 'mocked expression_string' + name: 'test str1', + range: 'mocked expression_string' }, { - 'name': 'test str2', - 'range': undefined + name: 'test str2', + range: undefined } ] } @@ -2504,299 +2510,299 @@ mo.describe('jsonquery.js', function () { mo.describe('testing fun_arg_obj', function () { mo.it('testing with expression', function () { sinon.stub(jq, 'expression').returns('mocked expression') - var rawJson = { - 'function_name': 'test name', - 'named_arguments': 'test named_arguments', - 'expression': 'test expression' + const rawJson = { + function_name: 'test name', + named_arguments: 'test named_arguments', + expression: 'test expression' } - var jsonOutput = jq.funArgObj(rawJson) - var referenceJsonOutput = 'mocked expression' + const jsonOutput = jq.funArgObj(rawJson) + const referenceJsonOutput = 'mocked expression' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing without expression', function () { sinon.stub(jq, 'expression').returns('mocked expression') - var rawJson = { - 'function_name': 'test name', - 'named_arguments': 'test named_arguments' + const rawJson = { + function_name: 'test name', + named_arguments: 'test named_arguments' } - var jsonOutput = jq.funArgObj(rawJson) - var referenceJsonOutput + const jsonOutput = jq.funArgObj(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing logical_expression', function () { mo.it('testing empty list', function () { - var rawJson = { - 'logical_term_list': [] + const rawJson = { + logical_term_list: [] } - var jsonOutput = jq.logicalExpression(rawJson) - var referenceJsonOutput = '' + const jsonOutput = jq.logicalExpression(rawJson) + const referenceJsonOutput = '' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing structure with length 2', function () { sinon.stub(jq, 'logicalFactor').withArgs('test logical_term1').returns('mocked logical_term1') - .withArgs('test logical_term2').returns('mocked logical_term2') - .withArgs('test logical_term3').returns('mocked logical_term3') - .withArgs('test logical_term4').returns('mocked logical_term4') - var rawJson = { - 'logical_term_list': + .withArgs('test logical_term2').returns('mocked logical_term2') + .withArgs('test logical_term3').returns('mocked logical_term3') + .withArgs('test logical_term4').returns('mocked logical_term4') + const rawJson = { + logical_term_list: [ { - 'logical_factor_list': [ + logical_factor_list: [ 'test logical_term1', 'test logical_term2' ] }, { - 'logical_factor_list': [ + logical_factor_list: [ 'test logical_term3', 'test logical_term4' ] } ] } - var jsonOutput = jq.logicalExpression(rawJson) - var referenceJsonOutput = 'mocked logical_term1 and mocked logical_term2 or mocked logical_term3 and mocked logical_term4' + const jsonOutput = jq.logicalExpression(rawJson) + const referenceJsonOutput = 'mocked logical_term1 and mocked logical_term2 or mocked logical_term3 and mocked logical_term4' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing logical_factor', function () { mo.it('testing if not true', function () { sinon.stub(jq, 'relation').returns('mocked relation') - var rawJson = { - 'not': true, - 'relation': 'test relation' + const rawJson = { + not: true, + relation: 'test relation' } - var jsonOutput = jq.logicalFactor(rawJson) - var referenceJsonOutput = 'not mocked relation' + const jsonOutput = jq.logicalFactor(rawJson) + const referenceJsonOutput = 'not mocked relation' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if not false', function () { sinon.stub(jq, 'relation').returns('mocked relation') - var rawJson = { - 'not': false, - 'relation': 'test relation' + const rawJson = { + not: false, + relation: 'test relation' } - var jsonOutput = jq.logicalFactor(rawJson) - var referenceJsonOutput = 'mocked relation' + const jsonOutput = jq.logicalFactor(rawJson) + const referenceJsonOutput = 'mocked relation' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing relation', function () { mo.it('testing with no rel_op', function () { sinon.stub(jq, 'arithmeticExpression').withArgs('test arithmetic_expression1').returns('mocked arithmetic_expression1') - var rawJson = { - 'arithmetic_expression1': 'test arithmetic_expression1', - 'arithmetic_expression2': 'test arithmetic_expression2' + const rawJson = { + arithmetic_expression1: 'test arithmetic_expression1', + arithmetic_expression2: 'test arithmetic_expression2' } - var jsonOutput = jq.relation(rawJson) - var referenceJsonOutput = 'mocked arithmetic_expression1' + const jsonOutput = jq.relation(rawJson) + const referenceJsonOutput = 'mocked arithmetic_expression1' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing with rel_op', function () { sinon.stub(jq, 'arithmeticExpression').withArgs('test arithmetic_expression1').returns('mocked arithmetic_expression1') - .withArgs('test arithmetic_expression2').returns('mocked arithmetic_expression2') - var rawJson = { - 'arithmetic_expression1': 'test arithmetic_expression1', - 'rel_op': 'test rel_op', - 'arithmetic_expression2': 'test arithmetic_expression2' + .withArgs('test arithmetic_expression2').returns('mocked arithmetic_expression2') + const rawJson = { + arithmetic_expression1: 'test arithmetic_expression1', + rel_op: 'test rel_op', + arithmetic_expression2: 'test arithmetic_expression2' } - var jsonOutput = jq.relation(rawJson) - var referenceJsonOutput = 'mocked arithmetic_expression1 test rel_op mocked arithmetic_expression2' + const jsonOutput = jq.relation(rawJson) + const referenceJsonOutput = 'mocked arithmetic_expression1 test rel_op mocked arithmetic_expression2' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing arithmetic_expression', function () { mo.it('testing empty list --> empty string', function () { - var rawJson = { - 'arithmetic_term_list': [] + const rawJson = { + arithmetic_term_list: [] } - var jsonOutput = jq.arithmeticExpression(rawJson) - var referenceJsonOutput = '' + const jsonOutput = jq.arithmeticExpression(rawJson) + const referenceJsonOutput = '' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing structure with list length 3', function () { sinon.stub(jq, 'termString').withArgs('test term1').returns('mocked term1') - .withArgs('test term2').returns('mocked term2') - .withArgs('test term3').returns('mocked term3') - var rawJson = { - 'arithmetic_term_list': [ + .withArgs('test term2').returns('mocked term2') + .withArgs('test term3').returns('mocked term3') + const rawJson = { + arithmetic_term_list: [ { - 'add_op': 'test add_op1', - 'term': 'test term1' + add_op: 'test add_op1', + term: 'test term1' }, { - 'add_op': 'test add_op2', - 'term': 'test term2' + add_op: 'test add_op2', + term: 'test term2' }, { - 'term': 'test term3' + term: 'test term3' } ] } - var jsonOutput = jq.arithmeticExpression(rawJson) - var referenceJsonOutput = 'test add_op1mocked term1 test add_op2mocked term2 mocked term3' + const jsonOutput = jq.arithmeticExpression(rawJson) + const referenceJsonOutput = 'test add_op1mocked term1 test add_op2mocked term2 mocked term3' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing term_string', function () { mo.it('testing with no mul_ops', function () { - var rawJson = { - 'factors': 'test factors' + const rawJson = { + factors: 'test factors' } - var jsonOutput = jq.termString(rawJson) - var referenceJsonOutput + const jsonOutput = jq.termString(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing with mul_ops', function () { sinon.stub(jq, 'factorString').withArgs('test factor1').returns('mocked factor1') - .withArgs('test factor2').returns('mocked factor2') - .withArgs('test factor3').returns('mocked factor3') - .withArgs('test factor4').returns('mocked factor4') - var rawJson = { - 'factors': [ + .withArgs('test factor2').returns('mocked factor2') + .withArgs('test factor3').returns('mocked factor3') + .withArgs('test factor4').returns('mocked factor4') + const rawJson = { + factors: [ 'test factor1', 'test factor2', 'test factor3', 'test factor4' ], - 'mul_ops': [ + mul_ops: [ '*', '/', '*' ] } - var jsonOutput = jq.termString(rawJson) - var referenceJsonOutput = 'mocked factor1*mocked factor2/mocked factor3*mocked factor4' + const jsonOutput = jq.termString(rawJson) + const referenceJsonOutput = 'mocked factor1*mocked factor2/mocked factor3*mocked factor4' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing factor_string', function () { mo.it('testing with op', function () { sinon.stub(jq, 'primary').withArgs('test primary1').returns('mocked primary1') - .withArgs('test primary2').returns('mocked primary2') - var rawJson = { - 'primary1': 'test primary1', - 'op': 'test op', - 'primary2': 'test primary2' + .withArgs('test primary2').returns('mocked primary2') + const rawJson = { + primary1: 'test primary1', + op: 'test op', + primary2: 'test primary2' } - var jsonOutput = jq.factorString(rawJson) - var referenceJsonOutput = 'mocked primary1test opmocked primary2' + const jsonOutput = jq.factorString(rawJson) + const referenceJsonOutput = 'mocked primary1test opmocked primary2' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing with empty op string', function () { sinon.stub(jq, 'primary').withArgs('test primary1').returns('mocked primary1') - var rawJson = { - 'primary1': 'test primary1', - 'op': '' + const rawJson = { + primary1: 'test primary1', + op: '' } - var jsonOutput = jq.factorString(rawJson) - var referenceJsonOutput = 'mocked primary1' + const jsonOutput = jq.factorString(rawJson) + const referenceJsonOutput = 'mocked primary1' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing primary', function () { mo.it('testing with unsigned_number 0', function () { - var rawJson = { - 'unsigned_number': 0 + const rawJson = { + unsigned_number: 0 } - var jsonOutput = jq.primary(rawJson) - var referenceJsonOutput = '0' + const jsonOutput = jq.primary(rawJson) + const referenceJsonOutput = '0' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing with unsigned_number != 0, integer', function () { - var rawJson = { - 'unsigned_number': 2.0 + const rawJson = { + unsigned_number: 2.0 } - var jsonOutput = jq.primary(rawJson) - var referenceJsonOutput = '2' + const jsonOutput = jq.primary(rawJson) + const referenceJsonOutput = '2' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing with unsigned_number != 0, float', function () { - var rawJson = { - 'unsigned_number': 2.1 + const rawJson = { + unsigned_number: 2.1 } - var jsonOutput = jq.primary(rawJson) - var referenceJsonOutput = '2.1' + const jsonOutput = jq.primary(rawJson) + const referenceJsonOutput = '2.1' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if primary_string', function () { - var rawJson = { - 'primary_string': 'test primary_string' + const rawJson = { + primary_string: 'test primary_string' } - var jsonOutput = jq.primary(rawJson) - var referenceJsonOutput = 'test primary_string' + const jsonOutput = jq.primary(rawJson) + const referenceJsonOutput = 'test primary_string' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing structure if false', function () { - var rawJson = { - 'is_false': true + const rawJson = { + is_false: true } - var jsonOutput = jq.primary(rawJson) - var referenceJsonOutput = 'false' + const jsonOutput = jq.primary(rawJson) + const referenceJsonOutput = 'false' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if function_call_primary & function_call_args', function () { sinon.stub(jq, 'funCalPriString').returns('mocked fun_cal_pri_string') - var rawJson = { - 'is_false': false, - 'is_true': false, - 'function_call_primary': { - 'function_call_args': 'test function_call_args' + const rawJson = { + is_false: false, + is_true: false, + function_call_primary: { + function_call_args: 'test function_call_args' } } - var jsonOutput = jq.primary(rawJson) - var referenceJsonOutput = 'mocked fun_cal_pri_string' + const jsonOutput = jq.primary(rawJson) + const referenceJsonOutput = 'mocked fun_cal_pri_string' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if component_reference', function () { sinon.stub(jq, 'comRefString').returns('mocked com_ref_string') - var rawJson = { - 'is_false': false, - 'is_true': false, - 'component_reference': 'test component_reference' + const rawJson = { + is_false: false, + is_true: false, + component_reference: 'test component_reference' } - var jsonOutput = jq.primary(rawJson) - var referenceJsonOutput = 'mocked com_ref_string' + const jsonOutput = jq.primary(rawJson) + const referenceJsonOutput = 'mocked com_ref_string' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing output_expression_list', function () { sinon.stub(jq, 'outExpLisString').returns('mocked out_exp_lis_string') - var rawJson = { - 'is_false': false, - 'is_true': false, - 'output_expression_list': 'test output_expression_list' + const rawJson = { + is_false: false, + is_true: false, + output_expression_list: 'test output_expression_list' } - var jsonOutput = jq.primary(rawJson) - var referenceJsonOutput = '(mocked out_exp_lis_string)' + const jsonOutput = jq.primary(rawJson) + const referenceJsonOutput = '(mocked out_exp_lis_string)' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing output_expression_list', function () { sinon.stub(jq, 'expLisString').returns('mocked exp_lis_string') - var rawJson = { - 'is_false': false, - 'is_true': false, - 'expression_lists': [ + const rawJson = { + is_false: false, + is_true: false, + expression_lists: [ { - 'expressions': 'test expressions' + expressions: 'test expressions' } ] } - var jsonOutput = jq.primary(rawJson) - var referenceJsonOutput = '[mocked exp_lis_string]' + const jsonOutput = jq.primary(rawJson) + const referenceJsonOutput = '[mocked exp_lis_string]' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if function_arguments', function () { sinon.stub(jq, 'funArgsString').returns('mocked fun_args_string') - var rawJson = { - 'is_false': false, - 'is_true': false, - 'function_arguments': 'test function_arguments' + const rawJson = { + is_false: false, + is_true: false, + function_arguments: 'test function_arguments' } - var jsonOutput = jq.primary(rawJson) - var referenceJsonOutput = '{mocked fun_args_string}' + const jsonOutput = jq.primary(rawJson) + const referenceJsonOutput = '{mocked fun_args_string}' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing function_arguments', function () { - var rawJson = { - 'is_false': false, - 'is_true': false, - 'end': true + const rawJson = { + is_false: false, + is_true: false, + end: true } - var jsonOutput = jq.primary(rawJson) - var referenceJsonOutput = 'end' + const jsonOutput = jq.primary(rawJson) + const referenceJsonOutput = 'end' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) @@ -2804,139 +2810,139 @@ mo.describe('jsonquery.js', function () { mo.it('testing function_name', function () { sinon.stub(jq, 'nameString').returns('mocked name_string') sinon.stub(jq, 'funCalArgString').returns('mocked fun_cal_arg_string') - var rawJson = { - 'function_name': 'test name', - 'der': true, - 'initial': true, - 'function_call_args': 'test function_call_args' + const rawJson = { + function_name: 'test name', + der: true, + initial: true, + function_call_args: 'test function_call_args' } - var jsonOutput = jq.funCalPriString(rawJson) - var referenceJsonOutput = 'mocked name_stringmocked fun_cal_arg_string' + const jsonOutput = jq.funCalPriString(rawJson) + const referenceJsonOutput = 'mocked name_stringmocked fun_cal_arg_string' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing with der true', function () { sinon.stub(jq, 'funCalArgString').returns('mocked fun_cal_arg_string') - var rawJson = { - 'der': true, - 'initial': true, - 'function_call_args': 'test function_call_args' + const rawJson = { + der: true, + initial: true, + function_call_args: 'test function_call_args' } - var jsonOutput = jq.funCalPriString(rawJson) - var referenceJsonOutput = 'dermocked fun_cal_arg_string' + const jsonOutput = jq.funCalPriString(rawJson) + const referenceJsonOutput = 'dermocked fun_cal_arg_string' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing with initial true', function () { sinon.stub(jq, 'funCalArgString').returns('mocked fun_cal_arg_string') - var rawJson = { - 'der': false, - 'initial': true, - 'function_call_args': 'test function_call_args' + const rawJson = { + der: false, + initial: true, + function_call_args: 'test function_call_args' } - var jsonOutput = jq.funCalPriString(rawJson) - var referenceJsonOutput = 'initialmocked fun_cal_arg_string' + const jsonOutput = jq.funCalPriString(rawJson) + const referenceJsonOutput = 'initialmocked fun_cal_arg_string' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing name_string', function () { mo.it('testing structure', function () { - var rawJson = { - 'name_parts': [ + const rawJson = { + name_parts: [ { - 'dot_op': true, - 'identifier': 'test identifier1' + dot_op: true, + identifier: 'test identifier1' }, { - 'dot_op': false, - 'identifier': 'test identifier2' + dot_op: false, + identifier: 'test identifier2' }, { - 'dot_op': true + dot_op: true }, { - 'dot_op': false + dot_op: false } ] } - var jsonOutput = jq.nameString(rawJson) - var referenceJsonOutput = '.test identifier1test identifier2' + const jsonOutput = jq.nameString(rawJson) + const referenceJsonOutput = '.test identifier1test identifier2' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing fun_cal_arg_string', function () { mo.it('testing function_arguments', function () { sinon.stub(jq, 'funArgsString').withArgs('test function_arguments').returns('mocked function_arguments') - var rawJson = { - 'function_arguments': 'test function_arguments' + const rawJson = { + function_arguments: 'test function_arguments' } - var jsonOutput = jq.funCalArgString(rawJson) - var referenceJsonOutput = '(mocked function_arguments)' + const jsonOutput = jq.funCalArgString(rawJson) + const referenceJsonOutput = '(mocked function_arguments)' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing empty object', function () { - var rawJson = {} - var jsonOutput = jq.funCalArgString(rawJson) - var referenceJsonOutput = '()' + const rawJson = {} + const jsonOutput = jq.funCalArgString(rawJson) + const referenceJsonOutput = '()' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing com_ref_string', function () { mo.it('testing structure', function () { sinon.stub(jq, 'arrSubString').withArgs('test array_subscripts1').returns('mocked array_subscripts1') - var rawJson = { - 'component_reference_parts': [ + const rawJson = { + component_reference_parts: [ { - 'dot_op': true, - 'identifier': 'test identifier1', - 'array_subscripts': 'test array_subscripts1' + dot_op: true, + identifier: 'test identifier1', + array_subscripts: 'test array_subscripts1' }, { - 'dot_op': false + dot_op: false } ] } - var jsonOutput = jq.comRefString(rawJson) - var referenceJsonOutput = '.test identifier1mocked array_subscripts1' + const jsonOutput = jq.comRefString(rawJson) + const referenceJsonOutput = '.test identifier1mocked array_subscripts1' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing arr_sub_string', function () { mo.it('testing structure', function () { sinon.stub(jq, 'expressionString').withArgs('test expression1').returns('mocked expression1') - .withArgs('test expression2').returns('mocked expression2') - var rawJson = { - 'subscripts': [ + .withArgs('test expression2').returns('mocked expression2') + const rawJson = { + subscripts: [ { - 'expression': 'test expression1', - 'colon_op': true + expression: 'test expression1', + colon_op: true }, { - 'expression': 'test expression2', - 'colon_op': false + expression: 'test expression2', + colon_op: false } ] } - var jsonOutput = jq.arrSubString(rawJson) - var referenceJsonOutput = '[:,mocked expression2]' + const jsonOutput = jq.arrSubString(rawJson) + const referenceJsonOutput = '[:,mocked expression2]' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing fun_args_string', function () { mo.it('testing if named_arguments true', function () { sinon.stub(jq, 'namedArgsString').returns('mocked named_arguments') - var rawJson = { - 'named_arguments': 'test named_arguments', - 'function_argument': 'test function_argument', - 'for_indices': 'test for_indices', - 'function_arguments': 'test function_arguments' + const rawJson = { + named_arguments: 'test named_arguments', + function_argument: 'test function_argument', + for_indices: 'test for_indices', + function_arguments: 'test function_arguments' } - var jsonOutput = jq.funArgsString(rawJson) - var referenceJsonOutput = 'mocked named_arguments' + const jsonOutput = jq.funArgsString(rawJson) + const referenceJsonOutput = 'mocked named_arguments' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if for_indices true', function () { sinon.stub(jq, 'funArgString').returns('mocked function_argument') sinon.stub(jq, 'forIndString').returns('mocked for_indices') - var rawJson = { - 'function_argument': 'test function_argument', - 'for_indices': 'test for_indices' + const rawJson = { + function_argument: 'test function_argument', + for_indices: 'test for_indices' } - var jsonOutput = jq.funArgsString(rawJson) - var referenceJsonOutput = 'mocked function_argument for mocked for_indices' + const jsonOutput = jq.funArgsString(rawJson) + const referenceJsonOutput = 'mocked function_argument for mocked for_indices' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) @@ -2944,33 +2950,33 @@ mo.describe('jsonquery.js', function () { mo.it('testing if has function_name and named_arguments', function () { sinon.stub(jq, 'namedArgsString').returns('mocked named_arguments') sinon.stub(jq, 'nameString').returns('mocked function_name') - var rawJson = { - 'function_name': 'test function_name', - 'named_arguments': 'test named_arguments', - 'expression': 'test expression' + const rawJson = { + function_name: 'test function_name', + named_arguments: 'test named_arguments', + expression: 'test expression' } - var jsonOutput = jq.funArgString(rawJson) - var referenceJsonOutput = 'function mocked function_name(mocked named_arguments)' + const jsonOutput = jq.funArgString(rawJson) + const referenceJsonOutput = 'function mocked function_name(mocked named_arguments)' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if has function_name and no named_arguments', function () { sinon.stub(jq, 'namedArgsString').returns('mocked named_arguments') sinon.stub(jq, 'nameString').returns('mocked function_name') - var rawJson = { - 'function_name': 'test function_name', - 'expression': 'test expression' + const rawJson = { + function_name: 'test function_name', + expression: 'test expression' } - var jsonOutput = jq.funArgString(rawJson) - var referenceJsonOutput = 'function mocked function_name()' + const jsonOutput = jq.funArgString(rawJson) + const referenceJsonOutput = 'function mocked function_name()' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if no function_name', function () { sinon.stub(jq, 'expressionString').returns('mocked expression') - var rawJson = { - 'expression': 'test expression' + const rawJson = { + expression: 'test expression' } - var jsonOutput = jq.funArgString(rawJson) - var referenceJsonOutput = 'mocked expression' + const jsonOutput = jq.funArgString(rawJson) + const referenceJsonOutput = 'mocked expression' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) @@ -2978,51 +2984,51 @@ mo.describe('jsonquery.js', function () { mo.it('testing with array length 1', function () { sinon.stub(jq, 'namedArgsArray').returns([ { - 'identifier': 'mocked identifier1', - 'value': 'mocked value1' + identifier: 'mocked identifier1', + value: 'mocked value1' } ]) sinon.stub(jq, 'funArgString').withArgs('mocked value1').returns('mocked expression1') - var rawJson = { + const rawJson = { 'test named_argument1': { - 'identifier': 'test identifier1', - 'value': 'test value1' + identifier: 'test identifier1', + value: 'test value1' } } - var jsonOutput = jq.namedArgsString(rawJson) - var referenceJsonOutput = 'mocked identifier1=mocked expression1' + const jsonOutput = jq.namedArgsString(rawJson) + const referenceJsonOutput = 'mocked identifier1=mocked expression1' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing with array length 2', function () { sinon.stub(jq, 'namedArgsArray').returns([ { - 'identifier': 'mocked identifier1', - 'value': 'mocked value1' + identifier: 'mocked identifier1', + value: 'mocked value1' }, { - 'identifier': 'mocked identifier2', - 'value': 'mocked value2' + identifier: 'mocked identifier2', + value: 'mocked value2' } ]) sinon.stub(jq, 'funArgString').withArgs('mocked value1').returns('mocked expression1') - .withArgs('mocked value2').returns('mocked expression2') - var rawJson = { + .withArgs('mocked value2').returns('mocked expression2') + const rawJson = { 'test named_argument1': { - 'identifier': 'test identifier1', - 'value': 'test value1' + identifier: 'test identifier1', + value: 'test value1' }, 'test named_arguments1': { - 'identifier': 'test identifier2', - 'value': 'test value2' + identifier: 'test identifier2', + value: 'test value2' } } - var jsonOutput = jq.namedArgsString(rawJson) - var referenceJsonOutput = 'mocked identifier1=mocked expression1,mocked identifier2=mocked expression2' + const jsonOutput = jq.namedArgsString(rawJson) + const referenceJsonOutput = 'mocked identifier1=mocked expression1,mocked identifier2=mocked expression2' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing out_exp_lis_string', function () { mo.it('testing empty object --> should return error', function () { - var rawJson = {} + const rawJson = {} try { jq.outExpLisString(rawJson) as.fail('no error raised for missing out_exp_lis') @@ -3032,146 +3038,146 @@ mo.describe('jsonquery.js', function () { }) mo.it('testing structure', function () { sinon.stub(jq, 'expressionString').withArgs('test expression_string1').returns('mocked expression_string1') - .withArgs('test expression_string2').returns('mocked expression_string2') - var rawJson = { - 'output_expressions': [ + .withArgs('test expression_string2').returns('mocked expression_string2') + const rawJson = { + output_expressions: [ 'test expression_string1', 'test expression_string2' ] } - var jsonOutput = jq.outExpLisString(rawJson) - var referenceJsonOutput = 'mocked expression_string1,mocked expression_string2' + const jsonOutput = jq.outExpLisString(rawJson) + const referenceJsonOutput = 'mocked expression_string1,mocked expression_string2' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing exp_lis_string', function () { mo.it('testing empty object --> should return empty string', function () { - var rawJson = [] - var jsonOutput = jq.expLisString(rawJson) - var referenceJsonOutput = '' + const rawJson = [] + const jsonOutput = jq.expLisString(rawJson) + const referenceJsonOutput = '' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing structure', function () { sinon.stub(jq, 'expressionListString').withArgs('test expression_list_string1').returns('mocked expression_list_string1') - .withArgs('test expression_list_string2').returns('mocked expression_list_string2') - var rawJson = [ + .withArgs('test expression_list_string2').returns('mocked expression_list_string2') + const rawJson = [ 'test expression_list_string1', 'test expression_list_string2' ] - var jsonOutput = jq.expLisString(rawJson) - var referenceJsonOutput = 'mocked expression_list_string1;mocked expression_list_string2' + const jsonOutput = jq.expLisString(rawJson) + const referenceJsonOutput = 'mocked expression_list_string1;mocked expression_list_string2' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing expression_list_string', function () { mo.it('testing empty object --> should return undefined', function () { - var rawJson = {} - var jsonOutput = jq.expressionListString(rawJson) - var referenceJsonOutput + const rawJson = {} + const jsonOutput = jq.expressionListString(rawJson) + let referenceJsonOutput as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing structure', function () { sinon.stub(jq, 'expressionString').withArgs('test expression_string1').returns('mocked expression_string1') - .withArgs('test expression_string2').returns('mocked expression_string2') - var rawJson = { - 'expressions': [ + .withArgs('test expression_string2').returns('mocked expression_string2') + const rawJson = { + expressions: [ 'test expression_string1', 'test expression_string2' ] } - var jsonOutput = jq.expressionListString(rawJson) - var referenceJsonOutput = 'mocked expression_string1,mocked expression_string2' + const jsonOutput = jq.expressionListString(rawJson) + const referenceJsonOutput = 'mocked expression_string1,mocked expression_string2' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing for_ind_string', function () { mo.it('testing if expression is true', function () { sinon.stub(jq, 'expressionString').withArgs('test expression_string1').returns('mocked expression_string1') - .withArgs('test expression_string2').returns('mocked expression_string2') - var rawJson = { - 'indices': [ + .withArgs('test expression_string2').returns('mocked expression_string2') + const rawJson = { + indices: [ { - 'identifier': 'test identifier1', - 'expression': 'test expression_string1' + identifier: 'test identifier1', + expression: 'test expression_string1' }, { - 'identifier': 'test identifier2', - 'expression': 'test expression_string2' + identifier: 'test identifier2', + expression: 'test expression_string2' }] } - var jsonOutput = jq.forIndString(rawJson) - var referenceJsonOutput = 'test identifier1 in mocked expression_string1,test identifier2 in mocked expression_string2' + const jsonOutput = jq.forIndString(rawJson) + const referenceJsonOutput = 'test identifier1 in mocked expression_string1,test identifier2 in mocked expression_string2' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('testing if expression is false', function () { sinon.stub(jq, 'expressionString').withArgs('test expression_string1').returns('mocked expression_string1') - .withArgs('test expression_string2').returns('mocked expression_string2') - var rawJson = { - 'indices': [ + .withArgs('test expression_string2').returns('mocked expression_string2') + const rawJson = { + indices: [ { - 'identifier': 'test identifier1', - 'expression': 'test expression_string1' + identifier: 'test identifier1', + expression: 'test expression_string1' }, { - 'identifier': 'test identifier2' + identifier: 'test identifier2' }] } - var jsonOutput = jq.forIndString(rawJson) - var referenceJsonOutput = 'test identifier1 in mocked expression_string1,test identifier2' + const jsonOutput = jq.forIndString(rawJson) + const referenceJsonOutput = 'test identifier1 in mocked expression_string1,test identifier2' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing if_expression_string', function () { mo.it('checking with simple_expression', function () { sinon.stub(jq, 'simpleExpression').returns('mocked simple_expression') - var rawJson = { - 'simple_expression': 'test simple_expression' + const rawJson = { + simple_expression: 'test simple_expression' } - var jsonOutput = jq.expressionString(rawJson) - var referenceJsonOutput = 'mocked simple_expression' + const jsonOutput = jq.expressionString(rawJson) + const referenceJsonOutput = 'mocked simple_expression' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('checking with if_expression', function () { sinon.stub(jq, 'ifExpString').returns('mocked if_expression') - var rawJson = { - 'if_expression': 'test if_expression' + const rawJson = { + if_expression: 'test if_expression' } - var jsonOutput = jq.expressionString(rawJson) - var referenceJsonOutput = 'mocked if_expression' + const jsonOutput = jq.expressionString(rawJson) + const referenceJsonOutput = 'mocked if_expression' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) }) mo.describe('testing if_exp_string', function () { mo.it('testing structure', function () { sinon.stub(jq, 'expressionString').withArgs('test if_condition1').returns('mocked if_condition1').withArgs('test then_expression1') - .returns('mocked then_expression1').withArgs('test if_condition_i').returns('mocked if_condition_i') - .withArgs('test then_expression_i').returns('mocked then_expression_i').withArgs('test else_expression').returns('mocked else_expression') - var rawJson = { - 'if_elseif': [ + .returns('mocked then_expression1').withArgs('test if_condition_i').returns('mocked if_condition_i') + .withArgs('test then_expression_i').returns('mocked then_expression_i').withArgs('test else_expression').returns('mocked else_expression') + const rawJson = { + if_elseif: [ { - 'condition': 'test if_condition1', - 'then': 'test then_expression1' + condition: 'test if_condition1', + then: 'test then_expression1' }, { - 'condition': 'test if_condition_i', - 'then': 'test then_expression_i' + condition: 'test if_condition_i', + then: 'test then_expression_i' }], - 'else_expression': 'test else_expression' + else_expression: 'test else_expression' } - var jsonOutput = jq.ifExpString(rawJson) - var referenceJsonOutput = 'if mocked if_condition1 then mocked then_expression1 elseif mocked if_condition_i then mocked then_expression_i else mocked else_expression' + const jsonOutput = jq.ifExpString(rawJson) + const referenceJsonOutput = 'if mocked if_condition1 then mocked then_expression1 elseif mocked if_condition_i then mocked then_expression_i else mocked else_expression' as.equal(equalObjects(jsonOutput, referenceJsonOutput), true, 'expected =' + JSON.stringify(referenceJsonOutput) + '; actual =' + JSON.stringify(jsonOutput)) }) mo.it('checking for empty expression -> should return an error', function () { - var rawJson = { - 'if_elseif': [ + const rawJson = { + if_elseif: [ { - 'condition': 'test if_condition1', - 'then': 'test then_expression1' + condition: 'test if_condition1', + then: 'test then_expression1' }, { - 'condition': 'test if_condition_i', - 'then': 'test then_expression_i' + condition: 'test if_condition_i', + then: 'test then_expression_i' }] } try { diff --git a/test/test_parser.js b/test/test_parser.js index 73351426..e56d4f79 100644 --- a/test/test_parser.js +++ b/test/test_parser.js @@ -7,7 +7,7 @@ const ut = require('../lib/util') const Promise = require('bluebird') const fs = Promise.promisifyAll(require('fs')) const glob = require('glob-promise') -var logger = require('winston') +const logger = require('winston') const se = require('../lib/semanticExtractor.js') // const cheerio = require('cheerio') @@ -25,8 +25,8 @@ logger.level = 'error' /** Function to get all the Modelica files to be tested */ -var getIntFiles = function (mode) { - var pattern +const getIntFiles = function (mode) { + let pattern if (mode === 'cdl') { pattern = path.join(__dirname, 'FromModelica', '*.mo') return glob.sync(pattern) @@ -37,8 +37,8 @@ var getIntFiles = function (mode) { /** Function that checks parsing from Modelica to JSON, in 'cdl' parsing mode */ -var checkCdlJSON = function (outFormat, extension, message) { - var mode = 'cdl' +const checkCdlJSON = function (outFormat, extension, message) { + const mode = 'cdl' // process.env.MODELICAPATH = __dirname mo.it(message, () => { // mo files array to be tested. @@ -47,17 +47,17 @@ var checkCdlJSON = function (outFormat, extension, message) { return !obj.includes('Extends') }) // Name of subpackage to store json output files - var subPackName = (outFormat === 'raw-json' ? 'raw-json' : 'json') + const subPackName = (outFormat === 'raw-json' ? 'raw-json' : 'json') // When parsing mode is 'cdl', the moFiles should feed into parser one-by-one - var expectedOutputPath = path.join(process.cwd(), 'test', 'reference') + const expectedOutputPath = path.join(process.cwd(), 'test', 'reference') - testMoFiles.map(fil => { + testMoFiles.forEach(fil => { // 'fil.split()' changes string 'fil' to be string array with single element // 'fil' is like '../test/FromModelica/***.mo' // const jsonNewCDL = pa.getJSON(fil.split(), mode, outFormat) pa.getJsons([fil], mode, outFormat, 'current', 'false') - var idx = fil.lastIndexOf(path.sep) + const idx = fil.lastIndexOf(path.sep) const jsonNewCDLFile = path.join(process.cwd(), subPackName, 'test', 'FromModelica', fil.slice(idx + 1, -3) + extension) // Read the stored json representation from disk @@ -75,10 +75,10 @@ var checkCdlJSON = function (outFormat, extension, message) { // Update the path to be relative to the project home. // This is needed for the regression tests to be portable. if (oldCDL.modelicaFile) { - oldCDL['fullMoFilePath'] = oldCDL['modelicaFile'].split('modelica-json/')[1] + oldCDL.fullMoFilePath = oldCDL.modelicaFile.split('modelica-json/')[1] } if (neCDL.modelicaFile) { - neCDL['fullMoFilePath'] = neCDL['modelicaFile'].split('modelica-json/')[1] + neCDL.fullMoFilePath = neCDL.modelicaFile.split('modelica-json/')[1] } const tempOld = JSON.stringify(oldCDL) const tempNew = JSON.stringify(neCDL) @@ -91,8 +91,8 @@ var checkCdlJSON = function (outFormat, extension, message) { /** Function that checks parsing from Modelica to JSON, in 'modelica' parsing mode */ -var checkModJSON = function (outFormat, extension, message) { - var mode = 'modelica' +const checkModJSON = function (outFormat, extension, message) { + const mode = 'modelica' // process.env.MODELICAPATH = __dirname mo.it(message, () => { // mo files package to be tested @@ -100,28 +100,28 @@ var checkModJSON = function (outFormat, extension, message) { const testMoFiles = ut.getMoFiles(testMoFilesTemp) // Name of subpackage to store json output files - var subPackName = (outFormat === 'raw-json' ? 'raw-json' : 'json') + const subPackName = (outFormat === 'raw-json' ? 'raw-json' : 'json') // When parsing mode is 'modelica', the moFiles should feed into parser in package // const jsonNewMOD = pa.getJSON(testMoFiles, mode, outFormat) pa.getJsons(testMoFiles, mode, outFormat, 'current', 'false') - var pattern = path.join('test', 'FromModelica', '*.mo') - var files = glob.sync(pattern) - var expectedOutputPath = path.join(process.cwd(), 'test', 'reference') + const pattern = path.join('test', 'FromModelica', '*.mo') + const files = glob.sync(pattern) + const expectedOutputPath = path.join(process.cwd(), 'test', 'reference') - for (var i = 0; i < files.length; i++) { - var idx2 = files[i].lastIndexOf(path.sep) + for (let i = 0; i < files.length; i++) { + const idx2 = files[i].lastIndexOf(path.sep) const fileNameMOD = files[i].slice(idx2 + 1, -3) + extension const oldFileMOD = path.join(expectedOutputPath, subPackName, 'test', 'FromModelica', fileNameMOD) // Read the old json const jsonOldMOD = JSON.parse(fs.readFileSync(oldFileMOD, 'utf8')) if (jsonOldMOD.modelicaFile) { - jsonOldMOD['fullMoFilePath'] = jsonOldMOD['modelicaFile'].split('modelica-json/')[1] + jsonOldMOD.fullMoFilePath = jsonOldMOD.modelicaFile.split('modelica-json/')[1] } const jsonNewMOD = path.join(process.cwd(), subPackName, 'test', 'FromModelica', fileNameMOD) - var neMOD = JSON.parse(fs.readFileSync(jsonNewMOD, 'utf8')) + const neMOD = JSON.parse(fs.readFileSync(jsonNewMOD, 'utf8')) if (neMOD.modelicaFile) { - neMOD['fullMoFilePath'] = neMOD['modelicaFile'].split('modelica-json/')[1] + neMOD.fullMoFilePath = neMOD.modelicaFile.split('modelica-json/')[1] } const tempOld = JSON.stringify(jsonOldMOD) @@ -134,8 +134,8 @@ var checkModJSON = function (outFormat, extension, message) { /** Function that checks parsing from Modelica to JSON, in 'modelica' parsing mode */ -var checkObjectsJSON = function (outFormat, extension, message) { - var mode = 'modelica' +const checkObjectsJSON = function (outFormat, extension, message) { + const mode = 'modelica' // process.env.MODELICAPATH = __dirname mo.it(message, () => { // mo files package to be tested @@ -143,42 +143,42 @@ var checkObjectsJSON = function (outFormat, extension, message) { const testMoFiles = ut.getMoFiles(testMoFilesTemp) // Name of subpackage to store json output files - var subPackName = 'objects' + const subPackName = 'objects' // When parsing mode is 'modelica', the moFiles should feed into parser in package // const jsonNewMOD = pa.getJSON(testMoFiles, mode, outFormat) pa.getJsons(testMoFiles, mode, outFormat, 'current', 'false') - var pattern = path.join('test', 'FromModelica', '*.mo') - var files = glob.sync(pattern) - var expectedOutputPath = path.join(process.cwd(), 'test', 'reference', subPackName, 'test', 'FromModelica') - var actualOutputPath = path.join(process.cwd(), subPackName, 'test', 'FromModelica') + const pattern = path.join('test', 'FromModelica', '*.mo') + const files = glob.sync(pattern) + const expectedOutputPath = path.join(process.cwd(), 'test', 'reference', subPackName, 'test', 'FromModelica') + const actualOutputPath = path.join(process.cwd(), subPackName, 'test', 'FromModelica') - for (var i = 0; i < files.length; i++) { + for (let i = 0; i < files.length; i++) { if (outFormat === 'semantic') { se.getSemanticInformation(files[i], process.cwd()) } - var idx2 = files[i].lastIndexOf(path.sep) + const idx2 = files[i].lastIndexOf(path.sep) const fileNameMOD = files[i].slice(idx2 + 1, -3) + extension const oldFileMOD = path.join(expectedOutputPath, fileNameMOD) // Read the old json const jsonOldMOD = JSON.parse(fs.readFileSync(oldFileMOD, 'utf8')) - var oldInstances = jsonOldMOD.instances - for (var oldInstanceId in oldInstances) { + const oldInstances = jsonOldMOD.instances + for (const oldInstanceId in oldInstances) { if ('fullMoFilePath' in oldInstances[oldInstanceId] && oldInstances[oldInstanceId].fullMoFilePath !== undefined) { - oldInstances[oldInstanceId]['fullMoFilePath'] = 'samMoFile' + oldInstances[oldInstanceId].fullMoFilePath = 'samMoFile' } } - jsonOldMOD['instances'] = oldInstances + jsonOldMOD.instances = oldInstances const jsonNewMOD = path.join(actualOutputPath, fileNameMOD) - var neMOD = JSON.parse(fs.readFileSync(jsonNewMOD, 'utf8')) - var newInstances = neMOD.instances - for (var newInstanceId in newInstances) { + const neMOD = JSON.parse(fs.readFileSync(jsonNewMOD, 'utf8')) + const newInstances = neMOD.instances + for (const newInstanceId in newInstances) { if ('fullMoFilePath' in newInstances[newInstanceId] && newInstances[newInstanceId].fullMoFilePath !== undefined) { - newInstances[newInstanceId]['fullMoFilePath'] = 'samMoFile' + newInstances[newInstanceId].fullMoFilePath = 'samMoFile' } } - neMOD['instances'] = newInstances + neMOD.instances = newInstances const tempOld = JSON.stringify(jsonOldMOD) const tempNew = JSON.stringify(neMOD) @@ -187,23 +187,23 @@ var checkObjectsJSON = function (outFormat, extension, message) { } // This has been hardcoded - var expectedSemanticOutputPath = path.join(process.cwd(), 'test', 'reference', subPackName) - var expectedBrickPath = path.join(expectedSemanticOutputPath, 'Brick', '1.3', 'test', 'FromModelica') - var expectedEnPath = path.join(expectedSemanticOutputPath, 'en', 'test', 'FromModelica') + const expectedSemanticOutputPath = path.join(process.cwd(), 'test', 'reference', subPackName) + const expectedBrickPath = path.join(expectedSemanticOutputPath, 'Brick', '1.3', 'test', 'FromModelica') + const expectedEnPath = path.join(expectedSemanticOutputPath, 'en', 'test', 'FromModelica') - var actualSemanticOutputPath = path.join(process.cwd(), subPackName) - var actualBrickPath = path.join(actualSemanticOutputPath, 'Brick', '1.3', 'test', 'FromModelica') - var actualEnPath = path.join(actualSemanticOutputPath, 'en', 'test', 'FromModelica') + const actualSemanticOutputPath = path.join(process.cwd(), subPackName) + const actualBrickPath = path.join(actualSemanticOutputPath, 'Brick', '1.3', 'test', 'FromModelica') + const actualEnPath = path.join(actualSemanticOutputPath, 'en', 'test', 'FromModelica') - var semanticFiles = {} + const semanticFiles = {} // semanticFiles[path.join(expectedBrickPath, 'MyControllerWithSemantics.ttl')] = path.join(actualBrickPath, 'MyControllerWithSemantics.ttl') semanticFiles[path.join(expectedBrickPath, 'SubControllerWithSemantics.ttl')] = path.join(actualBrickPath, 'SubControllerWithSemantics.ttl') semanticFiles[path.join(expectedEnPath, 'MyControllerWithSemantics.txt')] = path.join(actualEnPath, 'MyControllerWithSemantics.txt') - for (var expectedFileName in semanticFiles) { - var actualFileName = semanticFiles[expectedFileName] - var expectedFile = fs.readFileSync(expectedFileName, 'utf8') - var actualFile = fs.readFileSync(actualFileName, 'utf8') + for (const expectedFileName in semanticFiles) { + const actualFileName = semanticFiles[expectedFileName] + const expectedFile = fs.readFileSync(expectedFileName, 'utf8') + const actualFile = fs.readFileSync(actualFileName, 'utf8') as.deepEqual(actualFile, expectedFile, 'Semantic File result differs for ' + actualFileName) } }) diff --git a/validation.js b/validation.js index dd718779..b478e225 100644 --- a/validation.js +++ b/validation.js @@ -5,14 +5,14 @@ const fs = require('fs') const ArgumentParser = require('argparse').ArgumentParser /// /////////////////////////////////////// -var validation = new ArgumentParser({ +const validation = new ArgumentParser({ version: '0.0.1', addHelp: true, description: 'Json file validation against schema' }) validation.addArgument( - [ '-m', '--mode' ], + ['-m', '--mode'], { help: "Parsing mode, single CDL model or buildings modelica library package, 'cdl' is the default.", choices: ['cdl', 'modelica'], @@ -21,14 +21,14 @@ validation.addArgument( ) validation.addArgument( - [ '-f', '--file' ], + ['-f', '--file'], { help: 'JSON file to test against schema', required: true } ) -var args = validation.parseArgs() +const args = validation.parseArgs() const logFile = 'validation.log' try {