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

Простейшие вопросы в области инженерной разработки

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

Postby Select on 04 Sep 2018, 23:05

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
User avatar
Select
user
user
 
Posts: 81
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 14
Karma: -5

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

Postby Artem.spb on 05 Sep 2018, 11:49

Select wrote:Artem.spb,
С долгоиграющими такое не пройдёт, придётся руками открывать когда в окне возникла потребность и прятать, когда надо скрыть.

Это мой случай.

Судя по применяемым методам это совсем не ваш случай.

Пока что сделал так:
1. Заготовку кода system.exit держу в отдельном vi рабочий vi мастер (копия последнего exe) для работы по дальнейшей оптимизации и добавлению функций с доступом к структуре здесь же рядом.


По-моему каждый писавший вэтой теме говорил вам правильный метод реализации этого: во премя исполнения проверить, ехе это или нет. И если ехе, то выключать систему, а если исходники, то оставить как есть.
И не надо будет извращаться перед каждой компиляцией что-то куда-то копировать.
Artem.spb
expert
expert
 
Posts: 1371
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 237
CLD hardware I/O VIP freelance

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

Postby Borjomy_1 on 05 Sep 2018, 13:59

В совсем древних приложениях было так (первый рисунок):
Attachments
Закрытие панели при выполнении1.png
Закрытие панели при выполнении1.png (3.74 KiB) Viewed 209 times
Настройки свойств main.png
В последних даже этого нет- только настройки билдера. Единственное - кнопку "стоп" в режиме рунтайма прячу.
обработка закрытия FP.png
в обработчике событий прописана следующая реакция на закрытие панели нажатием на крестик. Если было подтверждение, то приложение закрывается и вызывается следующее событие
обработка закрытия FP.png (10.41 KiB) Viewed 209 times
обработка закрытия FP1.png
Программно нажимается кнопка "стоп"
обработка закрытия FP1.png (9.67 KiB) Viewed 209 times
обработка закрытия FP2.png
Выдается команда на остановку всех вспомогательных потоков и цикл завершается. Программа закроется, когда все остальные циклы выполнятся.
Borjomy_1
expert
expert
 
Posts: 1809
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 318
VIP

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

Postby Artem.spb on 05 Sep 2018, 15:04

Borjomy_1 wrote:В совсем древних приложениях было так (первый рисунок):

и это правильно.
Что мешает делать так и дальше?
только вместо FP.Close выключать всё что хочется
Artem.spb
expert
expert
 
Posts: 1371
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 237
CLD hardware I/O VIP freelance

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

Postby Borjomy_1 on 05 Sep 2018, 17:00

Artem.spb wrote:
Borjomy_1 wrote:В совсем древних приложениях было так (первый рисунок):

и это правильно.
Что мешает делать так и дальше?
только вместо FP.Close выключать всё что хочется

Потому что в готовом приложении, ИМХО, кнопки "стоп" быть не должно. Это масло масляное. Надо закрыть программу - нажимаешь крестик, появляется вопрос о подтверждении действия. В положительном случае программа завершается. Если брать старый вариант, то команду на останов надо каким-то образом давать. Нажатием на кнопку, например. Нестандартно. И сразу возникает вопрос - а почему крестик нельзя нажать сразу? Можно, но она остановится и закроется, но необходимые действия, вроде закрытия файлов, сохранения настроек и прочего, не будут выполнены. Опять возвращаемся к обработке события Panel Close?, Panel Close и Application Instance Close. А это крестик...
Borjomy_1
expert
expert
 
Posts: 1809
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 318
VIP

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

Postby Artem.spb on 05 Sep 2018, 18:37

Borjomy_1 wrote:
Artem.spb wrote:
Borjomy_1 wrote:В совсем древних приложениях было так (первый рисунок):

и это правильно.
Что мешает делать так и дальше?
только вместо FP.Close выключать всё что хочется

