Многооконность, проблемы

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

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 38 раз
Контактная информация:

Re: Многооконность, проблемы

Сообщение AndreyDmitriev »

Artem.spb писал(а):беседа успешно покинула рамки вопроса сворачивания окна :)
хотя непонятно, зачем вы так много времени потратили на решение вопроса сворачивания, если свёрнутое окно вам не нужно.
Да не берите в голову, просто Яков Иосифович в самом первом сообщении написал "слишком много букв" и истинная проблема утонула под наслоением окон и архитектуры и т.п.
На самом же деле всё описывается одной - единственной строкой. Множественные окна, их сворачивание, архитектура и т.п тут совершенно не при чём.

Правильный баг репорт пишется следующим образом:
Дано - два цикла, в которых обновляются индикаторы на передней панели, один из циклов содержит Property Node. (WinXP/LabVIEW 7.1)
Действие - пользователь нажимает и удерживает одну из кнопок управления окном (min/max/close)
Результат - Обновление индикаторов на передней панели прекращается. Цикл с Property Node останавливается.
Ожидаемый результат - Индикаторы должны обновляться, циклы не должны останавливаться.
Возможное решение - заменить кнопки на свои.

Я б послал это дело в NI, но вот под Win7/LabVIEW 2013 пока воспроизвести никак не могу (за исключением мелких траблов с modern индикаторами), а дёргать поддержку на предмет устаревших версий ОС - всё равно что с ветряными мельницами бороться.
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: Многооконность, проблемы

Сообщение Jakob Brontfeyn »

Спасибо Артем, утилиты пришлись очень кстати и помогли мне завершить начатое дело
для LV 6.0, сейчас предоставляются две функции, убирания влево и сворачивание окна,
как захочет пользователь.
Вложения
new.zip
(136.58 КБ) 182 скачивания
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Многооконность, проблемы

Сообщение Artem.spb »

Jakob Brontfeyn писал(а):как захочет пользователь.
кстати, это самый правильный вариант :)
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: Многооконность, проблемы

Сообщение Jakob Brontfeyn »

AndreyDmitriev писал(а):
Artem.spb писал(а):беседа успешно покинула рамки вопроса сворачивания окна :)
хотя непонятно, зачем вы так много времени потратили на решение вопроса сворачивания, если свёрнутое окно вам не нужно.
Да не берите в голову, просто Яков Иосифович в самом первом сообщении написал "слишком много букв" и истинная проблема утонула под наслоением окон и архитектуры и т.п.
На самом же деле всё описывается одной - единственной строкой. Множественные окна, их сворачивание, архитектура и т.п тут совершенно не при чём.

Правильный баг репорт пишется следующим образом:
Дано - два цикла, в которых обновляются индикаторы на передней панели, один из циклов содержит Property Node. (WinXP/LabVIEW 7.1)
Действие - пользователь нажимает и удерживает одну из кнопок управления окном (min/max/close)
Результат - Обновление индикаторов на передней панели прекращается. Цикл с Property Node останавливается.
Ожидаемый результат - Индикаторы должны обновляться, циклы не должны останавливаться.
Возможное решение - заменить кнопки на свои.

Я б послал это дело в NI, но вот под Win7/LabVIEW 2013 пока воспроизвести никак не могу (за исключением мелких траблов с modern индикаторами), а дёргать поддержку на предмет устаревших версий ОС - всё равно что с ветряными мельницами бороться.
Андрей, знаешь это уже не смешно, вот моя LV-2012,
Вот моя семерка, все это на работе висит как миленькая.
Специально добавил титульную надпись и меню чтобы
вызвать инфо по версии LV и показать себе еще раз как она висит.
Причем опасная зона здесь гораздо больше, это не только маленький
символ сворачивания для левой клавиши, а все поле всей титульной надписи,
если на него нажать и удерживать ПРАВОЙ клавишеи мышки.
Вложения
lv_2012_visit.jpg
win_7.jpg
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 38 раз
Контактная информация:

Re: Многооконность, проблемы

Сообщение AndreyDmitriev »

