Skip to content
This repository was archived by the owner on May 18, 2019. It is now read-only.

Commit 1f28d87

Browse files
lochelOpenModelica-Hudson
authored andcommitted
Save units of measure for parameters to mat files
Belonging to [master]: - #1964
1 parent 66d69d5 commit 1f28d87

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

SimulationRuntime/c/simulation/results/simulation_result_mat4.cpp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,9 +154,12 @@ void mat4_init4(simulation_result *self, DATA *data, threadData_t *threadData)
154154

155155
for (int i=0; i < mData->nParametersReal; i++)
156156
if (!mData->realParameterData[i].filterOutput) {
157+
const char *unitStr = MMC_STRINGDATA(mData->realParameterData[i].attribute.unit);
158+
size_t unitLength = unitStr ? strlen(unitStr) + 3 : 0;
159+
157160
len = strlen(mData->realParameterData[i].info.name) + 1;
158161
if (len > maxLengthName) maxLengthName = len;
159-
len = strlen(mData->realParameterData[i].info.comment) + 1;
162+
len = strlen(mData->realParameterData[i].info.comment) + 1 + unitLength;
160163
if (len > maxLengthDesc) maxLengthDesc = len;
161164
matData->nSignals++;
162165
}
@@ -267,8 +270,19 @@ void mat4_init4(simulation_result *self, DATA *data, threadData_t *threadData)
267270

268271
for (int i=0; i < mData->nParametersReal; i++)
269272
if (!mData->realParameterData[i].filterOutput) {
273+
const char *unitStr = MMC_STRINGDATA(mData->realParameterData[i].attribute.unit);
274+
size_t unitLength = unitStr ? strlen(unitStr) : 0;
275+
270276
memcpy((uint8_t*)name + maxLengthName * cur, mData->realParameterData[i].info.name, strlen(mData->realParameterData[i].info.name));
271277
memcpy((uint8_t*)description + maxLengthDesc * cur, mData->realParameterData[i].info.comment, strlen(mData->realParameterData[i].info.comment));
278+
// unit information
279+
if (unitLength > 0)
280+
{
281+
memcpy((uint8_t*)description + maxLengthDesc * cur + strlen(mData->realParameterData[i].info.comment) + 2, unitStr, unitLength);
282+
((uint8_t*)description)[maxLengthDesc * cur + strlen(mData->realParameterData[i].info.comment) + 0] = ' ';
283+
((uint8_t*)description)[maxLengthDesc * cur + strlen(mData->realParameterData[i].info.comment) + 1] = '[';
284+
((uint8_t*)description)[maxLengthDesc * cur + strlen(mData->realParameterData[i].info.comment) + 2 + unitLength] = ']';
285+
}
272286
cur++;
273287
}
274288

0 commit comments

Comments
 (0)