Я разработал программу для управления HMI, когда сенсорный контроллер передает данные координат касания через разъем. Как видно из приведенного ниже кода, length - это данные в реальном времени, которые я получил, и это список строк, отображающих координаты x, y, z. После того, как данные получены, они обрабатываются, я печатаю список в текстовый файл, затем открываю файл и разделяю данные. Проблема в том, что после операции разделения данные, которые я получаю, больше не отображаются в режиме реального времени, существует огромная задержка. Например, я сравниваю "length" и "list" , печатая их в консоли в режиме реального времени, и они не совпадают ... Заранее спасибо за помощь!
Фрагмент функции socket_thread:
def socket_thread():
global X, Y, Xsave, Ysave
PORT = 2001
BUFFER_SIZE = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('127.0.0.1', PORT))
try:
while True:
s.sendall(b'true\n')
length = s.recv(BUFFER_SIZE).decode()
print(length, file=open("Eddie.txt", "a"))
with open("Eddie.txt", "rt") as T:
for buffer_line in T:
list = buffer_line.split('/')
if list[0] == 'True':
X = int(abs(round(float(list[1]))))
Y = int(abs(round(float(list[2]))))
if not length:
print("Recive_error\n")
break
len(length)
s.sendall(b'end\n')
except KeyboardInterrupt as e:
s.sendall(b'end\n')
a = threading.Thread(name='socket_thread', target=socket_thread)
a.start()