Jakob Brontfeyn писал(а):Спасибо Артем, утилиты пришлись очень кстати и помогли мне завершить начатое дело
для LV 6.0, сейчас предоставляются две функции, убирания влево и сворачивание окна,
как захочет пользователь.
Здорово! Осталось только избавиться от периодического опроса координат мыши и кнопок - сделать это на Event структуре и будет совсем красиво (ну и внешний вид немного причесать). Совсем хорошо - показывать какое окно активно и менять цвет заголовка при активации другого окна - но тут уж нет предела совершенству и полёту инженерной мысли...
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 38 раз
Контактная информация:

Re: Многооконность, проблемы

Сообщение AndreyDmitriev »

Jakob Brontfeyn писал(а): Андрей, знаешь это уже не смешно, вот моя LV-2012,
Вот моя семерка, все это на работе висит как миленькая.
Щас проверю, есть у меня идейка...

UPD - проверил, визуально останавливается всё, кроме мотора. Я думал дело в в визуальном оформлении - у меня был включён Aero, но вроде нет, не в этом.
Самое любопытное - мотор продолжает крутиться, а собачка останавливается, хотя с точки зрения LabVIEW в них отличий нет.
Но цикл не встаёт - он продолжает крутиться, просто на передней панели ничего не обновляется.
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: Многооконность, проблемы

Сообщение Jakob Brontfeyn »

Это как же получартся, кардиограф пишет нормальную кардиоргамму,
а пульс не прощупывается. :D Поверь мне на слово, прекращается также
передача по компорту с ПИД-регулятора и железо ( I-7024) вышибает установку
по ватчдогу через 10 секунд
Вообщем проблема уже решена, надо будет все вылизать, загнать в один суб-ВИ,
наверное буду делать такую вот "козу", "рыбу", "vorlage", как стандартную форму
окна.
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 38 раз
Контактная информация:

Re: Многооконность, проблемы

Сообщение AndreyDmitriev »

Jakob Brontfeyn писал(а):Это как же получартся, кардиограф пишет нормальную кардиоргамму,
а пульс не прощупывается. :D Поверь мне на слово, прекращается также
передача по компорту с ПИД-регулятора
Проверил на сврей железке, которая по последовательному порту общается - нет, тоже не останавливается, обмен продолжает идти, куда бы я ни нажимал. Есть что-то ещё, что мешает. Ну да ладно, надо будет просто иметь эту багофичу ввиду при разработке. Вообще при нажатии на заголовок окна программы обычно начинают работать быстрее (тому есть рациональное объяснение - это связано с отрисовкой), но чтобы вот так... Забавно.
Аватара пользователя
dadreamer

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

Re: Многооконность, проблемы

Сообщение dadreamer »

AndreyDmitriev писал(а):циклы общения с внешним железом зависимы от потока UI. Проблема решается выносом из времякритичных циклов всех элементов, чувствительных к блокировке этого потока.
Нашёл тождественную тему на форуме NI, и решение предложено такое же:
http://forums.ni.com/t5/LabVIEW/Click-a ... -p/1195021
Ну, и это туда же:
http://forums.ni.com/t5/LabVIEW/mouse-d ... ogin=False

Вообще, у меня в рабочих программах есть похожая проблема, суть которой - всё то же переключение в UI поток и обратно. С видеокамеры в цикле снимается некоторое количество данных, после чего выводится на обычный Vision'овский дисплей. Если начать скроллить фронтальную панель вверх-вниз или дёргать полосу прокрутки туда-сюда во время набора данных и отрисовки, то время выполнения программы заметно увеличивается. Из-за этого сбивается синхронизация с другим ПК и вообще меняется состояние отслеживаемого объекта, в результате программа может просто встать. Надо бы проверить ещё реакцию программы на сабж, думаю, поведение будет такое же. В общем, проблема ясная, решение озвучено.
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: Многооконность, проблемы

Сообщение Jakob Brontfeyn »

