У меня есть две программы на Python. Назовем их Prog1.py и Prog2.py. Prog1 помогает мне получать оперативные данные с внешнего устройства. На данный момент, как и когда он получает данные, он печатает их на экране. Существует цикл while, в котором на каждой итерации он распечатывает новый набор полученных данных. Теперь Prog2 — это программа Python, созданная с использованием PyQtGraph, которая предназначена для отображения данных в реальном времени, как на мониторе. На данный момент то, что делает Prog2, это то, что (то есть, когда он запускается отдельно), он отображает уже полученные данные. Это движущийся сюжет. Таким образом, Prog2.py имеет функцию обновления, которая повторно вызывается таймером через определенные промежутки времени, чтобы обновить график следующей точкой данных (чтобы заставить его двигаться вправо). Моя цель состоит в том, чтобы связать Prog1 и Prog2 - то есть каким-то образом я хочу передать данные, полученные Prog1 в режиме реального времени, в Prog2, чтобы Prog2 мог отображать данные в реальном времени.
Поскольку Prog1 и Prog2 являются независимыми событиями, имеющими собственный цикл обработки событий, я не знаю, как их связать. Я думал, что одна наивная идея состояла в том, чтобы запустить Prog1.py и Prog2.py параллельно и попросить Prog1.py сохранить данные в файл (может быть, замариновать их?), а затем попросить Prog2.py прочитать из него, а затем построить график. Но меня это не убеждает. Это выглядит грязно. Каким-то образом я хочу запустить весь код Prog2.py внутри Prog1.py. Есть ли чистый способ сделать это?
РЕДАКТИРОВАТЬ- Код
Prog1.py
/*
Code to get data from USB
*/
def main():
while 1:
data = get_data()
print data
main()
Prog2.py — это код PyQtGraph через таймер для обновления графика и его прокрутки.