Skip to content

Commit dfd59b4

Browse files
authored
fix ticket #6084 (OpenModelica#127)
1 parent ab2a0d1 commit dfd59b4

2 files changed

Lines changed: 17 additions & 4 deletions

File tree

‎OMPython/__init__.py‎

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1402,15 +1402,24 @@ def __simInput(self):
14021402
writer.writerow(l)
14031403

14041404
# to convert Modelica model to FMU
1405-
def convertMo2Fmu(self): # 19
1405+
def convertMo2Fmu(self, version="2.0", fmuType="me_cs", fileNamePrefix="<default>", includeResources=True): # 19
14061406
"""
14071407
This method is used to generate FMU from the given Modelica model. It creates "modelName.fmu" in the current working directory. It can be called:
1408-
only without any arguments
1408+
with no arguments
1409+
with arguments of https://build.openmodelica.org/Documentation/OpenModelica.Scripting.translateModelFMU.html
14091410
usage
14101411
>>> convertMo2Fmu()
1412+
>>> convertMo2Fmu(version="2.0", fmuType="me|cs|me_cs", fileNamePrefix="<default>", includeResources=true)
14111413
"""
14121414
convertMo2FmuError = ''
1413-
translateModelFMUResult = self.requestApi('translateModelFMU', self.modelName)
1415+
if fileNamePrefix == "<default":
1416+
fileNamePrefix = self.modelName
1417+
if includeResources:
1418+
includeResourcesStr = "true"
1419+
else:
1420+
includeResourcesStr = "false"
1421+
properties = 'version="{}", fmuType="{}", fileNamePrefix="{}", includeResources={}'.format(version, fmuType, fileNamePrefix,includeResourcesStr)
1422+
translateModelFMUResult = self.requestApi('translateModelFMU', self.modelName, properties)
14141423
if convertMo2FmuError:
14151424
print(convertMo2FmuError)
14161425

‎tests/test_ModelicaSystem.py‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ def __init__(self, *args, **kwargs):
88
self.tmp = tempfile.mkdtemp(prefix='tmpOMPython.tests')
99
with open("%s/M.mo" % self.tmp, "w") as fout:
1010
fout.write("""model M
11-
Real r = time;
11+
Real x(start = 1);
12+
parameter Real a = -1;
13+
equation
14+
der(x) = x*a;
1215
end M;
1316
""")
1417
def __del__(self):
@@ -20,6 +23,7 @@ def worker():
2023
os.chdir(self.tmp)
2124
m = OMPython.ModelicaSystem("M.mo", "M")
2225
m.simulate()
26+
m.convertMo2Fmu(fmuType="me")
2327
os.chdir(origDir)
2428
for _ in range(10):
2529
worker()

0 commit comments

Comments
 (0)