Перехват VI в момент останова с полным выходом?

Простейшие вопросы в области инженерной разработки
Аватара пользователя
Select
developer
developer
Сообщения: 281
Зарегистрирован: 12 дек 2017, 23:56
Версия LabVIEW: 18
Откуда: Врата надежды.
Поблагодарили: 2 раза

Re: Перехват VI в момент останова с полным выходом?

Сообщение Select »

Artem.spb,
С долгоиграющими такое не пройдёт, придётся руками открывать когда в окне возникла потребность и прятать, когда надо скрыть.
Это мой случай.
Пока что сделал так:
1. Заготовку кода system.exit держу в отдельном vi рабочий vi мастер (копия последнего exe) для работы по дальнейшей оптимизации и добавлению функций с доступом к структуре здесь же рядом.
2. Перед компиляцией сохраняю на стороне master.vi
3.Подключаю процедуру exit и загоняю в exe.
Blackman,
А теперь самый простой и быстрый способ:
1. В GSW щелкнуть мышкой по пункту Blank Project (Создать новый пустой проект)
2. Открыть в Explorer место с проблемным :vi:
3. Мышкой перетащить этот :vi: из Explorer в My Computer проекта созданного в пункте 1)
4. Двойной щелчок мышки по :vi: в окне проекта откроет его в режиме редактирования.
5. ...
На досуге попробую, не представляю какие артефакты произойдут с sub.vi и под каким именем сохранять это бланк, чтоб не нарушилась ирархия....
3<4 :super:
LabView 14,18
Artem.spb

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

Re: Перехват VI в момент останова с полным выходом?

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

Select писал(а):Artem.spb,
С долгоиграющими такое не пройдёт, придётся руками открывать когда в окне возникла потребность и прятать, когда надо скрыть.
Это мой случай.
Судя по применяемым методам это совсем не ваш случай.
Пока что сделал так:
1. Заготовку кода system.exit держу в отдельном vi рабочий vi мастер (копия последнего exe) для работы по дальнейшей оптимизации и добавлению функций с доступом к структуре здесь же рядом.
По-моему каждый писавший вэтой теме говорил вам правильный метод реализации этого: во премя исполнения проверить, ехе это или нет. И если ехе, то выключать систему, а если исходники, то оставить как есть.
И не надо будет извращаться перед каждой компиляцией что-то куда-то копировать.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Перехват VI в момент останова с полным выходом?

Сообщение Borjomy_1 »

В совсем древних приложениях было так (первый рисунок):
Вложения
Закрытие панели при выполнении1.png
Закрытие панели при выполнении1.png (3.74 КБ) 4000 просмотров
В последних даже этого нет- только настройки билдера. Единственное - кнопку &quot;стоп&quot; в режиме рунтайма прячу.
В последних даже этого нет- только настройки билдера. Единственное - кнопку "стоп" в режиме рунтайма прячу.
в обработчике событий прописана следующая реакция на закрытие панели нажатием на крестик. Если было подтверждение, то приложение закрывается и вызывается следующее событие
в обработчике событий прописана следующая реакция на закрытие панели нажатием на крестик. Если было подтверждение, то приложение закрывается и вызывается следующее событие
обработка закрытия FP.png (10.41 КБ) 4000 просмотров
Программно нажимается кнопка &quot;стоп&quot;
Программно нажимается кнопка "стоп"
обработка закрытия FP1.png (9.67 КБ) 4000 просмотров
Выдается команда на остановку всех вспомогательных потоков и цикл завершается. Программа закроется, когда все остальные циклы выполнятся.
Выдается команда на остановку всех вспомогательных потоков и цикл завершается. Программа закроется, когда все остальные циклы выполнятся.
Artem.spb

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

Re: Перехват VI в момент останова с полным выходом?

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

Borjomy_1 писал(а):В совсем древних приложениях было так (первый рисунок):
и это правильно.
Что мешает делать так и дальше?
только вместо FP.Close выключать всё что хочется
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Перехват VI в момент останова с полным выходом?

Сообщение Borjomy_1 »

