目前项目中所使用的基本分两种,一种是直接串口通信,通过python发送串口指令进行通信,第二种是adb通信,通过adb指令进行通信。

一、串口通信

1.串口信息

import serial
import serial.tools.list_ports

if __name__ == "__main__":
    port_a = "COM19" #通过pc的设备管理器查看串口号
    bps = 115200 #串口速率
    Timeout = 5 #串口延时

    #打开串口
    ser_a = serial.Serial(port_a, bps, timeout = Timeout)
    
    #将串口返回值输入到函数
    test(ser_a)

2.将串口信息传入函数

通过serial库打开串口,并将返回值输入到所需要的函数中,下面看如何发送串口指令

def SendAndWait(ser, sendstr, findstr, timeout):
    ser.write(SendStr.encode())
    Timeout = math.ceil(timeout)
    time.sleep(timeout)
    result = str(ser.read_all())#读出串口返回值
    a = result.find(findstr)#找出返回值中所需要的语句作为判断条件
    #根据自己需要对a进行应用
    return

def test(ser):
    #发送串口指令
    SendAndWait(ser, "xxxxx", "zzzzz", 5)#ser是打开的串口,xxxxx是串口指令,zzzzz是需要在串口指令返回值中寻找的语句,5是timeout

 二、ADB通信

adb通信是通过usb通信,不用打开串口,直接用subporcess函数进行语句发送就可以。

import subprocess

def adb():
    subprocess.call("adb", "shell", "xxx", shell=True)#adb shell是cmd必须的语句,后面指令根据需要来。
    a = subprocess.getoutput("adb", "shell", "xxx")#该函数不在终端上打印adb返回值,但是可以赋值给变量,方便通过变量来判断返回值中的内容