raceback (most recent call last):
File "/home/whitequark/Projects/urh/src/urh/controller/dialogs/ModulatorDialog.py", line 491, in on_modulation_type_changed
self.set_default_modulation_parameters()
File "/home/whitequark/Projects/urh/src/urh/controller/dialogs/ModulatorDialog.py", line 351, in set_default_modulation_parameters
self.current_modulator.parameters = self.current_modulator.get_default_parameters()
File "/home/whitequark/Projects/urh/src/urh/signalprocessing/Modulator.py", line 244, in get_default_parameters
for i in range(self.modulation_order):
TypeError: 'float' object cannot be interpreted as an integer
Platform Specifications
OS: Debian buster
URH version: 5460cf5851ae8
Python version: 3.7
Installed via git
Workaround
With the following patch, modulator seems to work OK and produce signals that are demodulated by my nRF24L01+:
diff --git a/src/urh/signalprocessing/Modulator.py b/src/urh/signalprocessing/Modulator.py
index 9cdd7942..fc46b7e0 100644
--- a/src/urh/signalprocessing/Modulator.py
+++ b/src/urh/signalprocessing/Modulator.py
@@ -241,7 +241,7 @@ class Modulator(object):
parameters = np.linspace(0, 100, self.modulation_order, dtype=np.float32)
elif self.is_frequency_based:
parameters = []
- for i in range(self.modulation_order):
+ for i in range(int(self.modulation_order)):
parameters.append((i + 1) * self.carrier_freq_hz / self.modulation_order)
elif self.is_phase_based:
step = 360 / self.modulation_order
But from looking at the code this doesn't seem like the right fix to me.
Expected Behavior
Crash when selecting FSK in modulator in certain conditions.
Actual Behavior
No crash.
Steps To Reproduce
Platform Specifications
Workaround
With the following patch, modulator seems to work OK and produce signals that are demodulated by my nRF24L01+:
But from looking at the code this doesn't seem like the right fix to me.