Example #1
0
 def on_btn_pause_clicked(self):
     printlog('btn_pause click')
     if self.btn_pause.text() == '继续' or self.btn_pause.text() == '开始':
         self.timer.start(port_time * 10)
         self.port_worker.pause = False
         self.btn_pause.setText("暂停")
     else:
         self.timer.stop()
         self.port_worker.pause = True
         self.btn_pause.setText("继续")
Example #2
0
    def get_data_from_interface(self):
        if not self.ser.is_open:
            printlog('端口开启')
            self.ser.open()  # enable port
        else:
            printlog('端口已经开启')

        while True:
            line_str = self.ser.readline()
            # print(line_str)
            yield line_str
Example #3
0
    def cbb_port_init(self):
        '''
        init of combobox (select  port)
        :return:
        '''
        self.cbb_group.setEnabled(False)

        # data
        self.cbb_port.clear()
        # for i in range(self.cbb_port.count() + 1):
        #     print(i)
        #     print(self.cbb_port.removeItem(i))

        self.port_list = list(serial.tools.list_ports.comports())
        printlog('串口列表:%s' % self.port_list)
        if len(self.port_list) != 0:
            for port in self.port_list:
                self.cbb_port.addItem(port.__str__())
Example #4
0
    def update(self):
        # get data from queue and show it
        # get data
        printlog('主线程开始收数据')

        current_data = self.phone_queue.receive_message()

        if current_data:
            data_1, data_2 = current_data

            printlog('主线程收到数据:%s,%s' % (data_1, data_2))
            self.x_data.append(data_1)
            self.y_data.append(data_2)

            # printlog('x_data:%s' % self.x_data)
            # printlog('y_data:%s' % self.y_data)

            self.curve.setData(self.x_data, self.y_data)
Example #5
0
    def run(self):
        # open port
        with PortManager(self.port_num) as pm:
            source_data = pm.get_data_from_interface()
            i = 0
            # open excel
            with ExcelOperation() as eo:
                for d in source_data:
                    # print('串口传来的原始数据:%s\n其长度为:%s' % (d, len(d)))
                    if len(d) >= 53:
                        # try:
                        #     print('读一行数据:%s' % d.decode('utf-8'))
                        #
                        # except Exception as ex:
                        #     print("读取出错:%s" % ex)

                        if self.working:
                            s = d.decode('utf-8')
                            search = re.match(
                                r'air pressure:(.*)\s*force:(.*)\s*displacement:(.*)\s*',
                                s, re.M | re.I)
                            if search:
                                save_data = '%s %s %s' % (search.group(1),
                                                          search.group(2),
                                                          search.group(3))
                                # print(save_data)
                                printlog('get data from port:%s' % save_data)
                                # save data into excel
                                eo.write_data(save_data)
                                # i++
                                i += 1

                                # if not pause return data or ''
                                if not self.pause and i >= 10:
                                    i = 0
                                    self.paint_queue.send_message(save_data)
                        else:
                            printlog('break')
                            break
Example #6
0
 def getdata(self):
     if self.type == 1:
         printlog('air_pressure,force')
         return self.air_pressure, self.force
     elif self.type == 2:
         printlog('displacement,force')
         return self.displacement, self.force
     elif self.type == 3:
         printlog('air_pressure,displacement')
         return self.air_pressure, self.displacement
     else:
         return 0, 0
Example #7
0
 def port_check(self):
     printlog('端口检测')
     if len(self.port_list) != len(list(
             serial.tools.list_ports.comports())):
         self.cbb_port_init()
Example #8
0
 def on_btn_clear_paint_clicked(self):
     printlog('on_btn_clear_paint_clicked')
     self.x_data.clear()
     self.y_data.clear()
     self.curve.setData(self.x_data, self.y_data)
     QApplication.processEvents()
Example #9
0
 def on_btn_refresh_port_clicked(self):
     printlog('on_btn_refresh_port_clicked')
     self.cbb_port_init()