Artem.spb писал(а):
Borjomy_1 писал(а):В совсем древних приложениях было так (первый рисунок):
и это правильно.
Что мешает делать так и дальше?
только вместо FP.Close выключать всё что хочется
Потому что в готовом приложении, ИМХО, кнопки "стоп" быть не должно. Это масло масляное. Надо закрыть программу - нажимаешь крестик, появляется вопрос о подтверждении действия. В положительном случае программа завершается. Если брать старый вариант, то команду на останов надо каким-то образом давать. Нажатием на кнопку, например. Нестандартно. И сразу возникает вопрос - а почему крестик нельзя нажать сразу? Можно, но она остановится и закроется, но необходимые действия, вроде закрытия файлов, сохранения настроек и прочего, не будут выполнены. Опять возвращаемся к обработке события Panel Close?, Panel Close и Application Instance Close. А это крестик...
Artem.spb

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

Re: Перехват VI в момент останова с полным выходом?

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

Borjomy_1 писал(а):
Artem.spb писал(а):
Borjomy_1 писал(а):В совсем древних приложениях было так (первый рисунок):
и это правильно.
Что мешает делать так и дальше?
только вместо FP.Close выключать всё что хочется
Потому что в готовом приложении, ИМХО, кнопки "стоп" быть не должно...
Я полностью с этим согласен.
И где я протестовал против такого подхода?
Я говорил о том, что при проверке события "закрылось" надо проверить, в рантайме мы, или в исходниках. И действовать по ситуации.
У меня в топах нет кнопок выхода, есть крест. И в самом конце топа стоит проверка. Если я в рантайме, вызываю "Exit LV", чтобы приложение не осталось висеть.
Все файлы-устройства и пр само собой закрылись к этом моменту.
Аватара пользователя
taras_33

Activity
professional
professional
Сообщения: 391
Зарегистрирован: 31 окт 2009, 18:25
Награды: 1
Версия LabVIEW: 2019
Поблагодарили: 13 раз
Контактная информация:

Re: Перехват VI в момент останова с полным выходом?

Сообщение taras_33 »

Если я в рантайме, вызываю "Exit LV", чтобы приложение не осталось висеть.
Если тор с фронтальной панелью, то почему не Panel Close?
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
Аватара пользователя
taras_33

Activity
professional
professional
Сообщения: 391
Зарегистрирован: 31 окт 2009, 18:25
Награды: 1
Версия LabVIEW: 2019
Поблагодарили: 13 раз
Контактная информация:

Re: Перехват VI в момент останова с полным выходом?

Сообщение taras_33 »

Это мой случай.
Пока что сделал так:
1. Заготовку кода system.exit держу в отдельном vi рабочий vi мастер (копия последнего exe) для работы по дальнейшей оптимизации и добавлению функций с доступом к структуре здесь же рядом.
2. Перед компиляцией сохраняю на стороне master.vi
3.Подключаю процедуру exit и загоняю в exe.
Select вам бы немного теорию почитать, принципы программирования на LV.
Вы мне напоминаете одного старого электрика, которого я знал. Он имел огромный практический опыт, при полной отсуствии теории. Так вот, я пытался объяснить ему закон Ома - при повышении напряжения на постоянной нагрузке, возрастает ток бла бла бла... Но он говорил фигня это всё, видишь я мельницу запускаю (мотор 100кВт) свет в цеху притухает, отсюда вывод - уменьшилось напряжение значит вырос ток. И ничего слушать не хотел, при любых моих попытках объяснить почему так происходит. Так же и вы, без обид, игнорируете любые советы, которые вам дают.... Хотя чувствуется что имеете опыт логичекое мышление и запас знаний.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
Artem.spb

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

Re: Перехват VI в момент останова с полным выходом?

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

taras_33 писал(а):
Если я в рантайме, вызываю "Exit LV", чтобы приложение не осталось висеть.
Если тор с фронтальной панелью, то почему не Panel Close?
Исторически сложилось.
Закрыть FP вовсе не означает выгрузить всё из памяти.
Аватара пользователя
Select
developer
developer
Сообщения: 281
Зарегистрирован: 12 дек 2017, 23:56
Версия LabVIEW: 18
Откуда: Врата надежды.
Поблагодарили: 2 раза

Re: Перехват VI в момент останова с полным выходом?

Сообщение Select »

