示例#1
0
    def set_frequency(self, a_frequency):
        self.calibrator.frequency = a_frequency
        current_frequency = 0 if clb.is_dc_signal[
            self.current_case.signal_type] else self.calibrator.frequency
        self.ui.frequency_edit.setText(
            utils.float_to_string(current_frequency))

        self.update_current_frequency(current_frequency)
 def to_string(self):
     if self.type == "number":
         return float_to_string(self.value)
     format_string = [
         "(%s) %s (%s)",
         "(%s)%s (%s)",
         "(%s) %s(%s)",
         "(%s)%s(%s)",
     ][self.rng.randint(0, 3)]
     return format_string % (self.left_operand.to_string(), self.operator,
                             self.right_operand.to_string())
def print_error_and_exit(expression_string, value, output):
    MAX_PRINT_LENGTH = 250
    expression_output = None
    if len(expression_string) > MAX_PRINT_LENGTH:
        temp = NamedTemporaryFile("w+", encoding="utf-8", delete=False)
        temp.write(expression_string + "\n")
        expression_output = "Too large, written to %s" % colorize(
            temp.name, foreground="yellow", bold=True)
    else:
        expression_output = expression_string
    print("\t Expression: %s\n\t      Value: %s\n\tYour Output: %s\n" %
          (expression_output, colorize(
              float_to_string(value), bold=True), colorize(output, bold=True)))
    exit(1)
示例#4
0
 def data(self, index, role=Qt.DisplayRole):
     if not index.isValid() or (len(self.__points) < index.row()) or \
             (role != Qt.DisplayRole and role != Qt.EditRole and role != Qt.BackgroundRole and role != Qt.UserRole):
         return QVariant()
     if role == Qt.UserRole:
         return self.__average_data[index.row()][index.column()][self.AVERAGE_COUNT_IDX]
     elif role == Qt.BackgroundRole:
         return self.__get_cell_color(index.row(), index.column())
     else:
         value = self.__points[index.row()][index.column()]
         if index.column() not in self.__raw_columns:
             value = self.value_to_user(value)
         else:
             value = utils.float_to_string(value)
         return value
示例#5
0
    def save_point(self):
        if self.clb_state != clb.State.WAITING_SIGNAL:
            try:
                if self.measure_manager.view().is_point_measured(
                        self.current_point.amplitude,
                        self.current_point.frequency,
                        self.current_point.approach_side):

                    side_text = "СНИЗУ" if self.current_point.approach_side == PointData.ApproachSide.DOWN \
                        else "СВЕРХУ"

                    point_text = "{0}".format(
                        self.value_to_user(self.current_point.amplitude))
                    if clb.is_ac_signal[self.current_case.signal_type]:
                        point_text += " : {0} Гц".format(
                            utils.float_to_string(
                                self.current_point.frequency))

                    ask_dlg = QMessageBox(self)
                    ask_dlg.setWindowTitle("Выберите действие")
                    ask_dlg.setText(
                        "Значение {0} уже измерено для точки {1}.\n"
                        "Выберите действие для точки {3}({2})".format(
                            side_text, point_text, side_text, point_text))
                    average_btn = ask_dlg.addButton("Усреднить",
                                                    QMessageBox.YesRole)
                    overwrite_btn = ask_dlg.addButton("Перезаписать",
                                                      QMessageBox.YesRole)
                    ask_dlg.addButton("Отменить", QMessageBox.NoRole)
                    ask_dlg.exec()

                    if ask_dlg.clickedButton() == overwrite_btn:
                        self.measure_manager.view().append(self.current_point)
                    elif ask_dlg.clickedButton() == average_btn:
                        self.measure_manager.view().append(self.current_point,
                                                           a_average=True)
                else:
                    if self.clb_state == clb.State.READY:
                        self.measure_manager.view().append(self.current_point)
                    else:
                        self.measure_manager.view().append(
                            PointData(
                                a_point=self.current_point.amplitude,
                                a_frequency=self.current_point.frequency))
            except AssertionError as err:
                utils.exception_handler(err)
        else:
            self.clb_not_ready_warning()
示例#6
0
    def ask_for_start_measure(self):
        message = "Начать поверку?\n\n" \
                  "На калибраторе будет включен сигнал и установлены следующие параметры:\n\n" \
                  "Режим измерения: Фиксированный диапазон\n" \
                  "Тип сигнала: {0}\n" \
                  "Амплитуда: {1}".format(
            clb.enum_to_signal_type[self.current_case.signal_type], self.value_to_user(self.highest_amplitude))

        if clb.is_ac_signal[self.current_case.signal_type]:
            message += "\nЧастота: {0} Гц".format(
                utils.float_to_string(self.calibrator.frequency))

        reply = QMessageBox.question(self, "Подтвердите действие", message,
                                     QMessageBox.Yes | QMessageBox.No,
                                     QMessageBox.No)

        if reply == QMessageBox.Yes:
            return True
        else:
            return False
示例#7
0
    def read_variables(self):
        self.ui.variables_table.blockSignals(True)

        try:
            if self.netvars.connected():
                for visual_row in range(self.ui.variables_table.rowCount()):
                    row = int(
                        self.ui.variables_table.item(
                            visual_row, self.Column.NUMBER).text())

                    value = self.netvars.read_variable(row)
                    self.ui.variables_table.item(visual_row,
                                                 self.Column.VALUE).setText(
                                                     utils.float_to_string(
                                                         round(value, 7)))

                self.update_graph_variables_data()
        except Exception as err:
            logging.debug(utils.exception_handler(err))

        self.ui.variables_table.blockSignals(False)
示例#8
0
    def delete_point(self):
        rows = self.measure_manager.view().get_selected_rows()
        if rows:
            row_indexes = []
            deleted_points = ""
            for index_model in rows:
                point_str = self.measure_manager.view().get_point_by_row(
                    index_model.row())
                deleted_points += "\n{0}".format(point_str)
                if clb.is_ac_signal[self.current_case.signal_type]:
                    freq = self.measure_manager.view().get_frequency_by_row(
                        index_model.row())
                    deleted_points += " : {0} Гц".format(
                        utils.float_to_string(float(freq)))

                row_indexes.append(index_model.row())

            reply = QMessageBox.question(
                self, "Подтвердите действие",
                "Удалить следующие точки?\n" + deleted_points,
                QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
            if reply == QMessageBox.Yes:
                self.remove_points.emit(row_indexes)
示例#9
0
 def frequency_editing_finished(self):
     frequency_list = self.edit_frequency_widget.get_list()
     self.ui.frequency_edit.setText(";".join(
         utils.float_to_string(f) for f in frequency_list))
示例#10
0
 def process_input(self, a_input: str):
     value = float(a_input.replace(",", "."))
     value = self.bound_input(value)
     return utils.float_to_string(value)
示例#11
0
 def frequency_editing_finished(self):
     # noinspection PyUnresolvedReferences
     edit_widget = self.sender().get_main_widget()
     frequency_list = edit_widget.get_list()
     self.edit.setText(";".join(
         utils.float_to_string(f) for f in frequency_list))