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黑魔法之编码转换
Jan 25 Python
Python设计模式编程中解释器模式的简单程序示例分享
Mar 02 Python
Python 如何访问外围作用域中的变量
Sep 11 Python
python绘制规则网络图形实例
Dec 09 Python
基于python+selenium的二次封装的实现
Jan 06 Python
关于tf.nn.dynamic_rnn返回值详解
Jan 20 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
Mar 18 Python
使用python-Jenkins批量创建及修改jobs操作
May 12 Python
python基于opencv 实现图像时钟
Jan 04 Python
python中if嵌套命令实例讲解
Feb 25 Python
Python Django模型详解
Oct 05 Python
Python if else条件语句形式详解
Mar 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
删除无限级目录与文件代码共享
2006/07/12 PHP
php 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
让你成为更出色的PHP开发者的10个技巧
2011/02/25 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
2012/10/08 PHP
php之Memcache学习笔记
2013/06/17 PHP
php实现两个数组相加的方法
2015/02/17 PHP
PHP pear安装配置教程
2016/05/14 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
在laravel中实现事务回滚的方法
2019/10/10 PHP
javascript实现在网页任意处点左键弹出隐藏菜单的方法
2015/05/13 Javascript
jQuery实现鼠标划过添加和删除class的方法
2015/06/26 Javascript
JavaScript function函数种类详解
2016/02/22 Javascript
AngularJS ngModel实现指令与输入直接的数据通信
2016/09/21 Javascript
浅析JavaScript中作用域和作用域链
2016/12/06 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
2016/12/15 Javascript
微信小程序引用公共js里的方法的实例详解
2017/08/17 Javascript
微信小程序表单验证功能完整实例
2017/12/01 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
koa源码中promise的解读
2018/11/13 Javascript
JavaScript数组类型Array相关的属性与方法详解
2020/09/08 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
从零学Python之hello world
2014/05/21 Python
深入分析python数据挖掘 Json结构分析
2018/04/21 Python
python format 格式化输出方法
2018/07/16 Python
Python IDE环境之 新版Pycharm安装详细教程
2020/03/05 Python
pycharm实现在子类中添加一个父类没有的属性
2020/03/12 Python
Python3之外部文件调用Django程序操作model等文件实现方式
2020/04/07 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
HTML5标签小集
2011/08/02 HTML / CSS
幼儿园开学寄语
2014/04/03 职场文书
党支部换届选举方案
2014/05/08 职场文书
广播体操口号
2014/06/18 职场文书
迟到检讨书2000字(精选篇)
2014/10/07 职场文书
2014年绩效考核工作总结
2014/12/11 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书
《打电话》教学反思
2016/02/22 职场文书