Page 3 of 4

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

PostPosted: 04 Sep 2018, 23:05
by 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:

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

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

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

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

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


По-моему каждый писавший вэтой теме говорил вам правильный метод реализации этого: во премя исполнения проверить, ехе это или нет. И если ехе, то выключать систему, а если исходники, то оставить как есть.
И не надо будет извращаться перед каждой компиляцией что-то куда-то копировать.

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

PostPosted: 05 Sep 2018, 13:59
by Borjomy_1
В совсем древних приложениях было так (первый рисунок):

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

PostPosted: 05 Sep 2018, 15:04
by Artem.spb
Borjomy_1 wrote:В совсем древних приложениях было так (первый рисунок):

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

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

PostPosted: 05 Sep 2018, 17:00
by Borjomy_1
Artem.spb wrote:
Borjomy_1 wrote:В совсем древних приложениях было так (первый рисунок):

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

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

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

PostPosted: 05 Sep 2018, 18:37
by Artem.spb
Borjomy_1 wrote:
Artem.spb wrote:
Borjomy_1 wrote:В совсем древних приложениях было так (первый рисунок):

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

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

Я полностью с этим согласен.
И где я протестовал против такого подхода?
Я говорил о том, что при проверке события "закрылось" надо проверить, в рантайме мы, или в исходниках. И действовать по ситуации.
У меня в топах нет кнопок выхода, есть крест. И в самом конце топа стоит проверка. Если я в рантайме, вызываю "Exit LV", чтобы приложение не осталось висеть.
Все файлы-устройства и пр само собой закрылись к этом моменту.

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

PostPosted: 05 Sep 2018, 19:23
by taras_33
Если я в рантайме, вызываю "Exit LV", чтобы приложение не осталось висеть.

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

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

PostPosted: 05 Sep 2018, 19:58
by taras_33
Это мой случай.
Пока что сделал так:
1. Заготовку кода system.exit держу в отдельном vi рабочий vi мастер (копия последнего exe) для работы по дальнейшей оптимизации и добавлению функций с доступом к структуре здесь же рядом.
2. Перед компиляцией сохраняю на стороне master.vi
3.Подключаю процедуру exit и загоняю в exe.

Select вам бы немного теорию почитать, принципы программирования на LV.
Вы мне напоминаете одного старого электрика, которого я знал. Он имел огромный практический опыт, при полной отсуствии теории. Так вот, я пытался объяснить ему закон Ома - при повышении напряжения на постоянной нагрузке, возрастает ток бла бла бла... Но он говорил фигня это всё, видишь я мельницу запускаю (мотор 100кВт) свет в цеху притухает, отсюда вывод - уменьшилось напряжение значит вырос ток. И ничего слушать не хотел, при любых моих попытках объяснить почему так происходит. Так же и вы, без обид, игнорируете любые советы, которые вам дают.... Хотя чувствуется что имеете опыт логичекое мышление и запас знаний.

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

PostPosted: 06 Sep 2018, 01:02
by Artem.spb
taras_33 wrote:
Если я в рантайме, вызываю "Exit LV", чтобы приложение не осталось висеть.

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

Исторически сложилось.
Закрыть FP вовсе не означает выгрузить всё из памяти.

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

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

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

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

Присоединяюсь к Вам и согласен на 100% что
Перед теми кто фундаментально знает :labview: снимаю шляпу и поднимаю им карму
Сам хотел бы фундаментально знать, и не только LabVIEW. Много чего другого интересного по жизни есть, жаль на все времени нет, слишком она короткая :D
больше люблю познавать в реальных проектах

И здесь соглашусь, сидеть тупо обкуриваясь не нужно, но самые базовые принципы знать не помешало бы.

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

PostPosted: 08 Nov 2018, 23:41
by Select
Select wrote:По глупости, забыл сохранить vi с остановом в меню :labview: , стартует сразу в модальном виде с отключенной панелью, так же отсутствует кнопка Stop для полного выхода из :labview:
Существует ли метод перехвата до полного завершения, Или во время старта. Мне нужно для дальнейших работ держать этот vi в резерве с доступом к меню :labview: ?


Все оказалось до неприличия просто, я предполагал что искомые команды есть, и они таки есть и без танцев с бубном:
Такое вот Троекнопие - Остановка vi с переходом в отладку Ctrl - . :D
Здесь же, для тех кто не знает, прикрепляю и остальные полезности:

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

PostPosted: 09 Nov 2018, 05:14
by taras_33
Вот здесь покрасивше будет :D

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

PostPosted: 09 Nov 2018, 12:51
by Select
Из всех в.п. мне больше всего нравится
Ctrl-B
Deletes all broken wires in a VI.
Особенно когда портянка не помещается в 1 экран.

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

PostPosted: 09 Nov 2018, 15:30
by taras_33
Из всех в.п. мне больше всего нравится

А мне Ctrl + Space