Exemplo n.º 1
0
    def test_open_simulator_dialog_and_send_mismatching_message(self):
        stc = self.form.simulator_tab_controller
        assert isinstance(stc, SimulatorTabController)

        self.__setup_project()
        self.add_all_signals_to_simulator()

        stc.simulator_scene.select_all_items()

        for msg in stc.simulator_scene.get_selected_messages():
            msg.destination = self.dennis
            stc.ui.gvSimulator.message_updated.emit(msg)

        list_model = stc.ui.listViewSimulate.model()
        self.assertEqual(list_model.rowCount(), 2)
        list_model.setData(list_model.createIndex(1, 0),
                           Qt.Checked,
                           role=Qt.CheckStateRole)

        dialog = stc.get_simulator_dialog()

        network_sdr_name = NetworkSDRInterfacePlugin.NETWORK_SDR_NAME
        dialog.device_settings_tx_widget.ui.cbDevice.setCurrentText(
            network_sdr_name)
        dialog.device_settings_rx_widget.ui.cbDevice.setCurrentText(
            network_sdr_name)

        send_port = self.get_free_port()
        dialog.simulator.sender.device.set_client_port(send_port)
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        s.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
        s.bind(("", send_port))
        s.listen(1)

        rcv_port = self.get_free_port()
        dialog.simulator.sniffer.rcv_device.set_server_port(rcv_port)

        dialog.ui.btnStartStop.click()
        QTest.qWait(100)

        modulator = dialog.project_manager.modulators[0]  # type: Modulator
        sender = NetworkSDRInterfacePlugin(raw_mode=True, sending=True)
        sender.client_port = rcv_port
        sender.send_raw_data(modulator.modulate("1" * 352), 1)
        sender.send_raw_data(np.zeros(1000, dtype=np.complex64), 1)
        sender.send_raw_data(modulator.modulate("10" * 176), 1)
        sender.send_raw_data(np.zeros(1000, dtype=np.complex64), 1)
        QTest.qWait(1000)

        simulator_log = dialog.ui.textEditSimulation.toPlainText()
        self.assertIn("Received message 1", simulator_log)
        self.assertIn("preamble: 11111111", simulator_log)

        self.assertIn("Mismatch for label: preamble", simulator_log)

        dialog.close()
        s.close()
Exemplo n.º 2
0
    def test_open_simulator_dialog_and_send_mismatching_message(self):
        def __wait_for_simulator_log_message(dialog, log_message):

            n = 0
            while not any(log_message in msg
                          for msg in dialog.simulator.log_messages):
                if n < 50:
                    time.sleep(0.5)
                else:
                    self.fail("Did not receive log message \"{}\"".format(
                        log_message))
                n += 1

        stc = self.form.simulator_tab_controller
        assert isinstance(stc, SimulatorTabController)

        self.__setup_project()
        self.add_all_signals_to_simulator()

        stc.simulator_scene.select_all_items()
        stc.simulator_config.project_manager.simulator_timeout_ms = 999999999

        for msg in stc.simulator_scene.get_selected_messages():
            msg.destination = self.dennis
            stc.ui.gvSimulator.message_updated.emit(msg)

        list_model = stc.ui.listViewSimulate.model()
        self.assertEqual(list_model.rowCount(), 2)
        list_model.setData(list_model.createIndex(1, 0),
                           Qt.Checked,
                           role=Qt.CheckStateRole)

        dialog = stc.get_simulator_dialog()

        network_sdr_name = NetworkSDRInterfacePlugin.NETWORK_SDR_NAME
        dialog.device_settings_rx_widget.ui.cbDevice.setCurrentText(
            network_sdr_name)

        rcv_port = util.get_free_port()
        dialog.simulator.sniffer.rcv_device.set_server_port(rcv_port)

        dialog.simulator.sniffer.adaptive_noise = False
        dialog.simulator.sniffer.automatic_center = False

        dialog.ui.btnStartStop.click()

        __wait_for_simulator_log_message(dialog, "Waiting for message 1")

        modulator = dialog.project_manager.modulators[0]  # type: Modulator
        sender = NetworkSDRInterfacePlugin(raw_mode=True, sending=True)
        sender.client_port = rcv_port

        sender.send_raw_data(modulator.modulate("1" * 352), 1)
        time.sleep(0.5)
        sender.send_raw_data(IQArray(None, np.float32, 2000), 1)

        __wait_for_simulator_log_message(dialog, "Waiting for message 2")

        sender.send_raw_data(modulator.modulate("10" * 176), 1)
        time.sleep(0.5)
        sender.send_raw_data(IQArray(None, np.float32, 2000), 1)
        __wait_for_simulator_log_message(dialog, "Mismatch for label:")

        dialog.on_timer_timeout()  # enforce writing to text view
        simulator_log = dialog.ui.textEditSimulation.toPlainText()
        self.assertIn("Received message 1", simulator_log)
        self.assertIn("preamble: 11111111", simulator_log)
        self.assertIn("Mismatch for label: preamble", simulator_log)

        dialog.close()
