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写的一个简单DNS服务器实例
Jun 04 Python
使用Python编写简单的画图板程序的示例教程
Dec 08 Python
一篇文章入门Python生态系统(Python新手入门指导)
Dec 11 Python
分享给Python新手们的几道简单练习题
Sep 21 Python
快速了解Python开发中的cookie及简单代码示例
Jan 17 Python
酷! 程序员用Python带你玩转冲顶大会
Jan 17 Python
对Python中DataFrame按照行遍历的方法
Apr 08 Python
Python数据预处理之数据规范化(归一化)示例
Jan 08 Python
Python利用scapy实现ARP欺骗的方法
Jul 23 Python
python如何快速拼接字符串
Oct 28 Python
python使用numpy中的size()函数实例用法详解
Jan 29 Python
python3.9.1环境安装的方法(图文)
Feb 02 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 实例化类的一点摘记
2008/03/23 PHP
如何使用PHP实现javascript的escape和unescape函数
2013/06/29 PHP
测试php连接mysql是否成功的代码分享
2014/01/24 PHP
php实现的太平洋时间和北京时间互转的自定义函数分享
2014/08/19 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
OfflineSave离线保存代码再次发布使用说明
2007/05/23 Javascript
js 巧妙去除数组中的重复项
2010/01/25 Javascript
jQuery创建插件的代码分析
2011/04/14 Javascript
js分页代码分享
2014/04/28 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
js实现分割上传大文件
2016/03/09 Javascript
js删除Array数组中指定元素的两种方法
2016/08/03 Javascript
Angular路由简单学习
2016/12/26 Javascript
javascript设计模式之中介者模式学习笔记
2017/02/15 Javascript
Js apply方法详解
2017/02/16 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/25 Javascript
AngularJS中scope的绑定策略实例分析
2017/10/30 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
利用Node.js批量抓取高清妹子图片实例教程
2018/08/02 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
2019/06/10 Javascript
QML实现圆环颜色选择器
2019/09/25 Javascript
Python实现的简单计算器功能详解
2018/08/25 Python
Tensorflow模型实现预测或识别单张图片
2019/07/19 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
python实现的分析并统计nginx日志数据功能示例
2019/12/21 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
手把手教你将Flask应用封装成Docker服务的实现
2020/08/19 Python
Python基于pillow库实现生成图片水印
2020/09/14 Python
群众路线教育实践活动学习笔记内容
2014/11/06 职场文书
春季运动会加油词
2015/07/18 职场文书
python 如何获取页面所有a标签下href的值
2021/05/06 Python
http通过StreamingHttpResponse完成连续的数据传输长链接方式
2022/02/12 Python
Python中字符串对象语法分享
2022/02/24 Python
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers