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)
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
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()
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
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)
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)
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))
def process_input(self, a_input: str): value = float(a_input.replace(",", ".")) value = self.bound_input(value) return utils.float_to_string(value)
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))