Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
ACS
Public
Power System Simulation and Optimization
DPsim
DPsim
Commits
5194c15e
Commit
5194c15e
authored
Oct 01, 2018
by
Markus Mirz
Browse files
Merge branch 'development' of git.rwth-aachen.de:acs/core/simulation/dpsim into development
parents
5fa4aac1
add42b0f
Changes
3
Hide whitespace changes
Inline
Side-by-side
Include/dpsim/Python/Logger.h
View file @
5194c15e
...
...
@@ -41,6 +41,8 @@ namespace Python {
struct
Logger
{
PyObject_HEAD
std
::
vector
<
PyObject
*>
refs
;
DPsim
::
DataLogger
::
Ptr
logger
;
const
char
*
filename
;
...
...
Source/Python/Logger.cpp
View file @
5194c15e
...
...
@@ -36,8 +36,10 @@ PyObject* Python::Logger::newfunc(PyTypeObject *type, PyObject *args, PyObject *
self
=
(
Python
::
Logger
*
)
type
->
tp_alloc
(
type
,
0
);
if
(
self
)
{
using
PyObjectVector
=
std
::
vector
<
PyObject
*>
;
using
SharedLoggerPtr
=
std
::
shared_ptr
<
DPsim
::
DataLogger
>
;
new
(
&
self
->
refs
)
PyObjectVector
();
new
(
&
self
->
logger
)
SharedLoggerPtr
();
}
...
...
@@ -46,9 +48,14 @@ PyObject* Python::Logger::newfunc(PyTypeObject *type, PyObject *args, PyObject *
void
Python
::
Logger
::
dealloc
(
Python
::
Logger
*
self
)
{
using
PyObjectVector
=
std
::
vector
<
PyObject
*>
;
using
SharedLoggerPtr
=
std
::
shared_ptr
<
DPsim
::
DataLogger
>
;
for
(
PyObject
*
pyRef
:
self
->
refs
)
Py_DECREF
(
pyRef
);
self
->
logger
.
~
SharedLoggerPtr
();
self
->
refs
.
~
PyObjectVector
();
Py_TYPE
(
self
)
->
tp_free
((
PyObject
*
)
self
);
}
...
...
@@ -103,6 +110,9 @@ PyObject* Python::Logger::logAttribute(Logger* self, PyObject* args, PyObject *k
return
nullptr
;
}
self
->
refs
.
push_back
(
pyObj
);
Py_INCREF
(
pyObj
);
Py_RETURN_NONE
;
}
...
...
Source/Python/Simulation.cpp
View file @
5194c15e
...
...
@@ -133,6 +133,11 @@ void Python::Simulation::threadFunction(Python::Simulation *self)
for
(
auto
ifm
:
self
->
sim
->
interfaces
())
ifm
.
interface
->
close
();
#endif
for
(
auto
lg
:
self
->
sim
->
loggers
())
{
if
(
self
->
sim
->
timeStepCount
()
%
lg
.
downsampling
==
0
)
lg
.
logger
->
log
(
self
->
sim
->
time
());
}
}
PyObject
*
Python
::
Simulation
::
newfunc
(
PyTypeObject
*
subtype
,
PyObject
*
args
,
PyObject
*
kwds
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment