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连接mongodb操作数据示例(mongodb数据库配置类)
Dec 31 Python
Python函数中定义参数的四种方式
Nov 30 Python
Python实现扫描局域网活动ip(扫描在线电脑)
Apr 28 Python
Python中的ctime()方法使用教程
May 22 Python
Java中重定向输出流实现用文件记录程序日志
Jun 12 Python
Python2和Python3中urllib库中urlencode的使用注意事项
Nov 26 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
Jun 19 Python
python selenium 查找隐藏元素 自动播放视频功能
Jul 24 Python
使用Python调取任意数字资产钱包余额功能
Aug 15 Python
python3 正则表达式基础廖雪峰
Mar 25 Python
Python基本的内置数据类型及使用方法
Apr 13 Python
解决Python保存文件名太长OSError: [Errno 36] File name too long
May 11 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 chr() ord()中文截取乱码问题解决方法
2008/09/08 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
2013/06/21 PHP
php生成不重复随机数、数组的4种方法分享
2015/03/30 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
2015/07/06 PHP
浅谈PHP匿名函数和闭包
2019/03/08 PHP
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
js获取视频时长代码
2014/04/10 Javascript
jQuery实现下拉框选择图片功能实例
2015/08/08 Javascript
详解JavaScript中jQuery和Ajax以及JSONP的联合使用
2015/08/13 Javascript
JQuery实现图片轮播效果
2015/09/15 Javascript
jQuery ajax分页插件实例代码
2016/01/27 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
2016/09/19 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
2017/09/04 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
node实现爬虫的几种简易方式
2019/08/22 Javascript
vue项目实现多语言切换的思路
2020/09/17 Javascript
JS如何操作DOM基于表格动态展示数据
2020/10/15 Javascript
vue切换菜单取消未完成接口请求的案例
2020/11/13 Javascript
初步认识Python中的列表与位运算符
2015/10/12 Python
Python实现简易端口扫描器代码实例
2017/03/15 Python
python实现百度语音识别api
2018/04/10 Python
python爬虫自动创建文件夹的功能
2018/08/01 Python
使用Python-OpenCV向图片添加噪声的实现(高斯噪声、椒盐噪声)
2019/05/28 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
Python识别html主要文本框过程解析
2020/02/18 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
2020/07/07 Python
阿联酋网上花店:Ferns N Petals
2018/02/14 全球购物
高校毕业生自我鉴定
2013/10/27 职场文书
幸福家庭事迹材料
2014/02/03 职场文书
七一党日活动总结
2014/07/08 职场文书
2014年作风建设心得体会
2014/10/22 职场文书
2014年质检工作总结
2014/11/26 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS