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 相关文章推荐
Python3.x和Python2.x的区别介绍
Feb 12 Python
python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别
Jun 04 Python
Python logging模块用法示例
Aug 28 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
Jan 23 Python
Win下PyInstaller 安装和使用教程
Dec 25 Python
python获取依赖包和安装依赖包教程
Feb 13 Python
Python基于xlutils修改表格内容过程解析
Jul 28 Python
python如何运行js语句
Sep 09 Python
python连接mysql数据库并读取数据的实现
Sep 25 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
Dec 08 Python
粗暴解决CUDA out of memory的问题
May 22 Python
浅谈Python从全局与局部变量到装饰器的相关知识
Jun 21 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 快速生成 Flash 动画的方法
2007/03/06 PHP
PHP写MySQL数据 实现代码
2009/06/15 PHP
php+ajax实现无刷新动态加载数据技术
2015/04/28 PHP
如何把php5.3版本升级到php5.4或者php5.5
2015/07/31 PHP
使用Thinkphp框架开发移动端接口
2015/08/05 PHP
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
iOS10推送通知开发教程
2016/09/19 PHP
如何使用PHP给图片加水印
2016/10/12 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
2017/08/14 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
2020/09/17 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
验证码按回车不变解决方法
2013/03/29 Javascript
基于jquery实现控制经纬度显示地图与卫星
2013/05/20 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
JQuery以JSON方式提交数据到服务端示例代码
2014/05/05 Javascript
浅谈JavaScript数据类型及转换
2015/02/28 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
jQuery中cookie插件用法实例分析
2015/12/04 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
关于引入vue.js 文件的知识点总结
2020/01/28 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
对Python 两大环境管理神器 pyenv 和 virtualenv详解
2018/12/31 Python
Html5 webRTC简单实现视频调用的示例代码
2020/09/23 HTML / CSS
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
国际贸易专业个人求职信范文分享
2013/12/14 职场文书
企业党员一句话承诺
2014/05/30 职场文书
中学教师暑期培训方案
2014/08/27 职场文书
2019暑假学生安全口号
2019/06/27 职场文书
使用Djongo模块在Django中使用MongoDB数据库
2021/06/20 Python
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers
win10此电脑打不开怎么办 win10双击此电脑无响应的解决办法
2022/07/23 数码科技