python实现串口自动触发工作的示例


Posted in Python onJuly 02, 2019

最近在一个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 相关文章推荐
videocapture库制作python视频高速传输程序
Dec 23 Python
对于Python的框架中一些会话程序的管理
Apr 20 Python
python获取网页中所有图片并筛选指定分辨率的方法
Mar 31 Python
python随机数分布random测试
Aug 27 Python
python对列进行平移变换的方法(shift)
Jan 10 Python
python爬虫 execjs安装配置及使用
Jul 30 Python
python 图像处理画一个正弦函数代码实例
Sep 10 Python
pytorch-神经网络拟合曲线实例
Jan 15 Python
Pandas时间序列基础详解(转换,索引,切片)
Feb 26 Python
jupyter notebook 参数传递给shell命令行实例
Apr 10 Python
Python结合Window计划任务监测邮件的示例代码
Aug 05 Python
详解Python中第三方库Faker
Sep 25 Python
python常用函数与用法示例
Jul 02 #Python
pandas DataFrame 行列索引及值的获取的方法
Jul 02 #Python
python for和else语句趣谈
Jul 02 #Python
python交互模式下输入换行/输入多行命令的方法
Jul 02 #Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 #Python
python格式化输出保留2位小数的实现方法
Jul 02 #Python
Python 获取ftp服务器文件时间的方法
Jul 02 #Python
You might like
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
2020/05/27 PHP
激活 ActiveX 控件
2006/10/09 Javascript
仿迅雷焦点广告效果(JQuery版)
2008/11/19 Javascript
JS 进度条效果实现代码整理
2011/05/21 Javascript
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
jQuery之折叠面板的深入解析
2013/06/19 Javascript
jquery实现浮动的侧栏实例
2015/06/25 Javascript
javascript拖拽应用实例(二)
2016/03/25 Javascript
jQuery隐藏和显示效果实现
2016/04/06 Javascript
AngularJS延迟加载html template
2016/07/27 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018/09/29 Javascript
Vue+webpack项目配置便于维护的目录结构教程详解
2018/10/14 Javascript
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
vue实现表格合并功能
2020/12/01 Vue.js
js动态添加带圆圈序号列表的实例代码
2021/02/18 Javascript
python实现切割url得到域名、协议、主机名等各个字段的例子
2019/07/25 Python
CSS3线性渐变简单实现以及该属性在浏览器中的不同
2012/12/12 HTML / CSS
CSS3系列教程:背景图片(背景大小和多背景图) 应用说明
2012/12/19 HTML / CSS
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
香港家用健身器材、运动器材及健康美容仪器专门店:FitBoxx
2019/12/05 全球购物
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
介绍一下XMLHttpRequest对象的常用方法和属性
2013/05/24 面试题
婚前保证书
2014/04/29 职场文书
2014年局领导班子自身建设情况汇报
2014/11/21 职场文书
2015年维修电工工作总结
2015/04/25 职场文书
医院志愿者活动总结
2015/05/06 职场文书
优秀党员主要事迹材料
2015/11/04 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书