コード例 #1
0
    def _update_trigger_levels_hystereses_condition_times(self):
        tr = self._trigger_source
        level_count = len(tr.levels) if hasattr(tr, 'levels') else 0
        logging.debug("tr.level.count="+str(level_count))
        for i in range(len(self._menu_trigger_levels)):
            menu = self._menu_trigger_levels[i]
            menu.menuAction().setVisible(level_count > i)
            if menu.menuAction().isVisible():
                value = tr.levels[i]
                logging.debug("tr.levels="+str(tr.levels[i]))
                for action in menu.actions():
                    action.setChecked(utils.unwrap_QVariant(action.data())["value"] == value)

        hysteresis_count = len(tr.hystereses) if hasattr(tr, 'hystereses') else 0
        for i in range(len(self._menu_trigger_hystereses)):
            menu = self._menu_trigger_hystereses[i]
            menu.menuAction().setVisible(hysteresis_count > i)
            if menu.menuAction().isVisible():
                value = tr.hystereses[i]
                for action in menu.actions():
                    action.setChecked(utils.unwrap_QVariant(action.data())["value"] == value)

        self._menu_trigger_condition.menuAction().setVisible(hasattr(tr, 'conditions') and tr.conditions != libtiepie.TCM_NONE)
        if self._menu_trigger_condition.menuAction().isVisible():
            self._menu_trigger_condition.clear()
            for tc in TRIGGER_CONDITIONS:
                if tr.conditions & tc["value"] != 0:
                    action = self._menu_trigger_condition.addAction(tc["name"])
                    action.setCheckable(True)
                    action.setChecked(tr.condition == tc["value"])
                    action.setData(tc["value"])
                    action.toggled.connect(self._trigger_condition_changed)
                    self._menu_trigger_kind_act_group.addAction(action)

        self._update_trigger_times()
コード例 #2
0
    def _sample_frequency_changed(self, checked):
        if checked:
            self._scp.sample_frequency = utils.unwrap_QVariant(self.sender().data())

            self._update_record_length()
            # TODO: self._update_trigger_time_out()
            self._update_trigger_times()
コード例 #3
0
 def _channel_range_changed(self, checked):
     if checked:
         data = utils.unwrap_QVariant(self.sender().data())
         if data["range"] is None:
             self._scp.channels[data["ch"]].auto_ranging = True
         else:
             self._scp.channels[data["ch"]].range = data["range"]
コード例 #4
0
 def _persistency_changed(self, checked):
     if checked:
         self.persistency = utils.unwrap_QVariant(self.sender().data())
         logging.debug('persistency changed to '+str(self.persistency))
     else:
         self.persistency = 1
     if self.persistency != 1:
       QMessageBox.about(self, "Warning", "Persistency!=1 is causing memory leaks!") #,icon=QMessageBox.Warning)
コード例 #5
0
 def _trigger_hysteresis_changed(self, checked):
     if checked:
         data = utils.unwrap_QVariant(self.sender().data())
         if data["value"] is None:
             value, ok = QInputDialog.getDouble(self, "", "Enter trigger hysteresis:", self._trigger_source.hystereses[data["index"]] * 100, 0, 100)
             if ok:
                 self._trigger_source.hystereses[data["index"]] = value
         else:
             self._trigger_source.hystereses[data["index"]] = data["value"]
コード例 #6
0
 def _pre_sample_ratio_changed(self, checked):
     if checked:
         value = utils.unwrap_QVariant(self.sender().data())
         if value is None:
             value, ok = QInputDialog.getDouble(self, "", "Enter pre sample ratio:", self._scp.pre_sample_ratio, 0, 10)
             if ok:
                 self._scp.pre_sample_ratio = value
         else:
             self._scp.pre_sample_ratio = value
コード例 #7
0
 def _record_length_changed(self, checked):
     if checked:
         value = utils.unwrap_QVariant(self.sender().data())
         if value is None:
             value, ok = QInputDialog.getInt(self, "", "Enter record length:", self._scp.record_length, 1, self._scp.verify_record_length(RECORD_LENGTH_MAX))
             if ok:
                 self._scp.record_length = value
         else:
             self._scp.record_length = value
