因此,我正在从串行连接中读取(并使用tkinter文本框显示)数据,但是为了运行测试,我无法按自己的意愿处理返回的数据。用更简单的术语来说,即使machine response = 0x1显示了,我也无法从global读取它serBuffer。
在将其显示给textboxi 之前,我将从测试内部进行读取function,然后检查响应是否在中string,但是现在我将读取的数据(字符串)传递给全局变量,然后尝试读取它,似乎没有工作,除非我serBuffer = ""从中删除了readserial。但是,这导致了一个新问题。当我按下按钮发送命令时,它将发送该命令,但仅在第二次按下后以及每次之后才收到响应。因此,Fail如果我运行一次测试,我会得到一个结果,但是之后我每次都会通过。
带有所需响应的图片(test function不读取0x1并始终返回FAIL)
带有不期望的响应的图片(仅在第二次按下后以及每次之后才收到响应。因此,如果我运行一次测试,则结果为“失败”,但之后每次均得到通过) 。
import tkinter as tk
import serial
from serial import *
serialPort = "COM3"
baudRate = 115200
ser = Serial(serialPort, baudRate, timeout=0, writeTimeout=0) #ensure non-blocking
#make a TkInter Window
mainWindow = tk.Tk()
mainWindow.wm_title("Reading Serial")
mainWindow.geometry('1650x1000+500+100')
scrollbar = tk.Scrollbar(mainWindow)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
log = tk.Text ( mainWindow, width=60, height=60, …Run Code Online (Sandbox Code Playgroud)