LabVIEW Shortcut Menu Plug-Ins

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

LabVIEW Shortcut Menu Plug-Ins

Postby Kosist on 23 Aug 2016, 00:23

Одним із нововведень в :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 KiB) Viewed 984 times

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

Перевіряємо – працює.
Menu Final.png
Menu Final.png (10.66 KiB) Viewed 984 times

Таким чином, можна заключити, що плагіни – це не так і важко, і для розширення стандартного функціоналу LabVIEW якоюсь простою функцією, потрібно не так і багато часу. Але більш «софістикований» функціонал, буде вимагати більше зусиль.

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

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

Було б цікаво також дізнатися, чи використовує хтось із учасників форуму у своїй практиці такі кастомні плагіни-меню? (це типу пінг, чи хтось взагалі читає пости в україномовному розділі нашого форуму :wink: )
Attachments
Test Plugin.vi
(6.4 KiB) Downloaded 44 times
Path Browser Options.llb
(62.89 KiB) Downloaded 43 times
Мы делили апельсин - много наших полегло...
User avatar
Kosist
leader
leader
 
Posts: 721
Joined: 21 Feb 2011, 23:44
Location: СумГУ
Medals: 2
Activity (1) Gold (1)
LabVIEW Version: 2013-2017
Karma: 220
CLAD I/O VIP students

Re: LabVIEW Shortcut Menu Plug-Ins

Postby Jakob Brontfeyn on 23 Aug 2016, 15:01

Kosist wrote:
Було б цікаво також дізнатися, чи використовує хтось із учасників форуму у своїй практиці такі кастомні плагіни-меню? (це типу пінг, чи хтось взагалі читає пости в україномовному розділі нашого форуму :wink: )


Я читаю, тому шо народився і жив у Києві,
практично вільно володію українською мовою,
хоч моя рідна мова i російська.
Подивись тут, є у форумі окремі товаріши з Украіни
viewtopic.php?f=462&t=2019&p=44318
Плагін - інтересна тема, та у мене зараз є тільки LV-2014.
User avatar
Jakob Brontfeyn
expert
expert
 
Posts: 1675
Joined: 28 Feb 2008, 11:01
Medals: 6
Activity (1) Gold (1) Silver (2) Black (2)
Karma: 224
VIP


Return to Середовище розробки

Who is online

Users browsing this forum: No registered users and 1 guest

cron