南强小屋 Design By 杰米
最近在一个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)
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),
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())
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]))
print portName_list
self.combox.SetItems(portName_list)
然后进入正题,这里根据DSR信号来触发。
#串口自动触发检测线程
class Job(threading.Thread):
...
def run(self):
while self.__running.isSet():
self.__flag.wait() # 为True时立即返回, 为False时阻塞直到内部的标识位为True后返回
print "into job function"
i=0
isOpen = serial_isOpen(i)
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:
if thread_list[i] != 1:
if ~thread_list[i].is_alive():
serial_Open(0, False)
#do something
else:
serial_Open(0, False)
#do something
break
time.sleep(1)
...
即每当DSR信号置低时触发工作
以上这篇python实现串口自动触发工作的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
标签:
python,串口,自动触发
南强小屋 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
南强小屋 Design By 杰米
暂无python实现串口自动触发工作的示例的评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?