Перерисовка графика

Обсуждение, связанное с разработкой ПО верхнего уровня
Ответить
Boris_K
developer
developer
Сообщения: 281
Зарегистрирован: 28 янв 2015, 14:25
Версия LabVIEW: 2012 Pro

Перерисовка графика

Сообщение Boris_K »

Мне очень желательно, чтобы :labview: перерисовывала один график (XY graph) только по сигналу, а не автоматически. Видел метод Force redraw, вроде то что нужно. Но как отключить автоматическую перерисовку?
Race conditions - опасный и скользкий баг!
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Перерисовка графика

Сообщение dadreamer »

Defer Panel Updates с флагом true, затем Redraw, затем Defer Panel Updates с флагом false.
http://zone.ni.com/reference/en-XX/help ... pnl_updts/

Хотя, наверно, это бесполезный совет, т.к. не избавит от случайной перерисовки графика. Да и вообще, отключить обновления для одного элемента ФП нельзя. Можно сделать два графика, один поверх другого и один из них невидимый, когда нужно, отображать невидимый график.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5461
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 27 раз
Поблагодарили: 86 раз

Re: Перерисовка графика

Сообщение IvanLis »

Boris_K писал(а):Мне очень желательно, чтобы :labview: перерисовывала один график (XY graph) только по сигналу, а не автоматически. Видел метод Force redraw, вроде то что нужно. Но как отключить автоматическую перерисовку?
Приходилось делать, но в основе лежала State Machine, считал количество итераций и писал в контрол данные например каждую 10 итерацию.
Есть еще вариант с использованием свойства Timeout от Event Structure, например перерисовывать через определенный интервал времени.
Boris_K
developer
developer
Сообщения: 281
Зарегистрирован: 28 янв 2015, 14:25
Версия LabVIEW: 2012 Pro

Re: Перерисовка графика

Сообщение Boris_K »

Хотя, наверно, это бесполезный совет, т.к. не избавит от случайной перерисовки графика
Не пробовал ещё, но по идее будет работать, почему не должно? Что значит "случайная" перерисовка? Если отключить обновление для всей фронт-панели, по идее ничего не должно отрисовываться само, пока не включишь.

IvanLis, у меня проблема не в частоте обновлений, а в том, что в процессе работы кол-во Plot'ов на графике может меняться, программно добавляются/удаляются, и у разных плотов отличаются некоторые свойства (цвет, тип линии, интерполяция и заполнение к уровню), эти свойства также программно обновляются при необходимости (через property node). И из-за того что добавление/удаление кривых самим :labview: происходит не одновременно с изменением их свойств, то в момент добавления/удаления мигают артефакты из-за "поехавших" свойств. Хотел бы это убрать.
Race conditions - опасный и скользкий баг!
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Перерисовка графика

Сообщение dadreamer »

Boris_K писал(а):Не пробовал ещё, но по идее будет работать, почему не должно? Что значит "случайная" перерисовка? Если отключить обновление для всей фронт-панели, по идее ничего не должно отрисовываться само, пока не включишь.
Работать будет, но :labview: может сам внезапно захотеть перерисовать (обновить) график. В таком случае мой совет смысла не имеет. А если отключить обновления панели насовсем, то и все прочие элементы не будут обновляться.

Но, судя по последнему посту, достаточно отключить обновления панели, сделать необходимые изменения свойств и включить обновления обратно. Force Redraw уже по вкусу.
Boris_K
developer
developer
Сообщения: 281
Зарегистрирован: 28 янв 2015, 14:25
Версия LabVIEW: 2012 Pro

Re: Перерисовка графика

Сообщение Boris_K »

С Defer panel updates проблема решилась, Force redraw даже не использовал. Благодарю за совет.
Race conditions - опасный и скользкий баг!
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Лицевая панель»