Потому что в готовом приложении, ИМХО, кнопки "стоп" быть не должно...

Я полностью с этим согласен.
И где я протестовал против такого подхода?
Я говорил о том, что при проверке события "закрылось" надо проверить, в рантайме мы, или в исходниках. И действовать по ситуации.
У меня в топах нет кнопок выхода, есть крест. И в самом конце топа стоит проверка. Если я в рантайме, вызываю "Exit LV", чтобы приложение не осталось висеть.
Все файлы-устройства и пр само собой закрылись к этом моменту.
Artem.spb
expert
expert
 
Posts: 1371
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 237
CLD hardware I/O VIP freelance

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

Postby taras_33 on 05 Sep 2018, 19:23

Если я в рантайме, вызываю "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!
User avatar
taras_33
adviser
adviser
 
Posts: 224
Joined: 31 Oct 2009, 18:25
Location: Minsk -> Miami
Medals: 1
Activity (1)
LabVIEW Version: 2016
Karma: 107
CLD

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

Postby taras_33 on 05 Sep 2018, 19:58

Это мой случай.
Пока что сделал так:
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!
User avatar
taras_33
adviser
adviser
 
Posts: 224
Joined: 31 Oct 2009, 18:25
Location: Minsk -> Miami
Medals: 1
Activity (1)
LabVIEW Version: 2016
Karma: 107
CLD

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

Postby Artem.spb on 06 Sep 2018, 01:02

taras_33 wrote:
Если я в рантайме, вызываю "Exit LV", чтобы приложение не осталось висеть.

Если тор с фронтальной панелью, то почему не Panel Close?

Исторически сложилось.
Закрыть FP вовсе не означает выгрузить всё из памяти.
Artem.spb
expert
expert
 
Posts: 1371
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 237
CLD hardware I/O VIP freelance

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

Postby Select on 09 Sep 2018, 09:16

taras_33,
Без обид, целиком согласен с Вами относительно моего опыта по части :labview: , спецкурсов не заканчивал и смотрю на него сквозь призму как на C-подобный синтаксис, который более лаконичен и читабелен, чем синтаксис С++, для человека, весьма поверхностно знающего, например, С, C# или Java, изначально служит !в помощь программисту, вместе с тем пригоден для проведения неплохой оптимизации кода компилятором.
Прекрасно понимаю тот факт, что занимаюсь, чистой воды интеграцией и реинжинирингом, что в понимании программистов есть лепнина. Что да, :labview: всячески пропагандирует и поддерживает такой, альтернативный подход освоения, а заодно и как часть стратегии продаж своего продукта с прикладными расширениями и множеством примеров. От того ими ведется неустанная работа и поощрения в пользу NI форумов. Перед теми кто фундаментально знает :labview: снимаю шляпу и поднимаю им карму, в каких то узких местах могу и сам что-то подсказать по части сопряжений с железом. Сидеть тупо обкуриваясь тиражируемой в тысячными изданиями теорией не получается, больше люблю познавать в реальных проектах и изучать опыт реальных людей в моих, не студенческих ситуациях. Думаю многие практики со мной согласятся.
LabView 14
User avatar
Select
user
user
 
Posts: 81
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 14
Karma: -5

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

Postby taras_33 on 09 Sep 2018, 22:14

Да какие могут быть обиды? Здесь уже упоминали, что на портале в основном "тусуются" инженеры в первую очередь, а программисты уже во вторую (студенты, которым нужно получить птичку в зачетке, не в счет) и я говорил что программистом являюсь во вторую очередь. Так ведь и 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!
User avatar
taras_33
adviser
adviser
 
Posts: 224
Joined: 31 Oct 2009, 18:25
Location: Minsk -> Miami
Medals: 1
Activity (1)
LabVIEW Version: 2016
Karma: 107
CLD

Previous

Return to Для чайников

Who is online

Users browsing this forum: Yandex and 10 guests

cron