taras_33,
Без обид, целиком согласен с Вами относительно моего опыта по части :labview: , спецкурсов не заканчивал и смотрю на него сквозь призму как на C-подобный синтаксис, который более лаконичен и читабелен, чем синтаксис С++, для человека, весьма поверхностно знающего, например, С, C# или Java, изначально служит !в помощь программисту, вместе с тем пригоден для проведения неплохой оптимизации кода компилятором.
Прекрасно понимаю тот факт, что занимаюсь, чистой воды интеграцией и реинжинирингом, что в понимании программистов есть лепнина. Что да, :labview: всячески пропагандирует и поддерживает такой, альтернативный подход освоения, а заодно и как часть стратегии продаж своего продукта с прикладными расширениями и множеством примеров. От того ими ведется неустанная работа и поощрения в пользу NI форумов. Перед теми кто фундаментально знает :labview: снимаю шляпу и поднимаю им карму, в каких то узких местах могу и сам что-то подсказать по части сопряжений с железом. Сидеть тупо обкуриваясь тиражируемой в тысячными изданиями теорией не получается, больше люблю познавать в реальных проектах и изучать опыт реальных людей в моих, не студенческих ситуациях. Думаю многие практики со мной согласятся.
LabView 14,18
Аватара пользователя
taras_33

Activity
professional
professional
Сообщения: 391
Зарегистрирован: 31 окт 2009, 18:25
Награды: 1
Версия LabVIEW: 2019
Поблагодарили: 13 раз
Контактная информация:

Re: Перехват VI в момент останова с полным выходом?

Сообщение taras_33 »

Да какие могут быть обиды? Здесь уже упоминали, что на портале в основном "тусуются" инженеры в первую очередь, а программисты уже во вторую (студенты, которым нужно получить птичку в зачетке, не в счет) и я говорил что программистом являюсь во вторую очередь. Так ведь и LabVIEW задумывался в помощь таким вот инженерам, и позволяет решать задачи в разы быстрее, особенно если эти задачи связаны с железом.

Присоединяюсь к Вам и согласен на 100% что
Перед теми кто фундаментально знает :labview: снимаю шляпу и поднимаю им карму
Сам хотел бы фундаментально знать, и не только LabVIEW. Много чего другого интересного по жизни есть, жаль на все времени нет, слишком она короткая :D
больше люблю познавать в реальных проектах
И здесь соглашусь, сидеть тупо обкуриваясь не нужно, но самые базовые принципы знать не помешало бы.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
Аватара пользователя
Select
developer
developer
Сообщения: 281
Зарегистрирован: 12 дек 2017, 23:56
Версия LabVIEW: 18
Откуда: Врата надежды.
Поблагодарили: 2 раза

Re: Перехват VI в момент останова с полным выходом?

Сообщение Select »

Select писал(а):По глупости, забыл сохранить vi с остановом в меню :labview: , стартует сразу в модальном виде с отключенной панелью, так же отсутствует кнопка Stop для полного выхода из :labview:
Существует ли метод перехвата до полного завершения, Или во время старта. Мне нужно для дальнейших работ держать этот vi в резерве с доступом к меню :labview: ?
Все оказалось до неприличия просто, я предполагал что искомые команды есть, и они таки есть и без танцев с бубном:
Такое вот Троекнопие - Остановка vi с переходом в отладку Ctrl - . :D
Здесь же, для тех кто не знает, прикрепляю и остальные полезности:
Вложения
Горячие клавиши LabView.png
LabView 14,18
Аватара пользователя
taras_33

Activity
professional
professional
Сообщения: 391
Зарегистрирован: 31 окт 2009, 18:25
Награды: 1
Версия LabVIEW: 2019
Поблагодарили: 13 раз
Контактная информация:

Re: Перехват VI в момент останова с полным выходом?

Сообщение taras_33 »

Вот здесь покрасивше будет :D
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
Аватара пользователя
Select
developer
developer
Сообщения: 281
Зарегистрирован: 12 дек 2017, 23:56
Версия LabVIEW: 18
Откуда: Врата надежды.
Поблагодарили: 2 раза

Re: Перехват VI в момент останова с полным выходом?

Сообщение Select »

Из всех в.п. мне больше всего нравится
Ctrl-B
Deletes all broken wires in a VI.
Особенно когда портянка не помещается в 1 экран.
LabView 14,18
Аватара пользователя
taras_33

Activity
professional
professional
Сообщения: 391
Зарегистрирован: 31 окт 2009, 18:25
Награды: 1
Версия LabVIEW: 2019
Поблагодарили: 13 раз
Контактная информация:

Re: Перехват VI в момент останова с полным выходом?

Сообщение taras_33 »

Из всех в.п. мне больше всего нравится
А мне Ctrl + Space
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
Ответить

Вернуться в «Для чайников»