欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python3 實(shí)現(xiàn)串口兩進(jìn)程同時(shí)讀寫

 更新時(shí)間:2019年06月12日 11:52:42   作者:colcloud  
今天小編就為大家分享一篇Python3 實(shí)現(xiàn)串口兩進(jìn)程同時(shí)讀寫,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

通過兩個(gè)進(jìn)程分別讀寫串口,并把發(fā)送與接收到的內(nèi)容記錄在blog中,收到q時(shí)程序結(jié)束并退出

import threading,time
import serial
import string
 
 
class SerThread:
  def __init__(self, Port=0):
    #初始化串口、blog文件名稱
    self.my_serial = serial.Serial()
    self.my_serial.port=Port
    self.my_serial.baudrate = 9600
    self.my_serial.timeout = 1    
    self.alive = False
    self.waitEnd = None
    fname=time.strftime("%Y%m%d")#blog名稱為當(dāng)前時(shí)間
    self.rfname='r'+fname #接收blog名稱
    self.sfname='s'+fname #發(fā)送blog名稱
    self.thread_read= None
    self.thread_send=None   
       
 
  def waiting(self):
    # 等待event停止標(biāo)志
    if not self.waitEnd is None:
      self.waitEnd.wait()
 
  def start(self):
    #開串口以及blog文件 
    self.rfile=open(self.rfname,'w')
    self.sfile=open(self.sfname,'w')
    self.my_serial.open()
       
    if self.my_serial.isOpen():
      self.waitEnd = threading.Event()
      self.alive = True
      
      self.thread_read = threading.Thread(target=self.Reader)
      self.thread_read.setDaemon(True)
      
      self.thread_send=threading.Thread(target=self.Sender)
      self.thread_send.setDaemon(True)
      
      self.thread_read.start()
      self.thread_send.start()
      return True
    else:
      return False
 
  
  def Reader(self):
    while self.alive:
      try:
        n=self.my_serial.inWaiting()
        data=''
        if n:
          data= self.my_serial.read(n).decode('utf-8')       
          print ('recv'+' '+time.strftime("%Y-%m-%d %X")+' '+data.strip())
          print (time.strftime("%Y-%m-%d %X:")+data.strip(),file=self.rfile)
          if len(data)==1 and ord(data[len(data)-1])==113: #收到字母q,程序退出
            break
      except Exception as ex:
        print (ex)
        
 
    self.waitEnd.set()
    self.alive = False
  
  def Sender(self):
    while self.alive:
      try:
        snddata=input("input data:\n")
        self.my_serial.write(snddata.encode('utf-8'))
        print ('sent'+' '+ time.strftime("%Y-%m-%d %X"))
              print (snddata,file=self.sfile) 
        
      except Exception as ex:
        print (ex)
    
    self.waitEnd.set()
    self.alive = False          
        
    
 
  def stop(self):
    self.alive = False
    #self.thread_read.join()
    #self.thread_send.join()
    if self.my_serial.isOpen():
      self.my_serial.close()
    self.rfile.close()
    self.sfile.close()
      
 
if __name__ == '__main__':  
  
  ser = SerThread('com4')
  try:
    if ser.start():
      ser.waiting()
      ser.stop()
    else:
      pass;      
  except Exception as ex:
    print (ex)
 
  if ser.alive:
    ser.stop()
 
  print ('End OK .');
  del ser; 

以上這篇Python3 實(shí)現(xiàn)串口兩進(jìn)程同時(shí)讀寫就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Django3中的自定義用戶模型實(shí)例詳解

    Django3中的自定義用戶模型實(shí)例詳解

    這篇文章主要給大家介紹了關(guān)于Django3中自定義用戶模型的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • python 網(wǎng)絡(luò)編程要點(diǎn)總結(jié)

    python 網(wǎng)絡(luò)編程要點(diǎn)總結(jié)

    Python 提供了兩個(gè)級(jí)別訪問的網(wǎng)絡(luò)服務(wù):低級(jí)別的網(wǎng)絡(luò)服務(wù)支持基本的 Socket,它提供了標(biāo)準(zhǔn)的 BSD Sockets API,可以訪問底層操作系統(tǒng) Socket 接口的全部方法。高級(jí)別的網(wǎng)絡(luò)服務(wù)模塊SocketServer, 它提供了服務(wù)器中心類,可以簡(jiǎn)化網(wǎng)絡(luò)服務(wù)器的開發(fā)。下面看下該如何使用
    2021-06-06
  • Python中出現(xiàn)"No?module?named?'requests'"的圖文解決辦法

    Python中出現(xiàn)"No?module?named?'requests'"

    這篇文章主要給大家介紹了關(guān)于Python中出現(xiàn)"No?module?named?'requests'"的解決辦法,"No?module?named?requests"是Python報(bào)錯(cuò)提示,意味著你在使用某個(gè)Python程序或腳本時(shí),沒有找到名為requests的模塊,需要的朋友可以參考下
    2023-11-11
  • python學(xué)生信息管理系統(tǒng)(完整版)

    python學(xué)生信息管理系統(tǒng)(完整版)

    這篇文章主要為大家詳細(xì)介紹了python學(xué)生信息管理系統(tǒng)的完整版本代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • Python實(shí)現(xiàn)的破解字符串找茬游戲算法示例

    Python實(shí)現(xiàn)的破解字符串找茬游戲算法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的破解字符串找茬游戲算法,簡(jiǎn)單分析了找茬游戲的原理,并結(jié)合具體實(shí)例形式分析了Python實(shí)現(xiàn)破解找茬游戲的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-09-09
  • Python使用re模塊實(shí)現(xiàn)信息篩選的方法

    Python使用re模塊實(shí)現(xiàn)信息篩選的方法

    這篇文章主要介紹了Python使用re模塊實(shí)現(xiàn)信息篩選的方法,結(jié)合實(shí)例形式分析了Python正則re模塊進(jìn)行信息篩選操作的相關(guān)實(shí)現(xiàn)技巧及相關(guān)函數(shù)使用技巧,需要的朋友可以參考下
    2018-04-04
  • PyQt5實(shí)現(xiàn)簡(jiǎn)易電子詞典

    PyQt5實(shí)現(xiàn)簡(jiǎn)易電子詞典

    這篇文章主要為大家詳細(xì)介紹了PyQt5實(shí)現(xiàn)簡(jiǎn)易電子詞典,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • python繪制漏斗圖步驟詳解

    python繪制漏斗圖步驟詳解

    在本文里我們給大家整理了關(guān)于python繪制漏斗圖的相關(guān)知識(shí)點(diǎn)以及具體步驟,有需要的朋友們跟著學(xué)習(xí)下。
    2019-03-03
  • Python中的類屬性與實(shí)例屬性區(qū)別詳解

    Python中的類屬性與實(shí)例屬性區(qū)別詳解

    這篇文章主要介紹了Python中的類屬性與實(shí)例屬性區(qū)別詳解,類屬性是在類中定義的屬性,它是和這個(gè)類所綁定的,這個(gè)類中的所有對(duì)象都可以訪問,實(shí)例屬性是與類的實(shí)例相關(guān)聯(lián)的數(shù)據(jù)值,是這個(gè)實(shí)例私有的,需要的朋友可以參考下
    2023-08-08
  • 僅利用30行Python代碼來展示X算法

    僅利用30行Python代碼來展示X算法

    這篇文章主要介紹了僅利用30行Python代碼來展示X算法,同時(shí)還有對(duì)算法實(shí)現(xiàn)的復(fù)雜度的說明,需要的朋友可以參考下
    2015-04-04

最新評(píng)論