Страница 1 из 1

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

Добавлено: 06 окт 2017, 22:09
jane_wild
Доброго всем здоровья ребята. Собственно вопрос озвучен в названии темы. Следует уточнить. У кнопки Mechanical Action -> Latch when released. Соотвентсвенно property node Value(Signaling) выдает ошибку. Все логично, ну а если очень хочется, то как программно попасть в кейс event структуры с обработкой нажания этой самой кнопки. Спасибо

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

Добавлено: 06 окт 2017, 22:38
dadreamer
jane_wild писал(а):У кнопки Mechanical Action -> Latch when released. Соотвентсвенно property node Value(Signaling) выдает ошибку.
Если вам надо только зайти в отдельный кадр события, можете сгенерировать User Event. А если надо поменять значение кнопки, это можно сделать через "волшебное" свойство Latch Value. Чтоб его увидеть, надо прописать SuperSecretPrivateSpecialStuff=True и активировать палитру скриптинга в настройках :labview: . Ну, или можно скопировать отсюда.

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

Добавлено: 07 окт 2017, 16:48
jane_wild
Мне нужно попасть именно в обработчик нажатия кнопки. Что в этом кейсе происходит, посмотреть нельзя, vi закрыт паролем. Да мне и не важно. Я хочу из главой программы управлять контролами на этой всплывающеей панели. И для этого у меня есть массив всех references этой панели. Так вот все получается, кроме кнопок, с latch. Идея вот чем: В "скриптовых" properties есть возможность читать и записывать mechanical action. Что если перед value signaling изменить mechanical action а потом вернуть обратно. В понедельник попробую. , дома LabVIEW не установлен.

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

Добавлено: 07 окт 2017, 18:17
dadreamer
jane_wild писал(а):Что в этом кейсе происходит, посмотреть нельзя, vi закрыт паролем.
Ну, это нынче не проблема. Есть хорошая "открывашка". Захотите - легко найдёте. :wink:
jane_wild писал(а):Идея вот чем: В "скриптовых" 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 в дополнение к текущим событиям. Иначе тут вряд ли как-то можно извернуться.

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

Добавлено: 07 окт 2017, 20:34
jane_wild
Спасибо сохранили мне время и избавили от проведения безуспешных тестов.
Ну, это нынче не проблема. Есть хорошая "открывашка". Захотите - легко найдёте.
Это был бы идеальный вариант. Вы это имели ввиду? Или вот это? Больше ничего путного не нашла.
Если рассматривать вариант полной переделки данного 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) Имеет ли этот вариант на жизнь? Будет ли это работать?

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

Добавлено: 07 окт 2017, 21:10
dadreamer
jane_wild писал(а):Это был бы идеальный вариант. Вы это имели ввиду?
Первое, ага. :wink: Только раздел там есть более удобный. Немножко не туда зашли.
jane_wild писал(а):Если рассматривать вариант полной переделки данного VI.
Полностью не требуется. Нужно только добавить обработчик User Event к существующим кадрам. Это буквально дело нескольких минут. Если совсем просто делать, то как-то так получится:
Latch_UE.vi
lv2013
(9.39 КБ) 117 скачиваний
jane_wild писал(а):Кнопка делается с 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) Имеет ли этот вариант на жизнь? Будет ли это работать?
Да, будет. Чуть посложнее просто - каждый раз надо будет отжимать кнопку.