91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python怎么實現串口自動觸發工作

發布時間:2021-04-07 09:59:41 來源:億速云 閱讀:254 作者:小新 欄目:開發技術

小編給大家分享一下python怎么實現串口自動觸發工作,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

最近在一個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怎么實現串口自動觸發工作”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新昌县| 虹口区| 三门峡市| 公安县| 利辛县| 东辽县| 霍州市| 且末县| 广州市| 海伦市| 剑川县| 布尔津县| 十堰市| 梓潼县| 塔城市| 石台县| 吉安县| 普宁市| 罗甸县| 海南省| 涞源县| 朝阳市| 兰西县| 长子县| 荆门市| 苏尼特右旗| 社旗县| 锦州市| 贡嘎县| 威远县| 奉节县| 钟祥市| 苏尼特右旗| 景东| 麻城市| 香河县| 静海县| 清水县| 南昌市| 呼图壁县| 嵩明县|