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

Обсуждение, связанное с разработкой ПО верхнего уровня

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

Postby Boris_K on 09 Jun 2018, 15:08

Мне очень желательно, чтобы :labview: перерисовывала один график (XY graph) только по сигналу, а не автоматически. Видел метод Force redraw, вроде то что нужно. Но как отключить автоматическую перерисовку?
Race conditions - опасный и скользкий баг!
Boris_K
developer
developer
 
Posts: 278
Joined: 28 Jan 2015, 14:25
LabVIEW Version: 2012 Pro
Karma: 6

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

Postby dadreamer on 09 Jun 2018, 16:53

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

Хотя, наверно, это бесполезный совет, т.к. не избавит от случайной перерисовки графика. Да и вообще, отключить обновления для одного элемента ФП нельзя. Можно сделать два графика, один поверх другого и один из них невидимый, когда нужно, отображать невидимый график.
User avatar
dadreamer
professor
professor
 
Posts: 3128
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 790
I/O VIP vision internet

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

Postby IvanLis on 09 Jun 2018, 18:09

Boris_K wrote:Мне очень желательно, чтобы :labview: перерисовывала один график (XY graph) только по сигналу, а не автоматически. Видел метод Force redraw, вроде то что нужно. Но как отключить автоматическую перерисовку?


Приходилось делать, но в основе лежала State Machine, считал количество итераций и писал в контрол данные например каждую 10 итерацию.
Есть еще вариант с использованием свойства Timeout от Event Structure, например перерисовывать через определенный интервал времени.
User avatar
IvanLis
professor
professor
 
Posts: 4628
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 727
hardware VIP bloggers teachers

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

Postby Boris_K on 09 Jun 2018, 19:28

Хотя, наверно, это бесполезный совет, т.к. не избавит от случайной перерисовки графика

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

IvanLis, у меня проблема не в частоте обновлений, а в том, что в процессе работы кол-во Plot'ов на графике может меняться, программно добавляются/удаляются, и у разных плотов отличаются некоторые свойства (цвет, тип линии, интерполяция и заполнение к уровню), эти свойства также программно обновляются при необходимости (через property node). И из-за того что добавление/удаление кривых самим :labview: происходит не одновременно с изменением их свойств, то в момент добавления/удаления мигают артефакты из-за "поехавших" свойств. Хотел бы это убрать.
Race conditions - опасный и скользкий баг!
Boris_K
developer
developer
 
Posts: 278
Joined: 28 Jan 2015, 14:25
LabVIEW Version: 2012 Pro
Karma: 6

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

Postby dadreamer on 10 Jun 2018, 20:46

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

Работать будет, но :labview: может сам внезапно захотеть перерисовать (обновить) график. В таком случае мой совет смысла не имеет. А если отключить обновления панели насовсем, то и все прочие элементы не будут обновляться.

Но, судя по последнему посту, достаточно отключить обновления панели, сделать необходимые изменения свойств и включить обновления обратно. Force Redraw уже по вкусу.
User avatar
dadreamer
professor
professor
 
Posts: 3128
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 790
I/O VIP vision internet

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

Postby Boris_K on 14 Jun 2018, 12:05

С Defer panel updates проблема решилась, Force redraw даже не использовал. Благодарю за совет.
Race conditions - опасный и скользкий баг!
Boris_K
developer
developer
 
Posts: 278
Joined: 28 Jan 2015, 14:25
LabVIEW Version: 2012 Pro
Karma: 6


Return to Лицевая панель

Who is online

Users browsing this forum: No registered users and 2 guests

cron