今日讀的進度,以及筆記

改成執行緒的方式收值


import serial
from threading import *
import sys
import time

def handleClient():

    while(True):
        print("waiting for client")
        time.sleep(3)
#with serial.Serial('COM6',9600,timeout = 1) as ser:

def recevive():


    my_list = [12]
 #   CRLF[10]="\r\n"
    with serial.Serial() as ser:
        ser.baudrate = 9600
        ser.port = 'COM6'
        ser.open()
        #print(ser.name)
        while(True):

            text = ser.read().decode('utf-8')

            text = text.replace('\r','\n')
            my_list = text

            #想要整理成矩陣 目前無頭緒
            print (my_list,end ='')
            if my_list[0] =="S":
                print("perfect")
            else:
                print("failed")
            time.sleep(0.1)

if __name__ == "__main__":

    t = Timer(3.0,handleClient)
    s = Timer(3.0,recevive)
    s.start()

有關執行緒的部分有多種方式可以使用,上面只是其中一個,還有別種方法是利用class的方法,不過在python3中用的方法都比較嚴謹,沒辦法隨意使用,以及他使用的語法和C其實差蠻多的,有可能後面做法做看看,利用python控制C的程式,說不定會簡單一點,但是不一定,也要實作才知道,最主要python2和python3的差別來自於他們對於編碼的方式不同,而且相對於他們使用的嚴謹,for example (encode . decode)部分的可能要需要再研讀一陣子。


Comments

comments powered by Disqus