最近在一個python工具中需要實現串口自動觸發工作的功能,之前只在winform上面實現,今天使用python試試。這里簡單記一下:
首先用wxpython實現一個Button,點擊事件綁定函數OnButtonAutoStopAll
self.button_autoStopAll = wx.Button(id=wxID_FRAME1BUTTONAUTOSTARTALL, label=u'AUTO STOP ALL',
name='button_autoStop', parent=self.staticBox_common, pos=wx.Point(8, 284),
size=wx.Size(180, 80), style=0)
python為什么叫爬蟲,self.button_autoStopAll.SetFont(wx.Font(24, wx.SWISS, wx.NORMAL, wx.BOLD, False,
u'Agency FB'))
self.button_autoStopAll.Bind(wx.EVT_BUTTON, self.OnButtonAutoStopAll,
id=wxID_FRAME1BUTTONAUTOSTARTALL)
再有ComboBox控件實現點擊下拉時自動加載當前串口名
self.combox = wx.ComboBox(self, -1, pos=wx.Point(10,100), size=wx.Size(100,50),
python調用串口、style=wx.CB_READONLY) #串口combox
self.combox.Bind(wx.EVT_COMBOBOX_DROPDOWN, self.evt_combox_dropdown)
下拉菜單事件函數
def evt_combox_dropdown(self, event):
print 'combox%d dropdown'%self.sta_num
serial_list = list(serial.tools.list_ports.comports())
python串口數據,if serial_list: #判斷是否為空
portName_list = []
#轉換serial handle為port name
for i in range(0, len(serial_list)):
portname = list(serial_list[i])
portName_list.append(str(portname[0]))
python讀取uart串口?print portName_list
self.combox.SetItems(portName_list)
然后進入正題,這里根據DSR信號來觸發。
#串口自動觸發檢測線程
class Job(threading.Thread):
...
python掃描串口,def run(self):
while self.__running.isSet():
self.__flag.wait() # 為True時立即返回, 為False時阻塞直到內部的標識位為True后返回
print "into job function"
i=0
isOpen = serial_isOpen(i)
python3串口通信,if serial_list[i]!=1 and isOpen:
now_dsr = serial_list[i].getDSR()
if now_dsr != last_dsr[i]:
last_dsr[i] = now_dsr
print 'dsr level changed to %d'%now_dsr
if now_dsr == True:
qpython、if thread_list[i] != 1:
if ~thread_list[i].is_alive():
serial_Open(0, False)
#do something
else:
serial_Open(0, False)
python和java,#do something
break
time.sleep(1)
...
即每當DSR信號置低時觸發工作
以上這篇python實現串口自動觸發工作的示例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持我們。
python 類。本文標題: python實現串口自動觸發工作的示例
本文地址: http://www.cppcns.com/jiaoben/python/264284.html
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态