Частота смены сюжета Mayavi в реальном времени падает, когда скрипт вызывается из bash или C ++ - PullRequest
0 голосов
/ 30 января 2019

Чтобы визуализировать данные, поступающие с датчика, в режиме реального времени, я создал скрипт Python 2.7, который отображает данные, поступающие с частотой 50 Гц, используя Mayavi.Сценарий запускает два потока: поток сбора данных, который непрерывно собирает данные (Xdata, Ydata, Zdata), и поток построения графиков, который наносит данные на график.

Создание графика настраивается с помощью:

@mlab.animate(delay=animation_delay)
def make_graph():
    while True:
        dataX=acquisitionThread.Xdata
        dataY=-1*acquisitionThread.Ydata
        dataZ=acquisitionThread.Zdata

        obj.mlab_source.u=dataX.flatten()
        obj.mlab_source.v=dataY.flatten()
        obj.mlab_source.w=dataZ.flatten()
        yield

make_graph()
mlab.show()

Теперь, когда я запускаю свой скрипт из IDE, которую я использую (Spyder 2.7), анимация плавная, но когда я запускаю скрипт из bash, используя ...

python ./animationScript.py

... частота кадров значительно падает, и взаимодействие с графиком (вращение графика и т. д.) становится очень громоздким.

В заключение я хотел бы включить анимацию в приложение Qt и вызывать ее, используя:

char* args[]={"python","/path/to/fieldAnimation.py"};

pid_t pid;
pid=fork();
if(pid==0)
    execvp(args[0],args);

Однако запуск такого скрипта также приводит к очень медленной частоте кадров анимации.

...