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

Простейшие вопросы в области инженерной разработки
Ответить
Аватара пользователя
jane_wild
master
master
Сообщения: 459
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 83 раза
Поблагодарили: 15 раз
Контактная информация:

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

Сообщение jane_wild »

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

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

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

Сообщение dadreamer »

jane_wild писал(а):У кнопки Mechanical Action -> Latch when released. Соотвентсвенно property node Value(Signaling) выдает ошибку.
Если вам надо только зайти в отдельный кадр события, можете сгенерировать User Event. А если надо поменять значение кнопки, это можно сделать через "волшебное" свойство Latch Value. Чтоб его увидеть, надо прописать SuperSecretPrivateSpecialStuff=True и активировать палитру скриптинга в настройках :labview: . Ну, или можно скопировать отсюда.
Вложения
Latch Value.png
Latch Value.png (10.16 КБ) 3424 просмотра
Latch Value.vi
lv2013
(4.58 КБ) 129 скачиваний
2017-10-07_0-33-29.jpg
2017-10-07_0-33-29.jpg (70.51 КБ) 3424 просмотра
Аватара пользователя
jane_wild
master
master
Сообщения: 459
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 83 раза
Поблагодарили: 15 раз
Контактная информация:

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

Сообщение jane_wild »

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

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

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

Сообщение 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 в дополнение к текущим событиям. Иначе тут вряд ли как-то можно извернуться.
Аватара пользователя
jane_wild
master
master
Сообщения: 459
Зарегистрирован: 30 июн 2016, 02:11
Версия LabVIEW: 2020
Благодарил (а): 83 раза
Поблагодарили: 15 раз
Контактная информация:

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

Сообщение 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) Имеет ли этот вариант на жизнь? Будет ли это работать?
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

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

Сообщение dadreamer »

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

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