def on_save_clicked(self): data = self.device.data[:self.device.current_index] dev = self.device big_val = Formatter.big_value_with_suffix timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") initial_name = "{0}-{1}-{2}Hz-{3}Sps".format(dev.name, timestamp, big_val(dev.frequency), big_val(dev.sample_rate)) if dev.bandwidth_is_adjustable: initial_name += "-{}Hz.wav".format(big_val(dev.bandwidth)) initial_name = initial_name.replace( Formatter.local_decimal_seperator(), "_").replace("_000", "") FileOperator.save_data(data, initial_name, sample_rate=20e6, long_record=True) # filename = FileOperator.save_data_dialog(initial_name, data, # sample_rate=dev.sample_rate) # filename = self.recorded_files self.already_saved = True # if filename is not None and filename not in self.recorded_files: # self.recorded_files.append(filename) self.close()
def test_insert_sine_plugin(self): insert_sine_plugin = self.sframe.ui.gvSignal.insert_sine_plugin num_samples = 10000 tests.utils_testing.short_wait() dialog = insert_sine_plugin.get_insert_sine_dialog( original_data=self.signal.data, position=2000, sample_rate=self.signal.sample_rate, num_samples=num_samples) graphics_view = dialog.graphicsViewSineWave # type: ZoomableGraphicView while not dialog.doubleSpinBoxAmplitude.isEnabled(): tests.utils_testing.short_wait() self.assertEqual(int(graphics_view.sceneRect().width()), self.signal.num_samples + num_samples) self.assertEqual(insert_sine_plugin.insert_indicator.rect().width(), num_samples) self.assertEqual(insert_sine_plugin.insert_indicator.rect().x(), 2000) dialog.doubleSpinBoxAmplitude.setValue(0.1) dialog.doubleSpinBoxAmplitude.editingFinished.emit() self.assertEqual(insert_sine_plugin.amplitude, 0.1) while not dialog.doubleSpinBoxAmplitude.isEnabled(): tests.utils_testing.short_wait() dialog.doubleSpinBoxFrequency.setValue(1e6) dialog.doubleSpinBoxFrequency.editingFinished.emit() self.assertEqual(insert_sine_plugin.frequency, 1e6) while not dialog.doubleSpinBoxAmplitude.isEnabled(): tests.utils_testing.short_wait() dialog.doubleSpinBoxPhase.setValue(100) dialog.doubleSpinBoxPhase.editingFinished.emit() self.assertEqual(insert_sine_plugin.phase, 100) while not dialog.doubleSpinBoxAmplitude.isEnabled(): tests.utils_testing.short_wait() dialog.doubleSpinBoxSampleRate.setValue(2e6) dialog.doubleSpinBoxSampleRate.editingFinished.emit() self.assertEqual(insert_sine_plugin.sample_rate, 2e6) while not dialog.doubleSpinBoxAmplitude.isEnabled(): tests.utils_testing.short_wait() dialog.doubleSpinBoxNSamples.setValue(0.5e6) dialog.doubleSpinBoxNSamples.editingFinished.emit() self.assertEqual(insert_sine_plugin.num_samples, 0.5e6) while not dialog.doubleSpinBoxAmplitude.isEnabled(): tests.utils_testing.short_wait() sep = Formatter.local_decimal_seperator() self.assertEqual(dialog.lineEditTime.text(), "250" + sep + "000m")
def test_insert_sine_plugin(self): insert_sine_plugin = self.sframe.ui.gvSignal.insert_sine_plugin num_samples = 10000 dialog = insert_sine_plugin.get_insert_sine_dialog( original_data=self.sframe.signal.iq_array.data, position=2000, sample_rate=self.sframe.signal.sample_rate, num_samples=num_samples) graphics_view = dialog.graphicsViewSineWave # type: ZoomableGraphicView self.__wait_for_spinbox_enabled(dialog) self.assertEqual(int(graphics_view.sceneRect().width()), self.sframe.signal.num_samples + num_samples) self.assertEqual(insert_sine_plugin.insert_indicator.rect().width(), num_samples) self.assertEqual(insert_sine_plugin.insert_indicator.rect().x(), 2000) dialog.doubleSpinBoxAmplitude.setValue(0.1) dialog.doubleSpinBoxAmplitude.editingFinished.emit() self.assertEqual(insert_sine_plugin.amplitude, 0.1) self.__wait_for_spinbox_enabled(dialog) dialog.doubleSpinBoxFrequency.setValue(1e6) dialog.doubleSpinBoxFrequency.editingFinished.emit() self.assertEqual(insert_sine_plugin.frequency, 1e6) self.__wait_for_spinbox_enabled(dialog) dialog.doubleSpinBoxPhase.setValue(100) dialog.doubleSpinBoxPhase.editingFinished.emit() self.assertEqual(insert_sine_plugin.phase, 100) self.__wait_for_spinbox_enabled(dialog) dialog.doubleSpinBoxSampleRate.setValue(2e6) dialog.doubleSpinBoxSampleRate.editingFinished.emit() self.assertEqual(insert_sine_plugin.sample_rate, 2e6) self.__wait_for_spinbox_enabled(dialog) dialog.doubleSpinBoxNSamples.setValue(0.5e6) dialog.doubleSpinBoxNSamples.editingFinished.emit() self.assertEqual(insert_sine_plugin.num_samples, 0.5e6) self.__wait_for_spinbox_enabled(dialog) sep = Formatter.local_decimal_seperator() self.assertEqual(dialog.lineEditTime.text(), "250" + sep + "000m") # Close the dialog via finished dialog.finished.emit(0) QApplication.instance().processEvents() QTest.qWait(self.CLOSE_TIMEOUT)
def on_save_clicked(self): data = self.device.data[:self.device.current_index] dev = self.device big_val = Formatter.big_value_with_suffix initial_name = "{0} {1}Hz {2}Sps {3}Hz.complex".format(dev.name, big_val(dev.frequency), big_val(dev.sample_rate), big_val(dev.bandwidth)).replace( Formatter.local_decimal_seperator(), "_").replace("_000", "") filename = FileOperator.save_data_dialog(initial_name, data, parent=self) self.already_saved = True if filename is not None and filename not in self.recorded_files: self.recorded_files.append(filename)
def on_save_clicked(self): data = self.device.data[:self.device.current_index] dev = self.device big_val = Formatter.big_value_with_suffix initial_name = "{0}-{1}Hz-{2}Sps".format(dev.name, big_val(dev.frequency), big_val(dev.sample_rate)) if dev.bandwidth_is_adjustable: initial_name += "-{}Hz".format(big_val(dev.bandwidth)) initial_name = initial_name.replace(Formatter.local_decimal_seperator(), "_").replace("_000", "") filename = FileOperator.save_data_dialog(initial_name + ".complex", data, parent=self) self.already_saved = True if filename is not None and filename not in self.recorded_files: self.recorded_files.append(filename)
def on_save_clicked(self): data = self.device.data[:self.device.current_index] dev = self.device big_val = Formatter.big_value_with_suffix timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") initial_name = "{0}-{1}-{2}Hz-{3}Sps".format(dev.name, timestamp, big_val(dev.frequency), big_val(dev.sample_rate)) if dev.bandwidth_is_adjustable: initial_name += "-{}Hz".format(big_val(dev.bandwidth)) initial_name = initial_name.replace( Formatter.local_decimal_seperator(), "_").replace("_000", "") filename = FileOperator.ask_signal_file_name_and_save( initial_name, data, sample_rate=dev.sample_rate, parent=self) self.already_saved = True if filename is not None and filename not in self.recorded_files: self.recorded_files.append(filename)
def record_markered_diapazone(self, my_sel_freq): try: bw = abs(my_sel_freq[1] - my_sel_freq[0]) except: return old_freq = self.device.frequency old_gain = self.device.gain self.on_stop_clicked() self.device = VirtualDevice(BackendHandler(), self.selected_device_name, Mode.receive) self.device.frequency = my_sel_freq[0] + bw / 2 sample_rate = 20e6 self.device.sample_rate = sample_rate self.device.bandwidth = bw self.device.start() time.sleep(0.1) while self.device.data[:self.device. current_index].size < 1 * sample_rate: pass self.device.stop('lol_1') data = self.device.data[:self.device.current_index] dev = self.device big_val = Formatter.big_value_with_suffix timestamp = datetime.now().strftime("%Y-%m-%d_%H:%M:%S") freq = 6800e6 + self.status_k - my_sel_freq[0] + bw / 2 initial_name = "{0}-{1}-{2}Hz-{3}Sps".format(dev.name, timestamp, big_val(freq), big_val(dev.sample_rate)) if dev.bandwidth_is_adjustable: initial_name += "-{}Hz.wav".format(big_val(dev.bandwidth)) initial_name = initial_name.replace( Formatter.local_decimal_seperator(), "_").replace("_000", "") FileOperator.save_data(data, initial_name, sample_rate=sample_rate) self.files_recorded.emit(initial_name) self.init_device() self.device.frequency = old_freq self.device.gain = old_gain self.device.sample_rate = 20e6 self.change_tab.emit()
def stop_iq_read(self): self.on_stop_clicked() data = self.device.data[:self.device.current_index] dev = self.device big_val = Formatter.big_value_with_suffix timestamp = datetime.now().strftime("%Y-%m-%d_%H:%M:%S") initial_name = "{0}-{1}-{2}Hz-{3}Sps".format(dev.name, timestamp, big_val(dev.frequency), big_val(dev.sample_rate)) if dev.bandwidth_is_adjustable: initial_name += "-{}Hz.wav".format(big_val(dev.bandwidth)) initial_name = initial_name.replace( Formatter.local_decimal_seperator(), "_").replace("_000", "") FileOperator.save_data(data, initial_name, sample_rate=dev.sample_rate) self.files_recorded.emit(initial_name) self.init_device() self.device.frequency = self.old_freq self.old_freq = None self.on_start_clicked() self.change_tab.emit()
def test_insert_sine_plugin(self): insert_sine_plugin = self.sframe.ui.gvSignal.insert_sine_plugin num_samples = 10000 dialog = insert_sine_plugin.get_insert_sine_dialog(original_data=self.sframe.signal.data, position=2000, sample_rate=self.sframe.signal.sample_rate, num_samples=num_samples) graphics_view = dialog.graphicsViewSineWave # type: ZoomableGraphicView while not dialog.doubleSpinBoxAmplitude.isEnabled(): QApplication.instance().processEvents() QTest.qWait(10) self.assertEqual(int(graphics_view.sceneRect().width()), self.sframe.signal.num_samples + num_samples) self.assertEqual(insert_sine_plugin.insert_indicator.rect().width(), num_samples) self.assertEqual(insert_sine_plugin.insert_indicator.rect().x(), 2000) dialog.doubleSpinBoxAmplitude.setValue(0.1) dialog.doubleSpinBoxAmplitude.editingFinished.emit() self.assertEqual(insert_sine_plugin.amplitude, 0.1) while not dialog.doubleSpinBoxAmplitude.isEnabled(): self.app.processEvents() QTest.qWait(10) dialog.doubleSpinBoxFrequency.setValue(1e6) dialog.doubleSpinBoxFrequency.editingFinished.emit() self.assertEqual(insert_sine_plugin.frequency, 1e6) while not dialog.doubleSpinBoxAmplitude.isEnabled(): self.app.processEvents() QTest.qWait(10) dialog.doubleSpinBoxPhase.setValue(100) dialog.doubleSpinBoxPhase.editingFinished.emit() self.assertEqual(insert_sine_plugin.phase, 100) while not dialog.doubleSpinBoxAmplitude.isEnabled(): self.app.processEvents() QTest.qWait(10) dialog.doubleSpinBoxSampleRate.setValue(2e6) dialog.doubleSpinBoxSampleRate.editingFinished.emit() self.assertEqual(insert_sine_plugin.sample_rate, 2e6) while not dialog.doubleSpinBoxAmplitude.isEnabled(): self.app.processEvents() QTest.qWait(10) dialog.doubleSpinBoxNSamples.setValue(0.5e6) dialog.doubleSpinBoxNSamples.editingFinished.emit() self.assertEqual(insert_sine_plugin.num_samples, 0.5e6) while not dialog.doubleSpinBoxAmplitude.isEnabled(): self.app.processEvents() QTest.qWait(10) sep = Formatter.local_decimal_seperator() self.assertEqual(dialog.lineEditTime.text(), "250" + sep + "000m") # Close the dialog via finished dialog.finished.emit(0) QApplication.instance().processEvents() QTest.qWait(self.CLOSE_TIMEOUT)
def test_insert_sine_plugin(self): insert_sine_plugin = self.sframe.ui.gvSignal.insert_sine_plugin insert_sine_plugin.create_dialog_connects() while not insert_sine_plugin.dialog_ui.doubleSpinBoxAmplitude.isEnabled( ): app.processEvents() QTest.qWait(10) insert_sine_plugin.dialog_ui.doubleSpinBoxAmplitude.setValue(0.1) insert_sine_plugin.dialog_ui.doubleSpinBoxAmplitude.editingFinished.emit( ) self.assertEqual(insert_sine_plugin.amplitude, 0.1) while not insert_sine_plugin.dialog_ui.doubleSpinBoxAmplitude.isEnabled( ): app.processEvents() QTest.qWait(10) insert_sine_plugin.dialog_ui.doubleSpinBoxFrequency.setValue(1e6) insert_sine_plugin.dialog_ui.doubleSpinBoxFrequency.editingFinished.emit( ) self.assertEqual(insert_sine_plugin.frequency, 1e6) while not insert_sine_plugin.dialog_ui.doubleSpinBoxAmplitude.isEnabled( ): app.processEvents() QTest.qWait(10) insert_sine_plugin.dialog_ui.doubleSpinBoxPhase.setValue(100) insert_sine_plugin.dialog_ui.doubleSpinBoxPhase.editingFinished.emit() self.assertEqual(insert_sine_plugin.phase, 100) while not insert_sine_plugin.dialog_ui.doubleSpinBoxAmplitude.isEnabled( ): app.processEvents() QTest.qWait(10) insert_sine_plugin.dialog_ui.doubleSpinBoxSampleRate.setValue(2e6) insert_sine_plugin.dialog_ui.doubleSpinBoxSampleRate.editingFinished.emit( ) self.assertEqual(insert_sine_plugin.sample_rate, 2e6) while not insert_sine_plugin.dialog_ui.doubleSpinBoxAmplitude.isEnabled( ): app.processEvents() QTest.qWait(10) insert_sine_plugin.dialog_ui.doubleSpinBoxNSamples.setValue(0.5e6) insert_sine_plugin.dialog_ui.doubleSpinBoxNSamples.editingFinished.emit( ) self.assertEqual(insert_sine_plugin.num_samples, 0.5e6) while not insert_sine_plugin.dialog_ui.doubleSpinBoxAmplitude.isEnabled( ): app.processEvents() QTest.qWait(10) sep = Formatter.local_decimal_seperator() self.assertEqual(insert_sine_plugin.dialog_ui.lineEditTime.text(), "250" + sep + "000m")