python怎么实现串口自动触发工作

  介绍

小编给大家分享一下python怎么实现串口自动触发工作,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!

最近在一个python工具中需要实现串口自动触发工作的功能,之前只在winform上面实现,今天使用python试试。这里简单记一下:

<强>首先用wxpython实现一个按钮,点击事件绑定函数OnButtonAutoStopAll

self.button_autoStopAll =, wx.Button (id=wxID_FRAME1BUTTONAUTOSTARTALL,,标签=u # 39; AUTO  STOP 所有# 39;,   ,,,,,,的名字=& # 39;button_autoStop& # 39;,,父母=self.staticBox_common, pos=wx.Point (8, 284),   ,,,,,,大?wx.Size(180,, 80),风格=0)   ,,,self.button_autoStopAll.SetFont (wx.Font (wx.SWISS, 24日,wx.NORMAL,, wx.BOLD,,假的,   ,,,,,,你# 39;Agency  fb # 39;))   ,,,self.button_autoStopAll.Bind (wx.EVT_BUTTON, self.OnButtonAutoStopAll,   ,,,,,,id=wxID_FRAME1BUTTONAUTOSTARTALL)

<强>再有组合框控件实现点击下拉时自动加载当前串口名

, self.combox =, wx.ComboBox(自我,,1,,pos=wx.Point(10100),大?wx.Size(100年,50),   ,,,,风格=wx.CB_READONLY), #串口combox   ,self.combox.Bind (wx.EVT_COMBOBOX_DROPDOWN, self.evt_combox_dropdown)

<强>下拉菜单事件函数

def  evt_combox_dropdown(自我,事件):   ,,,print  & # 39; combox % d 拉# 39;% self.sta_num   ,,,serial_list =,列表(serial.tools.list_ports.comports ())   ,,,if  serial_list:, #判断是否为空   ,,,,,portName_list =, []   #才能转换serial 处理为port 名字   ,,,,,for 小姐:拷贝范围(0,,len (serial_list)):   ,,,,,,,portname =,列表(serial_list[我])   ,,,,,,,portName_list.append (str (portname [0]))   ,,,,,print  portName_list   ,,,,   ,,,self.combox.SetItems (portName_list)

然后进入正题,这里根据域信号来触发。

#串口自动触发检测线程   class 工作(threading.Thread):   ,,…   ,   def 才能运行(自我):   ,,,while  self.__running.isSet ():   ,,,,,self.__flag.wait(),,,,,,, #,为真时立即返回,,为假时阻塞直到内部的标识位为真正的后返回   ,,,,,print “into  job  function"   我才能=0   ,,,,,isOpen =, serial_isOpen(我)   ,,,,,if  serial_list[我]!=1,以及isOpen:   ,,,,,,,now_dsr =, serial_list[我].getDSR ()   ,,,,,,,if  now_dsr  !=, last_dsr[我]:   ,,,,,,,,,last_dsr[我],=now_dsr   ,,,,,,,,,print  & # 39; dsr  level  changed 用% d # 39; % now_dsr   ,,,,,,,,,if  now_dsr ==,真的:   ,,,,,,,,,,,if  thread_list[我],!=,1:   ,,,,,,,,,,,,,if  ~ thread_list[我].is_alive ():   ,,,,,,,,,,,,,,,serial_Open(0,,假)   ,,,,,,,,,,,,,,,# do 一些东西   ,,,,,,,,,,,其他的:   ,,,,,,,,,,,,,serial_Open(0,,假)   ,,,,,,,,,,,,,# do 一些东西   ,,,,,,,休息   ,,,,,time . sleep (1)   ,   ,,…

即每当域信号置低时触发工作

看完了这篇文章,相信你对“python怎么实现串口自动触发工作”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

python怎么实现串口自动触发工作