def _set_get_para(self, method="离散傅里叶逆变换"): para_group = QGroupBox("输入建模参数") para_group.setMaximumHeight(150) # 设置4个标签 --------- self.lab_dim = QLabel("分形维数:") if method == "离散傅里叶逆变换": self.lab_sq = QLabel("高度Rq:") else: self.lab_sq.setText("尺度系数:") self.lab_num = QLabel("采样点数:") self.lab_inter = QLabel("采样间隔:") # 设置4个编辑控件 -------- self.edt_dim = QLineEdit() self.edt_dim.setText("1.2") reg = QRegExp("1+(.[0-9]{1,3})?$") pValidator = QRegExpValidator(self) pValidator.setRegExp(reg) self.edt_dim.setValidator(pValidator) self.edt_sq = QLineEdit() self.edt_sq.setText("1.0") self.cbx_num = QComboBox() self.cbx_num.addItems( ["64", "128", "256", "512", "1024", "2048", "4096"]) self.cbx_num.setCurrentIndex(3) self.edt_inter = QLineEdit() self.edt_inter.setText("1") self.chx_stable = QCheckBox("平稳分形") if method == "随机中点位移法": self.chx_stable.setDisabled(True) self.chx_stable.setChecked(False) else: self.chx_stable.setDisabled(False) self.chx_stable.setChecked(True) form_layout = QFormLayout() form_layout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.lab_dim) form_layout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.edt_dim) form_layout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.lab_sq) form_layout.setWidget(1, QtWidgets.QFormLayout.FieldRole, self.edt_sq) form_layout.setWidget(2, QtWidgets.QFormLayout.LabelRole, self.lab_num) form_layout.setWidget(2, QtWidgets.QFormLayout.FieldRole, self.cbx_num) form_layout.setWidget(3, QtWidgets.QFormLayout.LabelRole, self.lab_inter) form_layout.setWidget(3, QtWidgets.QFormLayout.FieldRole, self.edt_inter) form_layout.setWidget(4, QtWidgets.QFormLayout.LabelRole, self.chx_stable) para_group.setLayout(form_layout) self.right_layout_lev1.addWidget(para_group)
def __init__(self): super().__init__() # 创建串口实例对象 self.serial = serial.Serial() # 创建 QTimer 实例对象 self.timer1 = QTimer() self.timer2 = QTimer() self.time = QTime() self.now_time = '' # 创建显示窗口 self.main_window = QMainWindow() self.setupUi(self.main_window) self.retranslateUi(self.main_window) # 正则表达式相关 bit_3_validator = QRegExpValidator() bit_3_validator.setRegExp(QRegExp('[0-9]{1,3}')) self.fresh_waste_edit.setValidator(bit_3_validator) self.fresh_edit.setValidator(bit_3_validator) self.waste_edit.setValidator(bit_3_validator) self.blood_edit.setValidator(bit_3_validator) self.ultrafiltration_edit.setValidator(bit_3_validator) self.debug_send_edit.setValidator(bit_3_validator) # 储存所有存在的串口 字典 self.Com_Dict = {} # 创建新csv文件标志 self.create_file_flag = True self.write_data_flag = False # 要保存的当前的文件名 self.now_file_name = None # 串口接收的字符串 self.received_bit_data = None self.received_data = None # 图像对象 self.fresh_pressure_plot = None self.waste_pressure_plot = None self.fresh_flow_plot = None self.waste_flow_plot = None self.blood_flow_plot = None self.artery_pressure_plot = None self.vein_pressure_plot = None self.weight_1_plot = None self.weight_2_plot = None self.weight_3_plot = None self.tmp_plot = None # self.ph_plot = None # self.temperature_plot = None # 保存收到的数据 list self.x = 0 self.list_fresh_pressure = [0] * 10 self.list_waste_pressure = [0] * 10 self.list_fresh_flow = [0] * 10 self.list_waste_flow = [0] * 10 self.list_blood_flow = [0] * 10 self.list_artery_pressure = [0] * 10 self.list_vein_pressure = [0] * 10 self.list_weight_1 = [0] * 10 self.list_weight_2 = [0] * 10 self.list_weight_3 = [0] * 10 self.list_tmp = [0] * 10 # self.list_ph = [0]*1000 # 接收到的最新的数据 self.flag = "" self.fresh_pressure_data = 0 self.waste_pressure_data = 0 self.fresh_flow_data = 0 self.waste_flow_data = 0 self.blood_flow_data = 0 self.artery_pressure_data = 0 self.vein_pressure_data = 0 self.weight_1_data = 0 self.weight_2_data = 0 self.weight_3_data = 0 # 跨膜压 self.tmp_data = 0 self.initial_temperature_data = 0 self.process_temperature_data = 0 # self.ph_data = 0 self.ultra_filtration_data = 0 # 判断是否为首次接收到数据 self.times = 0 # 数据为空次数 self.count_err = 0 self.num = 0 self.start_stop_flag = False self.init() self.port_check()