Как программно кликнуть кнопкой?

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

Как программно кликнуть кнопкой?

Postby jane_wild on 06 Oct 2017, 22:09

Доброго всем здоровья ребята. Собственно вопрос озвучен в названии темы. Следует уточнить. У кнопки Mechanical Action -> Latch when released. Соотвентсвенно property node Value(Signaling) выдает ошибку. Все логично, ну а если очень хочется, то как программно попасть в кейс event структуры с обработкой нажания этой самой кнопки. Спасибо
User avatar
jane_wild
beginner
beginner
 
Posts: 34
Joined: 30 Jun 2016, 02:11
LabVIEW Version: 2013
Karma: 0

Re: Как программно кликнуть кнопкой?

Postby dadreamer on 06 Oct 2017, 22:38

jane_wild wrote:У кнопки Mechanical Action -> Latch when released. Соотвентсвенно property node Value(Signaling) выдает ошибку.

Если вам надо только зайти в отдельный кадр события, можете сгенерировать User Event. А если надо поменять значение кнопки, это можно сделать через "волшебное" свойство Latch Value. Чтоб его увидеть, надо прописать SuperSecretPrivateSpecialStuff=True и активировать палитру скриптинга в настройках :labview: . Ну, или можно скопировать отсюда.
Attachments
Latch Value.png
Latch Value.png (10.16 KiB) Viewed 144 times
Latch Value.vi
lv2013
(4.58 KiB) Downloaded 5 times
2017-10-07_0-33-29.jpg
2017-10-07_0-33-29.jpg (70.51 KiB) Viewed 144 times
User avatar
dadreamer
doctor
doctor
 
Posts: 2840
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 701
I/O VIP vision internet

Re: Как программно кликнуть кнопкой?

Postby jane_wild on 07 Oct 2017, 16:48

Мне нужно попасть именно в обработчик нажатия кнопки. Что в этом кейсе происходит, посмотреть нельзя, vi закрыт паролем. Да мне и не важно. Я хочу из главой программы управлять контролами на этой всплывающеей панели. И для этого у меня есть массив всех references этой панели. Так вот все получается, кроме кнопок, с latch. Идея вот чем: В "скриптовых" properties есть возможность читать и записывать mechanical action. Что если перед value signaling изменить mechanical action а потом вернуть обратно. В понедельник попробую. , дома LabVIEW не установлен.
User avatar
jane_wild
beginner
beginner
 
Posts: 34
Joined: 30 Jun 2016, 02:11
LabVIEW Version: 2013
Karma: 0

Re: Как программно кликнуть кнопкой?

Postby dadreamer on 07 Oct 2017, 18:17

jane_wild wrote:Что в этом кейсе происходит, посмотреть нельзя, vi закрыт паролем.

Ну, это нынче не проблема. Есть хорошая "открывашка". Захотите - легко найдёте. :wink:
jane_wild wrote:Идея вот чем: В "скриптовых" properties есть возможность читать и записывать mechanical action. Что если перед value signaling изменить mechanical action а потом вернуть обратно.

Не получится. Как иногда говорят, "выплывет" вот такая табличка :D
Error 1073 occurred at Property Node (arg 1) in Untitled 1

Possible reason(s):

LabVIEW: This property is writable only when the VI is in edit mode, or this method is available only when the VI is in edit mode.

Property Name: Mechanical Action

Вдобавок,
- Available in the LabVIEW Run-Time Engine: No

Так что надо рассмотреть другие варианты. Мне кажется, придётся переделать тот :vi: , чтобы он мог обрабатывать User Event в дополнение к текущим событиям. Иначе тут вряд ли как-то можно извернуться.
User avatar
dadreamer
doctor
doctor
 
Posts: 2840
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 701
I/O VIP vision internet

Re: Как программно кликнуть кнопкой?

Postby jane_wild on 07 Oct 2017, 20:34

Спасибо сохранили мне время и избавили от проведения безуспешных тестов.
Ну, это нынче не проблема. Есть хорошая "открывашка". Захотите - легко найдёте.

Это был бы идеальный вариант. Вы это имели ввиду? Или вот это? Больше ничего путного не нашла.
Если рассматривать вариант полной переделки данного VI. Хотела спросить совета.
Требование - Необходимо чтобы физическое поведение кнопки на экране было именно latch, в тоже самое время необходимо управлять нажатием на эту кнопку удаленно (программно).
Рассматриваю вариант, предложеннй Вами, с применением user event, а также вариант суть которого в следующем. Кнопка делается с mechanical Action -> switch when release c дефолтным состоянием false. User кликнул (кнопка в true) - Далее в event case (value change) property node -> value устанавливаем ее обратно в false. По идее несмотря на mechanical Action -> switch when release поведение будет похоже на latch when release и в тоже самое время возможно будет удаленно использовать property value(Signaling) Имеет ли этот вариант на жизнь? Будет ли это работать?
User avatar
jane_wild
beginner
beginner
 
Posts: 34
Joined: 30 Jun 2016, 02:11
LabVIEW Version: 2013
Karma: 0

Re: Как программно кликнуть кнопкой?

Postby dadreamer on 07 Oct 2017, 21:10

jane_wild wrote:Это был бы идеальный вариант. Вы это имели ввиду?

Первое, ага. :wink: Только раздел там есть более удобный. Немножко не туда зашли.
jane_wild wrote:Если рассматривать вариант полной переделки данного VI.

Полностью не требуется. Нужно только добавить обработчик User Event к существующим кадрам. Это буквально дело нескольких минут. Если совсем просто делать, то как-то так получится:
Latch_UE.vi
lv2013
(9.39 KiB) Downloaded 5 times

jane_wild wrote:Кнопка делается с mechanical Action -> switch when release c дефолтным состоянием false. User кликнул (кнопка в true) - Далее в event case (value change) property node -> value устанавливаем ее обратно в false. По идее несмотря на mechanical Action -> switch when release поведение будет похоже на latch when release и в тоже самое время возможно будет удаленно использовать property value(Signaling) Имеет ли этот вариант на жизнь? Будет ли это работать?

Да, будет. Чуть посложнее просто - каждый раз надо будет отжимать кнопку.
User avatar
dadreamer
doctor
doctor
 
Posts: 2840
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 701
I/O VIP vision internet


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

Who is online

Users browsing this forum: Baidu and 13 guests

cron