mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-09 00:00:00 +01:00
dp hook: fix converted signals being inserted at the wrong position
Signed-off-by: Niklas Eiling <niklas.eiling@eonerc.rwth-aachen.de>
This commit is contained in:
parent
7128da24c3
commit
365bdd6288
1 changed files with 5 additions and 6 deletions
|
@ -27,7 +27,6 @@ protected:
|
|||
char *signal_name;
|
||||
unsigned signal_index;
|
||||
|
||||
int offset;
|
||||
int inverse;
|
||||
|
||||
double f0;
|
||||
|
@ -97,7 +96,7 @@ protected:
|
|||
public:
|
||||
DPHook(Path *p, Node *n, int fl, int prio, bool en = true)
|
||||
: Hook(p, n, fl, prio, en), signal_name(nullptr), signal_index(0),
|
||||
offset(0), inverse(0), f0(50.0), timestep(50e-6), time(), steps(0),
|
||||
inverse(0), f0(50.0), timestep(50e-6), time(), steps(0),
|
||||
coeffs(), fharmonics(), fharmonics_len(0) {}
|
||||
|
||||
virtual ~DPHook() {
|
||||
|
@ -225,7 +224,7 @@ public:
|
|||
if (!new_sig)
|
||||
throw RuntimeError("Failed to create signal");
|
||||
|
||||
signals->insert(signals->begin() + offset, new_sig);
|
||||
signals->insert(signals->begin() + signal_index, new_sig);
|
||||
} else {
|
||||
auto orig_sig = signals->getByIndex(signal_index);
|
||||
if (!orig_sig)
|
||||
|
@ -244,7 +243,7 @@ public:
|
|||
if (!new_sig)
|
||||
throw RuntimeError("Failed to create new signal");
|
||||
|
||||
signals->insert(signals->begin() + offset, new_sig);
|
||||
signals->insert(signals->begin() + signal_index, new_sig);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -281,7 +280,7 @@ public:
|
|||
istep(coeffs, &signal);
|
||||
|
||||
sample_data_remove(smp, signal_index, fharmonics_len);
|
||||
sample_data_insert(smp, (union SignalData *)&signal, offset, 1);
|
||||
sample_data_insert(smp, (union SignalData *)&signal, signal_index, 1);
|
||||
} else {
|
||||
double signal = smp->data[signal_index].f;
|
||||
std::complex<float> coeffs[fharmonics_len];
|
||||
|
@ -289,7 +288,7 @@ public:
|
|||
step(&signal, coeffs);
|
||||
|
||||
sample_data_remove(smp, signal_index, 1);
|
||||
sample_data_insert(smp, (union SignalData *)coeffs, offset,
|
||||
sample_data_insert(smp, (union SignalData *)coeffs, signal_index,
|
||||
fharmonics_len);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue