@@ -279,18 +279,35 @@ template getQtOutArgArray(Text name, Text shortName, Text mm, DAE.Type ty)
279279 else error(sourceInfo(), 'getOutValueArray failed for <%unparseType(ty)%>')
280280end getQtOutArgArray;
281281
282+ template getQtResponseLogText(Text name, DAE.Type ty)
283+ ::=
284+ match ty
285+ case T_CODE(ty=C_TYPENAME(__))
286+ case T_STRING(__) then '<%name%>'
287+ case T_INTEGER(__)
288+ case T_REAL(__) then 'QString::number(<%name%>)'
289+ case T_BOOL(__) then '<%name%> ? "true" : "false"'
290+ case aty as T_ARRAY(__) then '"Generate toString() method for structs"'
291+ else error(sourceInfo(), 'getQtResponseLogText failed for <%unparseType(ty)%>')
292+ end getQtResponseLogText;
293+
282294template getQtInterfaceFunc(String name, list<DAE .FuncArg > args, DAE.Type res, String className)
283295::=
284296 let &varDecl = buffer ""
297+ let &responseLog = buffer ""
285298 let &postCall = buffer ""
286299 let inArgs = args |> arg as FUNCARG(__) => ', <%getQtInArg(arg.name, arg.ty, varDecl)%>'
287300 let outArgs = (match res
288- case T_NORETCALL(__) then ""
301+ case T_NORETCALL(__) then
302+ let &responseLog += '""'
303+ ""
289304 case t as T_TUPLE(__) then
290305 let &varDecl += '<%name%>_res result;<%\n%>'
306+ let &responseLog += '"Generate toString() method for structs"'
291307 (types |> t hasindex i1 fromindex 1 => ', <%getQtOutArg('result.<%getQtTupleTypeOutputName(res, i1)%>', 'out<%i1%>', t, varDecl, postCall)%>')
292308 else
293309 let &varDecl += '<%getQtType(res)%> result;<%\n%>'
310+ let &responseLog += '<%getQtResponseLogText('result', res)%>'
294311 ', <%getQtOutArg('result', 'result', res, varDecl, postCall)%>'
295312 )
296313 <<
@@ -304,8 +321,8 @@ template getQtInterfaceFunc(String name, list<DAE.FuncArg> args, DAE.Type res, S
304321 commandTime.start();
305322 emit logCommand(" <%replaceDotAndUnderscore(name)%>(### create string of parameters ###)" , &commandTime);
306323 st = omc_OpenModelicaScriptingAPI_<% replaceDotAndUnderscore(name)%> (threadData, st<% inArgs%><% outArgs%> );
307- emit logResponse(" ### create string of result ###" , &commandTime);
308324 <% postCall%>
325+ emit logResponse(<% responseLog%> , &commandTime);
309326
310327 MMC_CATCH_TOP(throw std::runtime_error(" <%replaceDotAndUnderscore(name)%> failed" );)
311328
0 commit comments