Skip to content

Commit 82f7a46

Browse files
committed
- filter internal variables correctly
git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@14989 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent d33e316 commit 82f7a46

File tree

2 files changed

+4
-14
lines changed

2 files changed

+4
-14
lines changed

Compiler/Template/CodegenC.tpl

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -509,8 +509,6 @@ template globalDataVarDefine(SimVar simVar, String arrayName, Integer offset) "t
509509
#define $P$PRE<%cref(c)%> data->simulationInfo.<%arrayName%>Pre[<%intAdd(offset,index)%>]
510510
#define $P$PRE<%cref(name)%> data->simulationInfo.<%arrayName%>Pre[<%intAdd(offset,index)%>]
511511
#define $P$ATTRIBUTE<%cref(name)%> data->modelData.<%arrayName%>Data[<%intAdd(offset,index)%>].attribute
512-
#define $P$FILTEROUTPUT<%cref(name)%> data->modelData.<%arrayName%>Data[<%intAdd(offset,index)%>].filterOutput
513-
#define $P$FILTEROUTPUT$P$PRE<%cref(name)%> $P$FILTEROUTPUT<%cref(name)%>
514512
#define <%cref(name)%>__varInfo data->modelData.<%arrayName%>Data[<%intAdd(offset,index)%>].info
515513
#define $P$PRE<%cref(name)%>__varInfo data->modelData.<%arrayName%>Data[<%intAdd(offset,index)%>].info
516514
>>
@@ -521,8 +519,6 @@ template globalDataVarDefine(SimVar simVar, String arrayName, Integer offset) "t
521519
#define <%cref(name)%> _<%cref(name)%>(0)
522520
#define $P$PRE<%cref(name)%> data->simulationInfo.<%arrayName%>Pre[<%intAdd(offset,index)%>]
523521
#define $P$ATTRIBUTE<%cref(name)%> data->modelData.<%arrayName%>Data[<%intAdd(offset,index)%>].attribute
524-
#define $P$FILTEROUTPUT<%cref(name)%> data->modelData.<%arrayName%>Data[<%intAdd(offset,index)%>].filterOutput
525-
#define $P$FILTEROUTPUT$P$PRE<%cref(name)%> $P$FILTEROUTPUT<%cref(name)%>
526522
#define <%cref(name)%>__varInfo data->modelData.<%arrayName%>Data[<%intAdd(offset,index)%>].info
527523
#define $P$PRE<%cref(name)%>__varInfo data->modelData.<%arrayName%>Data[<%intAdd(offset,index)%>].info
528524
>>
@@ -8725,15 +8721,6 @@ template literalExpConstArrayVal(Exp lit)
87258721
else error(sourceInfo(), 'literalExpConstArrayVal failed: <%printExpStr(lit)%>')
87268722
end literalExpConstArrayVal;
87278723

8728-
template internalVariableFilter(ComponentRef cref)
8729-
::=
8730-
let cref_str = crefStr(cref)
8731-
match System.stringFind(cref_str, "$whenCondition")
8732-
case 0 then '$P$FILTEROUTPUT<%cref(cref)%> = 1; <%\n%>'
8733-
case 5 then '$P$FILTEROUTPUT<%cref(cref)%> = 1; <%\n%>'
8734-
else ''
8735-
end internalVariableFilter;
8736-
87378724
template equationInfo1(SimEqSystem eq, Text &preBuf, Text &eqnsDefines)
87388725
::=
87398726
match eq
@@ -8745,7 +8732,6 @@ template equationInfo1(SimEqSystem eq, Text &preBuf, Text &eqnsDefines)
87458732
let var = '<%cref(cref)%>__varInfo'
87468733
let &preBuf += 'const VAR_INFO** equationInfo_cref<%index%> = (const VAR_INFO**)calloc(1,sizeof(VAR_INFO*));<%\n%>'
87478734
let &preBuf += 'equationInfo_cref<%index%>[0] = &<%var%>;<%\n%>'
8748-
let &preBuf += '<%internalVariableFilter(cref)%>'
87498735
'{<%index%>,"SES_SIMPLE_ASSIGN <%index%>",1,equationInfo_cref<%index%>}'
87508736
case SES_ARRAY_CALL_ASSIGN(__) then
87518737
// let &eqnsDefines += '<%functionSimProfDef(eq,System.tmpTick())%>'

SimulationRuntime/c/simulation/simulation_input_xml.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -546,6 +546,10 @@ void read_input_xml(int argc, char **argv,
546546
read_value(mi.bAlg[i]["fixed"], &(modelData->booleanVarsData[i].attribute.fixed));
547547

548548
INFO5(LOG_DEBUG, "| Boolean %s(%sstart=%s%s, fixed=%s)", modelData->booleanVarsData[i].info.name, modelData->booleanVarsData[i].attribute.useStart?"":"{", modelData->booleanVarsData[i].attribute.start?"true":"false", modelData->booleanVarsData[i].attribute.useStart?"":"}", modelData->booleanVarsData[i].attribute.fixed?"true":"false");
549+
550+
/* filter internal variables */
551+
if(modelData->booleanVarsData[i].info.name[0] == '$')
552+
modelData->booleanVarsData[i].filterOutput = 1;
549553

550554
/* create a mapping for Alias variable to get the correct index */
551555
mapAlias[(modelData->booleanVarsData[i].info.name)]= i;

0 commit comments

Comments
 (0)