コード例 #8
0
 def _trigger_timeout_changed(self, checked):
     if checked:
         value = utils.unwrap_QVariant(self.sender().data())
         if value is None:
             max = self._scp.verify_trigger_time_out(1e100)
             value, ok = QInputDialog.getDouble(self, "", "Enter trigger time out:", self._scp.trigger_time_out, 0, max, 3)
             if ok:
                 self._scp.trigger_time_out = value
         else:
             self._scp.trigger_time_out = value
コード例 #9
0
 def _trigger_time_changed(self, checked):
     if checked:
         data = utils.unwrap_QVariant(self.sender().data())
         if data["value"] is None:
             min = self._trigger_source.times.verify(data["index"], 1e-100)
             max = self._trigger_source.times.verify(data["index"], 1e100)
             value, ok = QInputDialog.getDouble(self, "", "Enter trigger time:", self._trigger_source.times[data["index"]], min, max, 9)
             if ok:
                 self._trigger_source.times[data["index"]] = value
         else:
             self._trigger_source.times[data["index"]] = data["value"]
コード例 #10
0
    def _trigger_source_changed(self, checked):
        data = utils.unwrap_QVariant(self.sender().data())
        if "ch" in data:
            tr = self._scp.channels[data["ch"]].trigger
        elif "trin" in data:
            tr = self._scp.trigger_inputs[data["trin"]]

        tr.enabled = checked

        if checked:
            self._trigger_source = tr
            self._update_trigger_source()
コード例 #11
0
    def _sample_frequency_changed(self, checked):
        if checked:
            value = utils.unwrap_QVariant(self.sender().data())
            if value is None:
                value, ok = QInputDialog.getDouble(self, "", "Enter sample frequency:", self._scp.sample_frequency, 1, self._scp.sample_frequency_max)
                if ok:
                    self._scp.sample_frequency = value
            else:
                self._scp.sample_frequency = value

            self._update_record_length()
            # TODO: self._update_trigger_time_out()
            self._update_trigger_times()
コード例 #12
0
 def _channel_gain_changed(self, checked):
     if checked:
         data = utils.unwrap_QVariant(self.sender().data())
         chnum = data["ch"]
         self.gain[chnum] = data["range"]
         logging.debug('channel_gain_changed for channel '+str(chnum)+' to '+str(data["range"]))
         if data["range"] is None:
             self._scp.channels[chnum].auto_ranging = True
         else:
             value = data["range"]*self.nDiv
             logging.debug('changing range to '+str(value))
             self._scp.channels[data["ch"]].range = value
         self._update_labels()
コード例 #13
0
 def _channel_enabled_changed(self, checked):
     self._scp.channels[utils.unwrap_QVariant(self.sender().data())].enabled = checked
     self._update_sample_frequency()
     self._update_labels()
コード例 #14
0
 def _record_length_changed(self, checked):
     if checked:
         self._scp.record_length = utils.unwrap_QVariant(self.sender().data())
コード例 #15
0
 def _trigger_time_changed(self, checked):
     if checked:
         data = utils.unwrap_QVariant(self.sender().data())
         self._trigger_source.times[data["index"]] = data["value"]
コード例 #16
0
 def _trigger_condition_changed(self, checked):
     if checked:
         self._trigger_source.condition = utils.unwrap_QVariant(self.sender().data())
         self._update_trigger_times()
コード例 #17
0
 def _trigger_level_changed(self, checked):
     if checked:
         data = utils.unwrap_QVariant(self.sender().data())
         logging.debug("_trigger_source.levels "+str(data["index"])+", "+str(data["value"]))
         self._trigger_source.levels[data["index"]] = data["value"]
コード例 #18
0
 def _trigger_kind_changed(self, checked):
     if checked:
         self._trigger_source.kind = utils.unwrap_QVariant(self.sender().data())
         self._update_trigger_levels_hystereses_condition_times()
コード例 #19
0
 def _pre_sample_ratio_changed(self, checked):
     if checked:
         self._scp.pre_sample_ratio = utils.unwrap_QVariant(self.sender().data())
コード例 #20
0
 def _trigger_timeout_changed(self, checked):
     if checked:
         self._scp.trigger_time_out = utils.unwrap_QVariant(self.sender().data())
コード例 #21
0
 def _channel_coupling_changed(self, checked):
     if checked:
         data = utils.unwrap_QVariant(self.sender().data())
         self._scp.channels[data["ch"]].coupling = data["ck"]
         self._update_channel_gain(data["ch"])