У меня есть два .py файла на Raspberry Pi, где я пытаюсь вызвать один файл keep_awake.py, который содержит:
import time
import serial
while True:
time.sleep(5)
for option in ["on", "off"]:
for board in ["ACM0", "ACM1"]:
request = serial.Serial(f"/dev/tty{board}", 19200, timeout=1)
for j in [0,1,2,3,4,5,6,7,8,9,"A","B","C","D","E","F"]:
request.write(f"relay {option} {j}\r".encode("utf-8"))
request.close()
time.sleep(.1)
Этот код записывает в реле нажатие кнопок с помощью припаянных проводов.в печатные платы.Я проверил этот код и знаю, что он работает.Тем не менее, когда я вызываю его из родительского файла, как это subprocess = Popen(["python", "/home/pi/Desktop/DLMW-ART/tools/keep_awake.py"], stdout=PIPE, stderr=STDOUT, universal_newlines=True)
Код не запускается.
Цель этого состоит в том, чтобы нажать кнопку устройств, чтобы она оставалась активной во время обновления прошивки, а затем завершить подпроцесс, чтобы он не мешал остальной части сценария.Поэтому я хочу, чтобы родительский файл выглядел следующим образом:
#Several print statements to let me know where in the script I am
subprocess = Popen(["python", "/home/pi/Desktop/DLMW-ART/tools/keep_awake.py"], stdout=PIPE, stderr=STDOUT, universal_newlines=True)
#Firmware update code will live here
time.sleep(20) #used for testing the call
subprocess.kill()
Этот код выполняется в цикле, поэтому я четко вижу несколько операторов печати в основном файле, но в подпроцессе ничего не происходит, иустройства не нажимаются.Я делаю подпроцесс. Неправильно открыт вызов?