Beispiel #1
0
    def __init__(self,
                 decodings,
                 signals,
                 project_manager: ProjectManager,
                 parent=None):
        """
        :type decodings: list of Encoding
        :type signals: list of Signal
        """
        # Init
        super().__init__(parent)
        self.ui = Ui_Decoder()
        self.ui.setupUi(self)
        self.setAttribute(Qt.WA_DeleteOnClose)

        # Variables
        self.old_inpt_txt = ""
        self.old_carrier_txt = ""
        self.old_decoderchain = []
        self.active_message = ""
        self.old_cutmark = ""
        self.old_morse = (1, 3)

        self.project_manager = project_manager

        # Initialize encoder
        self.decodings = decodings
        self.ui.combobox_decodings.clear()
        for decoding in self.decodings:
            self.ui.combobox_decodings.addItem(decoding.name)
        self.chainstr = []
        self.chainoptions = {}
        self.set_e()

        # Signals
        self.signals = signals if signals is not None else []
        for signal in signals:
            if signal:
                self.ui.combobox_signals.addItem(signal.name)

        # Function lists
        self.ui.basefunctions.addItem(constants.DECODING_EDGE)
        self.ui.basefunctions.addItem(constants.DECODING_MORSE)
        self.ui.basefunctions.addItem(constants.DECODING_SUBSTITUTION)
        self.ui.basefunctions.addItem(constants.DECODING_EXTERNAL)
        self.ui.additionalfunctions.addItem(constants.DECODING_INVERT)
        self.ui.additionalfunctions.addItem(constants.DECODING_DIFFERENTIAL)
        self.ui.additionalfunctions.addItem(constants.DECODING_BITORDER)
        self.ui.additionalfunctions.addItem(constants.DECODING_REDUNDANCY)
        self.ui.additionalfunctions.addItem(constants.DECODING_CARRIER)
        self.ui.additionalfunctions.addItem(constants.DECODING_DATAWHITENING)
        self.ui.additionalfunctions.addItem(constants.DECODING_ENOCEAN)
        self.ui.additionalfunctions.addItem(constants.DECODING_CUT)

        # Presets
        self.setWindowTitle("Decoding")
        self.setWindowIcon(QIcon(":/icons/icons/decoding.svg"))
        self.setAcceptDrops(True)
        self.inpt_text = "10010110"
        self.ui.inpt.setText(self.inpt_text)
        self.ui.optionWidget.setCurrentIndex(0)
        self.decoder_update()

        self.ui.substitution.setColumnCount(2)
        self.ui.substitution.setRowCount(self.ui.substitution_rows.value())
        self.ui.substitution.setHorizontalHeaderLabels(['From', 'To'])
        self.ui.substitution.setColumnWidth(0, 190)
        self.ui.substitution.setColumnWidth(1, 190)

        self.ui.saveas.setVisible(False)

        # Connects
        self.create_connects()

        try:
            self.restoreGeometry(
                constants.SETTINGS.value("{}/geometry".format(
                    self.__class__.__name__)))
        except TypeError:
            pass
Beispiel #2
0
    def __init__(self,
                 decodings,
                 signals,
                 project_manager: ProjectManager,
                 parent=None):
        """
        :type decodings: list of encoding
        :type signals: list of Signal
        """
        # Init
        super().__init__(parent)
        self.ui = Ui_Decoder()
        self.ui.setupUi(self)

        # Variables
        self.old_inpt_txt = ""
        self.old_carrier_txt = ""
        self.old_decoderchain = []
        self.active_block = ""

        self.project_manager = project_manager

        # Initialize encoder
        self.decodings = decodings
        self.ui.combobox_decodings.clear()
        for decoding in self.decodings:
            self.ui.combobox_decodings.addItem(decoding.name)
        self.chainstr = []
        self.chainoptions = {}
        self.set_e()

        # Signals
        self.signals = signals if signals is not None else []
        for i in signals:
            self.ui.combobox_signals.addItem(i.name)

        # Function lists
        self.ui.basefunctions.addItem(constants.DECODING_EDGE)
        self.ui.basefunctions.addItem(constants.DECODING_SUBSTITUTION)
        self.ui.basefunctions.addItem(constants.DECODING_EXTERNAL)
        self.ui.additionalfunctions.addItem(constants.DECODING_INVERT)
        self.ui.additionalfunctions.addItem(constants.DECODING_DIFFERENTIAL)
        self.ui.additionalfunctions.addItem(constants.DECODING_BITORDER)
        self.ui.additionalfunctions.addItem(constants.DECODING_REDUNDANCY)
        self.ui.additionalfunctions.addItem(constants.DECODING_CARRIER)
        self.ui.additionalfunctions.addItem(constants.DECODING_DATAWHITENING)

        # Presets
        self.setWindowTitle("Decoding")
        self.setAcceptDrops(True)
        self.inpt_text = "10010110"
        self.ui.inpt.setText(self.inpt_text)
        self.ui.optionWidget.setCurrentIndex(0)
        self.decoder_update()

        self.ui.substitution.setColumnCount(2)
        self.ui.substitution.setRowCount(self.ui.substitution_rows.value())
        self.ui.substitution.setHorizontalHeaderLabels(['From', 'To'])
        self.ui.substitution.setColumnWidth(0, 190)
        self.ui.substitution.setColumnWidth(1, 190)

        self.ui.saveas.setVisible(False)

        # Connects
        self.create_connects()