Skip to content

Commit

Permalink
Add new option readSimulationResultVars(readParameters=false), and …
Browse files Browse the repository at this point in the history
…use this for the reference file comparison

git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@22534 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
  • Loading branch information
sjoelund committed Oct 1, 2014
1 parent c4fbafd commit 2b970b6
Show file tree
Hide file tree
Showing 7 changed files with 17 additions and 10 deletions.
1 change: 1 addition & 0 deletions Compiler/FrontEnd/ModelicaBuiltin.mo
Expand Up @@ -2553,6 +2553,7 @@ end readSimulationResultSize;

function readSimulationResultVars "Returns the variables in the simulation file; you can use val() and plot() commands using these names."
input String fileName;
input Boolean readParameters = true;
output String[:] vars;
external "builtin";
annotation(preferredView="text");
Expand Down
4 changes: 2 additions & 2 deletions Compiler/Script/CevalScript.mo
Expand Up @@ -2632,12 +2632,12 @@ algorithm
then
(cache,Values.INTEGER(i),st);

case (cache,_,"readSimulationResultVars",{Values.STRING(filename)},st,_)
case (cache,_,"readSimulationResultVars",{Values.STRING(filename),Values.BOOL(b)},st,_)
equation
pwd = System.pwd();
pd = System.pathDelimiter();
filename_1 = Util.if_(System.strncmp("/",filename,1)==0,filename,stringAppendList({pwd,pd,filename}));
args = SimulationResults.readVariables(filename_1);
args = SimulationResults.readVariables(filename_1,b);
vals = List.map(args, ValuesUtil.makeString);
v = ValuesUtil.makeArray(vals);
then
Expand Down
3 changes: 2 additions & 1 deletion Compiler/Util/SimulationResults.mo
Expand Up @@ -50,9 +50,10 @@ end val;

public function readVariables
input String filename;
input Boolean readParameters;
output list<String> vars;

external "C" vars=SimulationResults_readVariables(filename) annotation(Library = "omcruntime");
external "C" vars=SimulationResults_readVariables(filename,readParameters) annotation(Library = "omcruntime");
end readVariables;

public function readDataset
Expand Down
10 changes: 7 additions & 3 deletions Compiler/runtime/SimulationResults.c
Expand Up @@ -230,7 +230,7 @@ static int SimulationResultsImpl__readSimulationResultSize(const char *filename,
}
}

static void* SimulationResultsImpl__readVars(const char *filename, SimulationResult_Globals* simresglob)
static void* SimulationResultsImpl__readVars(const char *filename, int readParameters, SimulationResult_Globals* simresglob)
{
const char *msg[2] = {"",""};
void *res;
Expand All @@ -241,7 +241,11 @@ static void* SimulationResultsImpl__readVars(const char *filename, SimulationRes
switch (simresglob->curFormat) {
case MATLAB4: {
int i;
for (i=simresglob->matReader.nall-1; i>=0; i--) res = mk_cons(mk_scon(simresglob->matReader.allInfo[i].name),res);
for (i=simresglob->matReader.nall-1; i>=0; i--) {
if (readParameters || !simresglob->matReader.allInfo[i].isParam) {
res = mk_cons(mk_scon(simresglob->matReader.allInfo[i].name),res);
}
}
return res;
}
case PLT: {
Expand Down Expand Up @@ -293,7 +297,7 @@ static void* SimulationResultsImpl__readVarsFilterAliases(const char *filename,
free(vars);
return res;
}
default: return SimulationResultsImpl__readVars(filename, simresglob);
default: return SimulationResultsImpl__readVars(filename, 0, simresglob);
}
}

Expand Down
4 changes: 2 additions & 2 deletions Compiler/runtime/SimulationResults_omc.c
Expand Up @@ -40,9 +40,9 @@
#include "SimulationResults.c"
#include "SimulationResultsCmp.c"

void* SimulationResults_readVariables(const char *filename, const char *visvars)
void* SimulationResults_readVariables(const char *filename, int readParameters)
{
return SimulationResultsImpl__readVars(filename,&simresglob);
return SimulationResultsImpl__readVars(filename,readParameters,&simresglob);
}

extern void* _ValuesUtil_reverseMatrix(void*);
Expand Down
3 changes: 2 additions & 1 deletion Compiler/runtime/SimulationResults_rml.c
Expand Up @@ -44,8 +44,9 @@ RML_BEGIN_LABEL(SimulationResults__readVariables)
{
rml_sint_t i,size;
char* filename = RML_STRINGDATA(rmlA0);
int readParameters = RML_UNTAGFIXNUM(rmlA1);

rmlA0 = SimulationResultsImpl__readVars(filename,&simresglob);
rmlA0 = SimulationResultsImpl__readVars(filename,readParameters,&simresglob);
RML_TAILCALLK(rmlSC);
}
RML_END_LABEL
Expand Down
2 changes: 1 addition & 1 deletion Examples/BuildModelRecursive.mos
Expand Up @@ -170,7 +170,7 @@ end if;
outputFormat := if outputFormat == \"default\" then (if referenceExists then \"mat\" else \"empty\") else outputFormat;

if referenceExists then
vars := readSimulationResultVars(reference);
vars := readSimulationResultVars(reference,readParameters=false);
variableFilter := sum(stringReplace(stringReplace(s,\"[\",\".\"),\"]\",\".\") + \"|\" for s in vars);
numCompared := size(vars,1);
else
Expand Down

0 comments on commit 2b970b6

Please sign in to comment.