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 相关文章推荐
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
Jun 25 Python
Python中利用原始套接字进行网络编程的示例
May 04 Python
python链接Oracle数据库的方法
Jun 28 Python
python实现闹钟定时播放音乐功能
Jan 25 Python
django manage.py扩展自定义命令方法
May 27 Python
python验证码识别教程之滑动验证码
Jun 04 Python
对python多线程中Lock()与RLock()锁详解
Jan 11 Python
python爬虫 模拟登录人人网过程解析
Jul 31 Python
Python修改列表值问题解决方案
Mar 06 Python
django前端页面下拉选择框默认值设置方式
Aug 09 Python
怎么用Python识别手势数字
Jun 07 Python
Python基础教程,Python入门教程(超详细)
Jun 24 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
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
SESSION信息保存在哪个文件目录下以及能够用来保存什么类型的数据
2012/06/17 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
2015/01/07 PHP
php array 转json及java 转换 json数据格式操作示例
2019/11/13 PHP
PHP队列场景以及实现代码实例详解
2021/02/26 PHP
javascript对数组的常用操作代码 数组方法总汇
2011/01/27 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
JS实现霓虹灯文字效果的方法
2015/08/06 Javascript
jQuery+Ajax实现无刷新操作
2016/01/04 Javascript
基于javascript制作微博发布栏效果
2016/04/04 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
详解bootstrap的modal-remote两种加载方式【强化】
2017/01/27 Javascript
js数据类型检测总结
2018/08/05 Javascript
JavaScript中创建原子的方法总结
2018/08/26 Javascript
解决vue热替换失效的根本原因
2018/09/19 Javascript
js的对象与函数详解
2019/01/21 Javascript
9102了,你还不会移动端真机调试吗
2019/03/25 Javascript
JS forEach跳出循环2种实现方法
2020/06/24 Javascript
python实现进程间通信简单实例
2014/07/23 Python
Python中异常重试的解决方案详解
2017/05/05 Python
python爬虫入门教程--利用requests构建知乎API(三)
2017/05/25 Python
wxPython之解决闪烁的问题
2018/01/15 Python
解决PySide+Python子线程更新UI线程的问题
2019/01/11 Python
Python英文文本分词(无空格)模块wordninja的使用实例
2019/02/20 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
python使用python-pptx删除ppt某页实例
2020/02/14 Python
python 连续不等式语法糖实例
2020/04/15 Python
python 瀑布线指标编写实例
2020/06/03 Python
Python中flatten( ),matrix.A用法说明
2020/07/05 Python
Python 如何在字符串中插入变量
2020/08/01 Python
会计专业毕业生自我鉴定
2013/10/29 职场文书
世博会口号
2014/06/20 职场文书
毕业生爱心捐书倡议书
2015/04/27 职场文书
开工典礼致辞
2015/07/29 职场文书
Win11远程连接不上怎么办?Win11远程桌面用不了的解决方法
2022/08/05 数码科技