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 相关文章推荐
python处理中文编码和判断编码示例
Feb 26 Python
Python解析json文件相关知识学习
Mar 01 Python
Python简单获取自身外网IP的方法
Sep 18 Python
python字符串中的单双引
Feb 16 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
Feb 21 Python
Python实现求解括号匹配问题的方法
Apr 17 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
Sep 04 Python
python+ffmpeg批量去视频开头的方法
Jan 09 Python
python使用for循环计算0-100的整数的和方法
Feb 01 Python
Python使用MyQR制作专属动态彩色二维码功能
Jun 04 Python
python多继承(钻石继承)问题和解决方法简单示例
Oct 21 Python
Django+Django-Celery+Celery的整合实战
Jan 20 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
Amazon Prime Video平台《无限住人 -IMMORTAL-》2020年开始TV放送!
2020/03/06 日漫
Optimizer与Debugger兼容性问题的解决方法
2008/12/01 PHP
基于curl数据采集之正则处理函数get_matches的使用
2013/04/28 PHP
php使用文本统计访问量的方法
2016/05/12 PHP
php根据数据id自动生成编号的实现方法
2016/10/16 PHP
PHP 7.4 新语法之箭头函数实例详解
2019/05/09 PHP
关于JavaScript定义类和对象的几种方式
2010/11/09 Javascript
web网页按比例显示图片实现原理及js代码
2013/08/09 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
基于jquery实现下拉框美化特效
2016/02/02 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
vue兄弟组件传递数据的实例
2018/09/06 Javascript
Vue点击切换颜色的方法
2018/09/13 Javascript
element-ui的回调函数Events的用法详解
2018/10/16 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
详解微信小程序动画Animation执行过程
2020/09/23 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
python时间整形转标准格式的示例分享
2014/02/14 Python
django实现分页的方法
2015/05/26 Python
详解python异步编程之asyncio(百万并发)
2018/07/07 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
2019/12/04 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
django rest framework 自定义返回方式
2020/07/12 Python
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
个人自我鉴定写法
2013/11/30 职场文书
英语系本科生求职信范文
2013/12/18 职场文书
中华在我心中演讲稿
2014/09/13 职场文书
2014年房产经纪人工作总结
2014/12/08 职场文书
员工年度工作总结2015
2015/05/18 职场文书
遗愿清单观后感
2015/06/09 职场文书
推广普通话宣传标语口号
2015/12/26 职场文书
承诺书应该怎么写?
2019/09/10 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书
springboot+zookeeper实现分布式锁
2022/03/21 Java/Android