Не нашлось мальчика который скажет, что король голый, :D
проблема сделана там, где ее нет. Какие то UI потоки,
параллельные циклы очереди... и прочий "высший пилотаж"
Решение пришло как говориться с потолка после многих дней
раздумий и мучительной умственной работы, искра озарения...
Опишу кратко ход мыслей уже как говорится "после того" кагда знаешь.
1. Определимся с образом врага народа, эта титульная часть окна.
2. Для чего мы врага вынуждены использовать?, высвечивает имя ВИ, позволяет окно двигать и сворачивать.
3. Где должен враг сидеть когда он нам не нужен?, правильно в тюрме, чтобы его не было видно, и он не вредил.
4. На сколько секунд мы будем выпускать его на волю?, не более чем на 10, достаточно, чтобы подвигать,
или свернуть окно.
5. А как же с именем ВИ, его желательно видеть всегда? выводится на панель другим простейшим способом.
Ну не буду уничтожать уже практически готовый свой виндоподобный интерфейс, добавим в тот же ВИ
включение титула окна на 10 секунд. Смотрите пример. :D
Вложения
A22.zip
(169.16 КБ) 163 скачивания
Аватара пользователя
dadreamer

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

Re: Многооконность, проблемы

Сообщение dadreamer »

Jakob Brontfeyn

Просто так-то ещё и не посмотришь, без вашего тулкита... :)
Без имени-2.jpg
AndreyDmitriev

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 38 раз
Контактная информация:

Re: Многооконность, проблемы

Сообщение AndreyDmitriev »

dadreamer писал(а):Jakob Brontfeyn
Просто так-то ещё и не посмотришь, без вашего тулкита... :)
Эх, Зззондерррррфункционенннн... :D
Немецкий язык просто прекрасен.

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

Activity Professionalism Tutorials Gold Black
VIP
VIP
Сообщения: 1327
Зарегистрирован: 03 фев 2010, 00:42
Награды: 6
Версия LabVIEW: 6.1 - 2024
Откуда: Германия
Благодарил (а): 1 раз
Поблагодарили: 38 раз
Контактная информация:

Re: Многооконность, проблемы

Сообщение AndreyDmitriev »

Jakob Brontfeyn писал(а): 1. Определимся с образом врага народа, эта титульная часть окна.
2. Для чего мы врага вынуждены использовать?, высвечивает имя ВИ, позволяет окно двигать и сворачивать.
3. Где должен враг сидеть когда он нам не нужен?, правильно в тюрме, чтобы его не было видно, и он не вредил.
4. На сколько секунд мы будем выпускать его на волю?, не более чем на 10, достаточно, чтобы подвигать,
или свернуть окно.D
По сути - зачем же выпускать джина из бутылки опять? Да и не хорошо это - за пользователя решать, сколько ему окно двигать. Если я за 10 секунд не успел и титульная часть у меня прямо из под мышки исчезнет - с такой программой будет одно мучение работать - пользователь будет подсознательно ждать, что это дело вот-вот закроется. Вы ж почти сделали свою систему перемещения и сворачивания окон.
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: Многооконность, проблемы

Сообщение Jakob Brontfeyn »

Sory, забыл сохранить в библиотеке вместе со всеми суб-ВИ,
в новом варианте проблем не будет, кроме того связал кнопку включение титула еще и
с клавишей F1, вдруг пользователь загонит ее за пределы экрана и титул погаснет,
тогда все. Действительно надо довести начатую работу до конца,
но возможностью очень быстро влепить это решение в уже готовые VI тоже
пренебрегать не следует. Ролик Уoutube просто класс.
Вложения
A22_new.zip
(175 КБ) 153 скачивания
Pavel

Activity
developer
developer
Сообщения: 271
Зарегистрирован: 31 июл 2009, 08:07
Награды: 1
Версия LabVIEW: 8.5

Re: Многооконность, проблемы

Сообщение Pavel »

Если таймаут у события использовать то так же будет тормозить? Хотя тормозить будет но вот то что в таймауте должно исполняться.
ЗЫ: сори, ЛВ - нет, чтоб проверить.
Ответить

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