MCPcopy Create free account
hub / github.com/NTNU-IHB/PythonFMU / SetReal

Method SetReal

src/pythonfmu/PySlaveInstance.cpp:305–324  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

303 }
304
305 void SetReal(const fmi2ValueReference* vr, std::size_t nvr, const fmi2Real* values) override
306 {
307 py_safe_run([this, &vr, nvr, &values](PyGILState_STATE gilState) {
308 PyObject* vrs = PyList_New(nvr);
309 PyObject* refs = PyList_New(nvr);
310 for (int i = 0; i < nvr; i++) {
311 PyList_SetItem(vrs, i, Py_BuildValue("i", vr[i]));
312 PyList_SetItem(refs, i, Py_BuildValue("d", values[i]));
313 }
314
315 auto f = PyObject_CallMethod(pInstance_, "set_real", "(OO)", vrs, refs);
316 Py_DECREF(vrs);
317 Py_DECREF(refs);
318 if (f == nullptr) {
319 handle_py_exception("[setReal] PyObject_CallMethod", gilState);
320 }
321 Py_DECREF(f);
322 clearLogBuffer();
323 });
324 }
325
326 void SetInteger(const fmi2ValueReference* vr, std::size_t nvr, const fmi2Integer* values) override
327 {

Callers 1

fmi2SetRealFunction · 0.80

Calls 1

py_safe_runFunction · 0.85

Tested by

no test coverage detected