Skip to content

Commit ab01299

Browse files
authored
Use declared type for enumeration parameters (#42)
1 parent 005283e commit ab01299

File tree

4 files changed

+3
-15
lines changed

4 files changed

+3
-15
lines changed

modelica_fmi/src/modelica_fmi/_lib.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -164,16 +164,6 @@ def modifiers(variable: ModelVariable, start: bool = False):
164164
return ""
165165

166166

167-
def choices(variable: ModelVariable) -> str:
168-
if variable.type == "Enumeration":
169-
choices = [
170-
f'choice={item.value} "{item.name}"' for item in variable.declaredType.items
171-
]
172-
return " annotation(choices(" + ", ".join(choices) + "))"
173-
else:
174-
return ""
175-
176-
177167
def dependencies(
178168
model_description: ModelDescription, variable: ModelVariable, type, nValues=False
179169
):

modelica_fmi/src/modelica_fmi/import_fmu_to_modelica.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
fmi2_type,
99
fmi3_type,
1010
modifiers,
11-
choices,
1211
dependencies,
1312
dependencies2,
1413
dependencies3,
@@ -189,7 +188,6 @@ def import_fmu_to_modelica(
189188
"modelica_type": modelica_type,
190189
"fmi_type": fmi2_type if fmiMajorVersion == 2 else fmi3_type,
191190
"modifiers": modifiers,
192-
"choices": choices,
193191
"name": name,
194192
"dependencies": lambda *args, **kwargs: dependencies(
195193
model_description, *args, **kwargs

modelica_fmi/src/modelica_fmi/templates/FMI3_CS.mo

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,9 @@ initial algorithm
100100
startTime := time;
101101
@@ for variable in parameters @@
102102
@@ if not variable.dimensions @@
103-
FMI3Set@=fmi_type(variable)=@(instance, valueReferences={@=variable.valueReference=@}, values={@=name(variable)=@});
103+
FMI3Set@=fmi_type(variable)=@(instance, valueReferences={@=variable.valueReference=@}, values=@@ if variable.type == 'Enumeration' @@Types.@= variable.declaredType.name =@ToInt64(@@ endif @@{@=name(variable)=@}@@ if variable.type == 'Enumeration' @@)@@ endif @@);
104104
@@ elif variable.dimensions|length == 1 @@
105-
FMI3Set@=fmi_type(variable)=@(instance, valueReferences={@=variable.valueReference=@}, values=@=name(variable)=@);
105+
FMI3Set@=fmi_type(variable)=@(instance, valueReferences={@=variable.valueReference=@}, values=@@ if variable.type == 'Enumeration' @@Types.@= variable.declaredType.name =@ToInt64(@@ endif @@@=name(variable)=@@@ if variable.type == 'Enumeration' @@)@@ endif @@);
106106
@@ else @@
107107
FMI3Set@=fmi_type(variable)=@Matrix(instance, valueReferences={@=variable.valueReference=@}, values=@=name(variable)=@, nValues=@=numel(variable)=@);
108108
@@ endif @@

modelica_fmi/src/modelica_fmi/templates/FMU.mo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ block @=modelName=@
8585
parameter Modelica.Units.SI.Time communicationStepSize = @=communicationStepSize=@ annotation(Dialog(tab="FMI", group="Parameters"));
8686
@@ for variable in parameters @@
8787

88-
parameter @=fmi_type(variable, prefix=True)=@ @=name(variable)=@@@ if variable.dimensions @@@=subscripts(variable)=@@@ endif @@@=modifiers(variable)=@ = @=start_value(variable)=@@@ if variable.description @@ "@=variable.description=@"@@ endif @@@=choices(variable)=@;
88+
parameter @=fmi_type(variable, prefix=True, declared=True)=@ @=name(variable)=@@@ if variable.dimensions @@@=subscripts(variable)=@@@ endif @@@=modifiers(variable)=@ = @=start_value(variable)=@@@ if variable.description @@ "@=variable.description=@"@@ endif @@;
8989
@@ endfor @@
9090
@@ block inputs @@
9191
@@ endblock @@

0 commit comments

Comments
 (0)