예제 #1
0
    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)
예제 #2
0
    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()