Exemplo n.º 3
0
    def test_open_simulator_dialog_and_send_mismatching_message(self):
        stc = self.form.simulator_tab_controller
        assert isinstance(stc, SimulatorTabController)

        self.__setup_project()
        self.add_all_signals_to_simulator()

        stc.simulator_scene.select_all_items()
        stc.simulator_config.project_manager.simulator_timeout_ms = 999999999

        for msg in stc.simulator_scene.get_selected_messages():
            msg.destination = self.dennis
            stc.ui.gvSimulator.message_updated.emit(msg)

        list_model = stc.ui.listViewSimulate.model()
        self.assertEqual(list_model.rowCount(), 2)
        list_model.setData(list_model.createIndex(1, 0), Qt.Checked, role=Qt.CheckStateRole)

        dialog = stc.get_simulator_dialog()

        network_sdr_name = NetworkSDRInterfacePlugin.NETWORK_SDR_NAME
        dialog.device_settings_rx_widget.ui.cbDevice.setCurrentText(network_sdr_name)

        rcv_port = self.get_free_port()
        dialog.simulator.sniffer.rcv_device.set_server_port(rcv_port)

        dialog.simulator.sniffer.adaptive_noise = False
        dialog.simulator.sniffer.automatic_center = False

        dialog.ui.btnStartStop.click()

        while not any("Waiting for message 1" in msg for msg in dialog.simulator.log_messages):
            logger.debug("Waiting for simulator to wait for message 1")
            time.sleep(1)

        modulator = dialog.project_manager.modulators[0]  # type: Modulator
        sender = NetworkSDRInterfacePlugin(raw_mode=True, sending=True)
        sender.client_port = rcv_port

        sender.send_raw_data(modulator.modulate("1" * 352), 1)
        time.sleep(0.5)
        sender.send_raw_data(np.zeros(1000, dtype=np.complex64), 1)

        while not any("Waiting for message 2" in msg for msg in dialog.simulator.log_messages):
            logger.debug("Waiting for simulator wait for message 2")
            time.sleep(1)

        sender.send_raw_data(modulator.modulate("10" * 176), 1)
        time.sleep(0.5)
        sender.send_raw_data(np.zeros(1000, dtype=np.complex64), 1)
        while not any("Mismatch for label:" in msg for msg in dialog.simulator.log_messages):
            logger.debug("Waiting for mismatching message")
            time.sleep(1)

        dialog.on_timer_timeout()  # enforce writing to text view
        simulator_log = dialog.ui.textEditSimulation.toPlainText()
        self.assertIn("Received message 1", simulator_log)
        self.assertIn("preamble: 11111111", simulator_log)
        self.assertIn("Mismatch for label: preamble", simulator_log)

        dialog.close()
Exemplo n.º 4
0
    def test_open_simulator_dialog_and_send_mismatching_message(self):
        stc = self.form.simulator_tab_controller
        assert isinstance(stc, SimulatorTabController)

        self.__setup_project()
        self.add_all_signals_to_simulator()

        stc.simulator_scene.select_all_items()
        stc.simulator_config.project_manager.simulator_timeout_ms = 999999999

        for msg in stc.simulator_scene.get_selected_messages():
            msg.destination = self.dennis
            stc.ui.gvSimulator.message_updated.emit(msg)

        list_model = stc.ui.listViewSimulate.model()
        self.assertEqual(list_model.rowCount(), 2)
        list_model.setData(list_model.createIndex(1, 0),
                           Qt.Checked,
                           role=Qt.CheckStateRole)

        dialog = stc.get_simulator_dialog()

        network_sdr_name = NetworkSDRInterfacePlugin.NETWORK_SDR_NAME
        dialog.device_settings_rx_widget.ui.cbDevice.setCurrentText(
            network_sdr_name)

        rcv_port = self.get_free_port()
        dialog.simulator.sniffer.rcv_device.set_server_port(rcv_port)

        dialog.simulator.sniffer.adaptive_noise = False
        dialog.simulator.sniffer.automatic_center = False

        dialog.ui.btnStartStop.click()

        while not any("Waiting for message 1" in msg
                      for msg in dialog.simulator.log_messages):
            logger.debug("Waiting for simulator to wait for message 1")
            time.sleep(1)

        modulator = dialog.project_manager.modulators[0]  # type: Modulator
        sender = NetworkSDRInterfacePlugin(raw_mode=True, sending=True)
        sender.client_port = rcv_port

        sender.send_raw_data(modulator.modulate("1" * 352), 1)
        time.sleep(0.5)
        sender.send_raw_data(np.zeros(1000, dtype=np.complex64), 1)

        while not any("Waiting for message 2" in msg
                      for msg in dialog.simulator.log_messages):
            logger.debug("Waiting for simulator wait for message 2")
            time.sleep(1)

        sender.send_raw_data(modulator.modulate("10" * 176), 1)
        time.sleep(0.5)
        sender.send_raw_data(np.zeros(1000, dtype=np.complex64), 1)
        while not any("Mismatch for label:" in msg
                      for msg in dialog.simulator.log_messages):
            logger.debug("Waiting for mismatching message")
            time.sleep(1)

        QTest.qWait(250)
        QApplication.processEvents()
        QTest.qWait(100)

        simulator_log = dialog.ui.textEditSimulation.toPlainText()
        self.assertIn("Received message 1", simulator_log)
        self.assertIn("preamble: 11111111", simulator_log)
        self.assertIn("Mismatch for label: preamble", simulator_log)

        dialog.close()