mirror of
https://github.com/jopohl/urh.git
synced 2026-03-04 07:24:00 +01:00
* precompile device extensions * set lib path * prevent double build * download libs in travis * fix unittest * update path * protect access * adapt shared path to linux * sort os listdir * ensure libstdc++ loaded first * change name * remove required * improve test * add usrp test * set shared library path when processes spawn * test pypi release with travis * test pypi release with travis * test pypi release with travis * skip cleanup * fix pypi test link * test wheelhouse build * skip tests * fix path * fix dir * cd repo * quote var * do not use for loop * add missing quote * quote dollar * script deployment * fix twine upload * deploy libs only for windows * add 32 bit support * fix command * disable 32 bit * push version for test * push ver * prepare merge * trigger build * fix windows path * improve shortcut * remove debug * edit copyright
138 lines
6.6 KiB
Python
138 lines
6.6 KiB
Python
from array import array
|
|
|
|
from tests.QtTestCase import QtTestCase
|
|
from urh.controller.dialogs.SimulatorDialog import SimulatorDialog
|
|
from urh.dev.BackendHandler import BackendContainer, Backends
|
|
from urh.signalprocessing.Participant import Participant
|
|
from urh.simulator.SimulatorMessage import SimulatorMessage
|
|
|
|
|
|
class TestSimulatorDialog(QtTestCase):
|
|
def setUp(self):
|
|
super().setUp()
|
|
alice = Participant("Alice", "A")
|
|
bob = Participant("Bob", "B")
|
|
alice.simulate = True
|
|
bob.simulate = True
|
|
self.form.project_manager.participants.append(alice)
|
|
self.form.project_manager.participants.append(bob)
|
|
self.form.project_manager.project_updated.emit()
|
|
|
|
mt = self.form.compare_frame_controller.proto_analyzer.default_message_type
|
|
msg1 = SimulatorMessage(source=bob, destination=alice, plain_bits=array("B", [1, 0, 1, 1]), pause=100, message_type=mt)
|
|
msg2 = SimulatorMessage(source=alice, destination=bob, plain_bits=array("B", [1, 0, 1, 1]), pause=100, message_type=mt)
|
|
|
|
simulator_manager = self.form.simulator_tab_controller.simulator_config
|
|
simulator_manager.add_items([msg1, msg2], 0, simulator_manager.rootItem)
|
|
simulator_manager.add_label(5, 15, "test", parent_item=simulator_manager.rootItem.children[0])
|
|
|
|
print(self.form.simulator_tab_controller.simulator_config.tx_needed)
|
|
|
|
self.dialog = SimulatorDialog(self.form.simulator_tab_controller.simulator_config,
|
|
self.form.generator_tab_controller.modulators,
|
|
self.form.simulator_tab_controller.sim_expression_parser,
|
|
self.form.project_manager)
|
|
|
|
if self.SHOW:
|
|
self.dialog.show()
|
|
|
|
def test_set_rx_parameters(self):
|
|
rx_settings_widget = self.dialog.device_settings_rx_widget
|
|
bh = BackendContainer("test", {Backends.native}, True, True)
|
|
self.assertTrue(bh.is_enabled)
|
|
rx_settings_widget.backend_handler.device_backends["test"] = bh
|
|
rx_settings_widget.ui.cbDevice.addItem("test")
|
|
rx_settings_widget.ui.cbDevice.setCurrentText("test")
|
|
self.assertEqual(rx_settings_widget.device.name, "test")
|
|
self.assertEqual(rx_settings_widget.device.backend, Backends.native)
|
|
|
|
simulator = self.dialog.simulator
|
|
self.__edit_spinbox_value(rx_settings_widget.ui.spinBoxFreq, 500e6)
|
|
self.assertEqual(simulator.sniffer.rcv_device.frequency, 500e6)
|
|
|
|
self.__edit_spinbox_value(rx_settings_widget.ui.spinBoxSampleRate, 4e6)
|
|
self.assertEqual(simulator.sniffer.rcv_device.sample_rate, 4e6)
|
|
|
|
self.__edit_spinbox_value(rx_settings_widget.ui.spinBoxBandwidth, 5e6)
|
|
self.assertEqual(simulator.sniffer.rcv_device.bandwidth, 5e6)
|
|
|
|
self.__edit_spinbox_value(rx_settings_widget.ui.spinBoxGain, 15)
|
|
self.assertEqual(simulator.sniffer.rcv_device.gain, 15)
|
|
|
|
self.__edit_spinbox_value(rx_settings_widget.ui.spinBoxIFGain, 10)
|
|
self.assertEqual(simulator.sniffer.rcv_device.if_gain, 10)
|
|
|
|
self.__edit_spinbox_value(rx_settings_widget.ui.spinBoxBasebandGain, 11)
|
|
self.assertEqual(simulator.sniffer.rcv_device.baseband_gain, 11)
|
|
|
|
self.__edit_spinbox_value(rx_settings_widget.ui.spinBoxFreqCorrection, 22)
|
|
self.assertEqual(simulator.sniffer.rcv_device.freq_correction, 22)
|
|
|
|
rx_settings_widget.ui.lineEditIP.setText("4.4.4.4")
|
|
rx_settings_widget.ui.lineEditIP.editingFinished.emit()
|
|
self.assertEqual(simulator.sniffer.rcv_device.ip, "4.4.4.4")
|
|
|
|
def test_set_sniff_parameters(self):
|
|
sniff_settings_widget = self.dialog.sniff_settings_widget
|
|
simulator = self.dialog.simulator
|
|
self.__edit_spinbox_value(sniff_settings_widget.ui.spinbox_sniff_BitLen, 111)
|
|
self.assertEqual(simulator.sniffer.signal.bit_len, 111)
|
|
|
|
self.__edit_spinbox_value(sniff_settings_widget.ui.spinbox_sniff_Center, 0.1337)
|
|
self.assertEqual(simulator.sniffer.signal.qad_center, 0.1337)
|
|
|
|
self.__edit_spinbox_value(sniff_settings_widget.ui.spinbox_sniff_ErrorTolerance, 13)
|
|
self.assertEqual(simulator.sniffer.signal.tolerance, 13)
|
|
|
|
self.__edit_spinbox_value(sniff_settings_widget.ui.spinbox_sniff_Noise, 0.1234)
|
|
self.assertEqual(simulator.sniffer.signal.noise_threshold, 0.1234)
|
|
|
|
sniff_settings_widget.ui.combox_sniff_Modulation.setCurrentText("PSK")
|
|
self.assertEqual(simulator.sniffer.signal.modulation_type_str, "PSK")
|
|
|
|
decodings = [sniff_settings_widget.ui.comboBox_sniff_encoding.itemText(i) for i in
|
|
range(sniff_settings_widget.ui.comboBox_sniff_encoding.count())]
|
|
sniff_settings_widget.ui.comboBox_sniff_encoding.setCurrentIndex(2)
|
|
self.assertEqual(simulator.sniffer.decoder.name, decodings[2])
|
|
|
|
def test_set_tx_parameters(self):
|
|
tx_settings_widget = self.dialog.device_settings_tx_widget
|
|
simulator = self.dialog.simulator
|
|
|
|
bh = BackendContainer("test", {Backends.native}, True, True)
|
|
self.assertTrue(bh.is_enabled)
|
|
tx_settings_widget.backend_handler.device_backends["test"] = bh
|
|
tx_settings_widget.ui.cbDevice.addItem("test")
|
|
tx_settings_widget.ui.cbDevice.setCurrentText("test")
|
|
self.assertEqual(tx_settings_widget.device.name, "test")
|
|
self.assertEqual(tx_settings_widget.device.backend, Backends.native)
|
|
|
|
self.__edit_spinbox_value(tx_settings_widget.ui.spinBoxFreq, 300e6)
|
|
self.assertEqual(simulator.sender.device.frequency, 300e6)
|
|
|
|
self.__edit_spinbox_value(tx_settings_widget.ui.spinBoxSampleRate, 5e6)
|
|
self.assertEqual(simulator.sender.device.sample_rate, 5e6)
|
|
|
|
self.__edit_spinbox_value(tx_settings_widget.ui.spinBoxBandwidth, 3e6)
|
|
self.assertEqual(simulator.sender.device.bandwidth, 3e6)
|
|
|
|
self.__edit_spinbox_value(tx_settings_widget.ui.spinBoxGain, 16)
|
|
self.assertEqual(simulator.sender.device.gain, 16)
|
|
|
|
self.__edit_spinbox_value(tx_settings_widget.ui.spinBoxIFGain, 13)
|
|
self.assertEqual(simulator.sender.device.if_gain, 13)
|
|
|
|
self.__edit_spinbox_value(tx_settings_widget.ui.spinBoxBasebandGain, 10)
|
|
self.assertEqual(simulator.sender.device.baseband_gain, 10)
|
|
|
|
self.__edit_spinbox_value(tx_settings_widget.ui.spinBoxFreqCorrection, 33)
|
|
self.assertEqual(simulator.sender.device.freq_correction, 33)
|
|
|
|
tx_settings_widget.ui.lineEditIP.setText("1.2.6.2")
|
|
tx_settings_widget.ui.lineEditIP.editingFinished.emit()
|
|
self.assertEqual(simulator.sender.device.ip, "1.2.6.2")
|
|
|
|
def __edit_spinbox_value(self, spinbox, value):
|
|
spinbox.setValue(value)
|
|
spinbox.editingFinished.emit()
|