I moved the _prepare_stimulus() method call to the configuration of the CoSimulator, because during co-simulation the simulation_length is modified and equalized with the synchronization_time, leading to an erroneous reconfiguration of the stimulus in time.
I added an _current_stimulus property to the CoSimulator, in order to keep the stimulus between calles to call() method.
I also overwrote the _loop_update_stimulus method to use
stim_step=step-1
instead of stim_step=step-(current_step+1)
because current_step is updated evey synchronization time at each call().
I moved the _prepare_stimulus() method call to the configuration of the CoSimulator, because during co-simulation the simulation_length is modified and equalized with the synchronization_time, leading to an erroneous reconfiguration of the stimulus in time.
I added an _current_stimulus property to the CoSimulator, in order to keep the stimulus between calles to call() method.
I also overwrote the _loop_update_stimulus method to use
stim_step=step-1
instead of stim_step=step-(current_step+1)
because current_step is updated evey synchronization time at each call().