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时间戳与时间字符串互相转换实例代码
Nov 28 Python
python入门之语句(if语句、while语句、for语句)
Jan 19 Python
Cpy和Python的效率对比
Mar 20 Python
Python实现短网址ShortUrl的Hash运算实例讲解
Aug 10 Python
Python提取Linux内核源代码的目录结构实现方法
Jun 24 Python
关于Python中Inf与Nan的判断问题详解
Feb 08 Python
Python实现mysql数据库更新表数据接口的功能
Nov 19 Python
python使用正则表达式来获取文件名的前缀方法
Oct 21 Python
pytorch索引查找 index_select的例子
Aug 18 Python
python爬虫 Pyppeteer使用方法解析
Sep 28 Python
Linux安装Python3如何和系统自带的Python2并存
Jul 23 Python
python list的index()和find()的实现
Nov 16 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 仿Comsenz安装效果代码打包提供下载
2010/05/09 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
2016/11/01 PHP
利用PHP访问带有密码的Redis方法示例
2017/02/09 PHP
PHP生成随机字符串实例代码(字母+数字)
2019/09/11 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
基于jquery的inputlimiter 实现字数限制功能
2010/05/30 Javascript
javascript学习笔记(十九) 节点的操作实现代码
2012/06/20 Javascript
解决js数据包含加号+通过ajax传到后台时出现连接错误
2013/08/01 Javascript
JavaScript中window、doucment、body的解释
2013/08/14 Javascript
JavaScript实现继承的4种方法总结
2014/10/16 Javascript
js变量提升深入理解
2016/09/16 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
使用flow来规范javascript的变量类型
2019/09/12 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
[52:37]完美世界DOTA2联赛循环赛 Forest vs DM BO2第一场 10.29
2020/10/29 DOTA
python UNIX_TIMESTAMP时间处理方法分析
2016/04/18 Python
在Python的Flask中使用WTForms表单框架的基础教程
2016/06/07 Python
PYTHON 中使用 GLOBAL引发的一系列问题
2016/10/12 Python
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
python requests 库请求带有文件参数的接口实例
2019/01/03 Python
python pytest进阶之conftest.py详解
2019/06/27 Python
python实现对服务器脚本敏感信息的加密解密功能
2019/08/13 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
2020/03/07 Python
Python图像读写方法对比
2020/11/16 Python
详解CSS3中nth-child与nth-of-type的区别
2017/01/05 HTML / CSS
荷兰皇家航空公司中国官网:KLM中国
2017/12/13 全球购物
我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。 为什么如下的代码((int *)p)++; 不行?
2013/05/09 面试题
大学迎新晚会主持词
2014/03/24 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
授权委托书(公民个人适用)
2014/09/19 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS