资源简介

使用wxpython 画UI写的一个串口小程序; 基于Mac系统的 简单的串口通信工具,附带源码。 有需要的可以参考一下

资源截图

代码片段和文件信息

import wx
import m_serilport
import py_seril

import thread

import sys
reload(sys)

connected = False

__serial_port_name = None

class MainWindow(m_serilport.Myframe1):
    “““docstring for mainwindow“““
    def init_mainwid(self):
        self.box_serilportlists.Clear()
        self.box_settings.SetLabelText(‘115200‘)        # default 115200

        self.box_settings.AppendItems([“9600“ “19200“ “38400“ “43000“ “56000“ “57600“ “115200“])
    def get_all_ports(self):
        port_names = py_seril.getserialportnames()
        for port in port_names:
            self.box_serilportlists.AppendItems([port[0]])
        try:
            self.box_serilportlists.SetValue(port_names[1][0])
        except Exception as e:
            self.box_serilportlists.SetValue(port_names[0][0])

    def send_cmd(self event):
        if __serial_port_name.isOpen():
            __serial_port_name.write(str(self.txt_cmd.Value + ‘\r\n‘))
            self.txt_result_showd.AppendText(“send: “ + self.txt_cmd.Value +  “\n“)

    def bt_connect_serialport(self event):
        if self.box_serilportlists.Value == None:
            self.txt_result_showd.SetValue(“No serial port selected!“)
        elif not self.box_serilportlists.Value == None:
            port_name = self.box_serilportlists.Value
            baudrate = int (self.box_settings.Value)
            global __serial_port_name 
            __serial_port_name= py_seril.open_serial(port_name baudrate)
            global connected
            connected = True
            thread.start_new_thread(self.read_data_background ())


    def bt_disconnect_serialport(self event):
        global __serial_port_name 
        global connected
        connected = False
        __serial_port_name.close()
        print ‘serial port: ‘ + __serial_port_name.name + ‘ closed‘
    def read_data_background(self):
        global connected
        global __serial_port_name 
        while connected == True:
            try:
                if __serial_port_name.inWaiting() > 0:
                    data = __serial_port_name.read(size = __serial_port_name.inWaiting())
                    self.txt_result_showd.AppendText(‘receive: ‘ +  data)
            except Exception as e:
                print ‘read data back faild‘
if __name__ == ‘__main__‘:
    app = wx.App()
    mainwindow = MainWindow(None)
    mainwindow.init_mainwid()
    mainwindow.get_all_ports()          # show port name list on ui

    mainwindow.Show()
    app.MainLoop()

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-03-13 14:58  serial\
     文件        4200  2018-03-12 16:36  serial\m_serilport.py
     目录           0  2018-03-13 14:59  __MACOSX\
     目录           0  2018-03-13 14:59  __MACOSX\serial\
     文件         210  2018-03-12 16:36  __MACOSX\serial\._m_serilport.py
     文件        2489  2018-03-13 14:49  serial\main_win_test.py
     文件         210  2018-03-13 14:49  __MACOSX\serial\._main_win_test.py
     文件         489  2018-03-13 14:29  serial\py_seril.py
     文件         210  2018-03-13 14:29  __MACOSX\serial\._py_seril.py

评论

共有 条评论