LabVIEW Shortcut Menu Plug-Ins

Меню, налаштування, інструменти, браузер проекту і допомога
Ответить
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

LabVIEW Shortcut Menu Plug-Ins

Сообщение Kosist »

Одним із нововведень в :labview: 2015 були так звані shortcut menu plug-ins – «кастомні» меню, які можна було використовувати не лише під час Run-Time, як звичайні shortcut меню, а й при edit-time – що суттєво покращує процес розробки програм, оскільки тепер можна добавляти прямо в :labview: корисні функції, які в ній не присутні. Наприклад, це такі функції (які є тепер стандартними) як Remove and Rewire – якщо для цього раніше треба було використовувати quick-drop, то тепер це стандартний пункт меню на блок діаграмі. Ще один приклад такої корисної функції – це Change to Array. За допомогою одного кліку, контрол/індикатор/константа з легкістю перетворюються в масив відповідного типу данних.

На офіційному форумі NI є спеціальна група для тих, хто розроблює подібні плагіни, і варто сказати, що там знаходиться досить таки багато цікавих розробок.
Сам процес розробки плагінів описаний також і в help-файлі :labview: (тема Understanding Shortcut Menu Plug-Ins).

В данному пості я коротко на власному прикладі розпишу, як можна створити простий shortcut menu plug-in.

По замовчуванню, Path контрол дозволяє вибирати лише існуючі файли. Щоб змінити цю властивість, потрібно заходити в властивості контрола, і вибирати необхідні опції. Але особисто мені, в більшості випадків, вистачає дві конфігурації – можливість вибору файлів (нових та існучих), а також директорій (теж нових та існуючих). Тому, я опишу, як можна створити плагін із таким функціоналом: при натисканні правої кнопки миші на Path контрол, в меню буде два пункти: Select Files new and existing; і Select Folders new and existing. При виборі відповідного пункту меню, властивості Path контрол, відповідно, будуть змінені на потрібну опцію.

Щоб створити плагін, треба відкрити VI, що знаходиться тут: labview\resource\plugins\PopupMenus\Create Shortcut Menu Plug-In From Template.vi.
Це – VI-шаблон, в якій ми задаємо ім’я нашого плагіну (Path Browser Options), а також опцію, коли данний пукнт меню буде доступний – при редагуванні, чи ран-таймі. В нашому випадку, вибираємо Run-Time. Після цього, запускаємо віайку, і вона сама створить відповідні файли нашого плагіну.
По замовчуванню, файли плагіну будуть створені та збереженні в ...\Documents\LabVIEW Data\PopupMenus\edit time panel and diagram, кожен в своїй llb.
В бібліотеці Path Browser Options.llb знаходяться дві віайки, та один контрол.

Контрол Path Browser Options.ctl містить масив Generic Control Reference контролів, та відповідає за тип об’єктів, з якими буде працювати плагін. Щоб не заморочуватися, просто виберемо через ПКМ -> Select VI Server Class -> … необхідний тип контролів (Path).
Це забезпечить автоматичний виклик плагін-меню лише на контролах заданного типу, тобто якщо ми клікнемо на String-контролі, ми не побачимо пунктів меню цього плагіну, оскільки він буде діяти лише на Path контроли.

Path Browser Options.vi – відповідає за створення катомних пунктів меню. Сама по собі вона вже містить коментарії до коду та контролів, тому повторяти їх тут не буду. Ми використаємо цю віайку дуже просто – створимо два пункти меню, із назвами Select Files new and existing; і Select Folders new and existing. Забігаючи наперед, варто сказати, що в віайці для безпосереднього виконання алгоритму, пункти меню розрізняються за допомогою Menu Item Tag Suffix, тому ми привоюємо йому те ж саме ім’я, що і пункту меню. Шлях до віайки не змінюємо, оскільки ми цю віайку і будемо використовувати.
Options, initial.png
І, друга віайка - Execute Path Browser Options.vi. Вона буде виконуватися, коли ми виберемо той чи інший пункт меню. В ній і прописуємо код, який буде змінювати властивості Path контролу.
Execute snippet.png
Щоб протестувати плагін – як це також описано в довідці – створимо віайку, і додамо в неї Invoke Node -> Menus: Refresh, оскільки, щоб щойно створені пункти меню плагіну з’явилися в меню, треба або перезапустити LabVIEW, або програмно оновити меню.

Тестуємо – наче працює.
Menu Initial.png
Menu Initial.png (10.42 КБ) 5107 просмотров
Але можна трохи прикрасити плагін. Як саме? Зараз, при виборі пункту меню, після повторного натискання правої кнопки, ми не бачимо, яка опція вибрана – було б краще відображати на вибраній опції «галочку».
Такий функціонал можна добавити в віайці, де ми створюємо наші пункти меню. Перевіряємо, яка опція присвоєна зараз Path контролу, і якщо вона співпадає з кастомним пунктом меню, виділяємо її «галочкою»; якщо ні – галочку убираємо. Але, можливо, є більше елегантне рішення...
Options, final.png
Перевіряємо – працює.
Menu Final.png
Menu Final.png (10.66 КБ) 5107 просмотров
Таким чином, можна заключити, що плагіни – це не так і важко, і для розширення стандартного функціоналу LabVIEW якоюсь простою функцією, потрібно не так і багато часу. Але більш «софістикований» функціонал, буде вимагати більше зусиль.

Ще раз повторюся, в групі на форумі NI викладено багато цікавих плагінів, які можуть реально допомогти, та трошки облегшити життя автоматизацією якоїсь рутини... І всі вони мають відкритий код, тому можна з них почерпнути якісь ідеї для власних плагінів.

Скажу чесно – що мої знання в створені такого типу плагінів поверхові, оскільки, по-суті, це мій перший досвід у їхньому створенні. Але якщо в когось виникнуть якісь питання на цю тему – буду радий допомогти, та старатимуся знайти на них відповіді.

Було б цікаво також дізнатися, чи використовує хтось із учасників форуму у своїй практиці такі кастомні плагіни-меню? (це типу пінг, чи хтось взагалі читає пости в україномовному розділі нашого форуму :wink: )
Вложения
Test Plugin.vi
(6.4 КБ) 300 скачиваний
Path Browser Options.llb
(62.89 КБ) 310 скачиваний
Мы делили апельсин - много наших полегло...
Аватара пользователя
Jakob Brontfeyn

Activity Gold Silver Black
expert
expert
Сообщения: 1729
Зарегистрирован: 28 фев 2008, 11:01
Награды: 6
Благодарил (а): 1 раз
Контактная информация:

Re: LabVIEW Shortcut Menu Plug-Ins

Сообщение Jakob Brontfeyn »

Kosist писал(а):
Було б цікаво також дізнатися, чи використовує хтось із учасників форуму у своїй практиці такі кастомні плагіни-меню? (це типу пінг, чи хтось взагалі читає пости в україномовному розділі нашого форуму :wink: )
Я читаю, тому шо народився і жив у Києві,
практично вільно володію українською мовою,
хоч моя рідна мова i російська.
Подивись тут, є у форумі окремі товаріши з Украіни
http://www.labviewportal.org/viewtopic. ... 19&p=44318
Плагін - інтересна тема, та у мене зараз є тільки LV-2014.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Середовище розробки»