Обновление страниц на TabControl

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

Activity
assistant
assistant
Сообщения: 132
Зарегистрирован: 23 ноя 2007, 16:44
Награды: 1
Версия LabVIEW: 7.1;8.5.1
Откуда: Москва
Благодарил (а): 2 раза

Обновление страниц на TabControl

Сообщение tumanovalex »

Мне нравится создавать интерфейс программы с помощью TabControl. На первую страницу я выношу элементы управления, а на другие - элементы визуализации. К сожалению, при таком построении графики на других страницах не обновляются при активной первой странице и измененении значений в органах управления на первой странице. В прикрепленном файле дается пример, который это иллюстрирует. При изменении количества отчетов с 160 например до 1600 и запуске программы при активной первой странице график на второй странице не обновляется. В реальных программах у меня несколько страниц с графиками (графики исходных сигналов, графики промежуточных и окончательных результатов). Подскажите, пожалуйста, как сделать так, чтобы при активной первой странице, изменении на ней значений элементов управления и запуске программы обновлялись графики на других страницах.
Вложения
Change_Graph.zip
(22.33 КБ) 436 скачиваний
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Сообщение Eugen Graf »

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

2. Хочу сказать что XY-Plot является лучшим выбором из трёх видов представления графиков. Сам Waveform Graph является тем же XY-Plot-ом, подогнанным для представления сигнала. Если узнать с помощью SizeArray количество элементов в эррей X, то можно сделать эррей от 0 до этого количества, умножить каждый элемент на dt и прибавить t0, то можно представить то же самое на XY-Plot.

3. Построение программы на Tab Control не лучший вариант, но у каждого свой вкус. Вариантом получше является Sub Panel (правда я с ним не работал) или же разделение управления и представления данных на два разных окна (этим я всегда и пользуюсь).

4. Что касается блок диаграммы, то я не понимаю зачем нужен Frame Sequence.
Вложения
Change Graph.vi
(24.6 КБ) 384 скачивания
WaveformToXY.PNG
WaveformToXY.PNG (12.08 КБ) 11998 просмотров
tumanovalex

Activity
assistant
assistant
Сообщения: 132
Зарегистрирован: 23 ноя 2007, 16:44
Награды: 1
Версия LabVIEW: 7.1;8.5.1
Откуда: Москва
Благодарил (а): 2 раза

Сообщение tumanovalex »

Отвечаю на вопросы:
1. Обновлять нужно для того, посмотреть результаты работы (промежуточные, окончательные и др.) при изменении значений контролов. Если программа маленькая, то можно переключиться на нужную страницу, а если выполняется долго, то это плохо. Т.е. хотелось бы следующее: изменил значения на странице с контролами, запустил, посмотрел результаты на нужных вкладках.
2. Мне нужно посмотрель, в чем разница, раньше я с помощью функций Wafeform делал это на Waveform Graph, вообщем, посмотрю.
3. С Sub Panel не работал, даже не знаю, что это такое. Tab Control мне нравится, я могу сделать любое количество графиков любых размеров. Разделением управления и представления данных на два разных окна раньше не пользовался. Как это сделать и можно ли разместить в окне представления данных много графиков нужных размеров?
4. Frame Sequence не нужен, просто у меня есть простой шаблон из двух страниц и Frame Sequence (для сложных программ с последовательным выполнением). Я его просто не удаляю.
Я и дальше собираюсь использовать страницы, так что решение этой задачи для меня очень важно (реальная программа достаточно долго выполняется и требует удобной визуализации)
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Сообщение Eugen Graf »

К сожалению я никаких глюков в твоём VI не наблюдаю, или не совсем понимаю в чём проблема. У меня вроде всё обновляется:
иду на первую страницу, выставляю настройки, запускаю
потом иду на вторую и смотрю себе результат

всё в порядке.
tumanovalex

Activity
assistant
assistant
Сообщения: 132
Зарегистрирован: 23 ноя 2007, 16:44
Награды: 1
Версия LabVIEW: 7.1;8.5.1
Откуда: Москва
Благодарил (а): 2 раза

Сообщение tumanovalex »

Странно! Вот что у меня: F = 537, #s=160, Fs = 16000, Amp = 10. Активна Page1. Запускаю программу, переключаюсь на Page2, вижу чуть более 5 периодов. Запускаю при активной второй странице, все нормально, та же картина. Опять ативна первая страница, устанавливаю #s=1600 (в 10 раз больше), запускаю программу. Переключаюсь на страницу 2 и вижу опять ту же картину (чуть более 5 периодов). Запускаю программу при активной второй странице, вижу очень много периодов. Вывод: рисунок обновляется только при активной странице с этим рисунком. На всякий случай прикрепляю файл, на котором экспериментировал.
Запустил твой пример с XYGraph, особых преимуществ перед Waveform не заметил.
Вложения
Change Graph.vi
(98.69 КБ) 387 скачиваний
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Сообщение Eugen Graf »

Ок, теперь вроде бы понял в чём проблема, ну посмотрим, поищем что можно сделать.
tumanovalex

Activity
assistant
assistant
Сообщения: 132
Зарегистрирован: 23 ноя 2007, 16:44
Награды: 1
Версия LabVIEW: 7.1;8.5.1
Откуда: Москва
Благодарил (а): 2 раза

Сообщение tumanovalex »

Очень надеюсь на помощь, не могу никак понять, как можно решить эту проблемы
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Сообщение Eugen Graf »

Попробовал у себя. Всё делал как ты сказал, глюк отсутствует (версия 8.0.1)
Какую версию LabVIEW ты используешь? Посмотри в баглистинге, если что обратись в офис НИ.
Могу ещё дома на 7.1 попробовать, посмотрю может увижу глюк, напишу.

Попробуй взять совсем новый график, может ты где нибудь в свойствах переставил что нибудь и забыл.
tumanovalex

Activity
assistant
assistant
Сообщения: 132
Зарегистрирован: 23 ноя 2007, 16:44
Награды: 1
Версия LabVIEW: 7.1;8.5.1
Откуда: Москва
Благодарил (а): 2 раза

Сообщение tumanovalex »

Да, на 8 версии такого нет. Я использую обычно LabView 6.0, он быстрый и маленький без лишних красивостей. Раньше я глюков не замечал, это первый. Спасибо, что проверил. Теперь я буду знать особенности 6 версии.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Сообщение Eugen Graf »

Ну что, остановимся на этом или будем копать дальше и искать альтернативу? У меня правда только 6.1 и только для линукса имеется, посмотрю что будет.
tumanovalex писал(а):Да, на 8 версии такого нет. Я использую обычно LabView 6.0, он быстрый и маленький без лишних красивостей. Раньше я глюков не замечал, это первый. Спасибо, что проверил. Теперь я буду знать особенности 6 версии.
Наверное поэтому тебе на другух форумах никто и не отвечает, потому что не врубаются о чём ты спрашиваеш, т.к. шестая версия LabVIEW уже прошлый век.

И так, пробовал на 6.1для линукса, на 7.1, на 8.0.1 и на 8.2 и нигде глюка не наблюдается, сорри.
tumanovalex

Activity
assistant
assistant
Сообщения: 132
Зарегистрирован: 23 ноя 2007, 16:44
Награды: 1
Версия LabVIEW: 7.1;8.5.1
Откуда: Москва
Благодарил (а): 2 раза

Сообщение tumanovalex »

Все, спасибо, тему считаю закрытой. Посмотри, пожалуйста, мой вопрос по DLL, может быть поможешь.
Ответить

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