資源簡介
使用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
評論
共有 條評論