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 subprocess模块学习总结
Mar 13 Python
Python操作sqlite3快速、安全插入数据(防注入)的实例
Apr 26 Python
深入解析Python中的WSGI接口
May 11 Python
详谈Python高阶函数与函数装饰器(推荐)
Sep 30 Python
简单谈谈python中的lambda表达式
Jan 19 Python
分享Pycharm中一些不为人知的技巧
Apr 03 Python
基于Python中numpy数组的合并实例讲解
Apr 04 Python
Python eval的常见错误封装及利用原理详解
Mar 26 Python
python解压TAR文件至指定文件夹的实例
Jun 10 Python
python写入数据到csv或xlsx文件的3种方法
Aug 23 Python
python调用函数、类和文件操作简单实例总结
Nov 29 Python
python实现ssh及sftp功能(实例代码)
Mar 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 内存缓存加速功能memcached安装与用法
2009/09/03 PHP
php header示例代码(推荐)
2010/09/08 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
JavaScript高级程序设计 读书笔记之八 Function类及闭包
2012/02/27 Javascript
Javascript 实现的数独解题算法网页实例
2013/10/15 Javascript
fastclick插件导致日期(input[type="date"])控件无法被触发该如何解决
2015/11/09 Javascript
基于vue.js无缝滚动效果
2018/01/25 Javascript
Node.js笔记之process模块解读
2018/05/31 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
JavaScript canvas基于数组生成柱状图代码实例
2020/03/06 Javascript
vue实现学生信息管理系统
2020/05/30 Javascript
vue iview实现动态新增和删除
2020/06/17 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中的魔法方法深入理解
2014/07/09 Python
python求众数问题实例
2014/09/26 Python
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
python3解析库pyquery的深入讲解
2018/06/26 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
JYSK加拿大:购买家具、床垫、家居装饰等
2020/02/14 全球购物
公司营业员的工作总结自我评价
2013/10/05 职场文书
新闻学专业应届生求职信
2013/11/08 职场文书
九月份红领巾广播稿
2014/01/22 职场文书
总经理司机职责
2014/02/02 职场文书
大学生求职工作的自我评价
2014/02/13 职场文书
董事长助理工作职责范本
2014/07/01 职场文书
2015年语文教师工作总结
2015/05/25 职场文书
入党积极分子考察意见
2015/06/02 职场文书
2015年国庆节新闻稿
2015/07/18 职场文书
2019年怎样才能撰写出优秀的自荐信
2019/03/25 职场文书
nginx配置文件使用环境变量的操作方法
2021/06/02 Servers
Python预测分词的实现
2021/06/18 Python
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers