通過兩個程序分別讀寫串列埠,並把傳送與接收到的內容記錄在blog中,收到q時程式結束並退出
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名稱為當前時間
self.rfname='r'+fname #接收blog名稱
self.sfname='s'+fname #傳送blog名稱
self.thread_read= none
self.thread_send=none
def waiting(self):
# 等待event停止標誌
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串列埠除錯工具入門學習
python3 開發串列埠工具 網上有很多相關的案例,後面會一一枚舉 以下為小白入坑記錄用 到python官網download頁面,找到現在最新版安裝包 參考文件 pip是常用的python包管理工具,經常在網上搜到的文件已經安裝好該工具,由於小白是第一次使用,顧做一下記錄 採用下面的方式安裝 安裝...
python實戰串列埠助手 7串列埠傳送
上次發的帖子的接收是有異常的,昨天下班時,反覆的測試,發現問題很大,晚上不想睡覺了,就起來修改除錯,終於搞定乙個沒有異常的版本讀取函式,如果有使用我 的,把下面2個函式替換一下即可,但是還有個問題沒有解決,就是顯示到text文字框沒有實現,我還要再繼續研究一下,傳送函式,一次只能發乙個,超過乙個就無...
python3 殭屍程序
coding utf 8 from multiprocessing import process import time,os defrun print 子 os.getpid if name main p process target run p.start print 主 os.getpid t...