Одним із нововведень в 2015 були так звані shortcut menu plug-ins – «кастомні» меню, які можна було використовувати не лише під час Run-Time, як звичайні shortcut меню, а й при edit-time – що суттєво покращує процес розробки програм, оскільки тепер можна добавляти прямо в корисні функції, які в ній не присутні. Наприклад, це такі функції (які є тепер стандартними) як Remove and Rewire – якщо для цього раніше треба було використовувати quick-drop, то тепер це стандартний пункт меню на блок діаграмі. Ще один приклад такої корисної функції – це Change to Array. За допомогою одного кліку, контрол/індикатор/константа з легкістю перетворюються в масив відповідного типу данних.
На офіційному форумі NI є спеціальна група для тих, хто розроблює подібні плагіни, і варто сказати, що там знаходиться досить таки багато цікавих розробок.
Сам процес розробки плагінів описаний також і в help-файлі (тема 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, тому ми привоюємо йому те ж саме ім’я, що і пункту меню. Шлях до віайки не змінюємо, оскільки ми цю віайку і будемо використовувати.
І, друга віайка - Execute Path Browser Options.vi. Вона буде виконуватися, коли ми виберемо той чи інший пункт меню. В ній і прописуємо код, який буде змінювати властивості Path контролу.
Щоб протестувати плагін – як це також описано в довідці – створимо віайку, і додамо в неї Invoke Node -> Menus: Refresh, оскільки, щоб щойно створені пункти меню плагіну з’явилися в меню, треба або перезапустити LabVIEW, або програмно оновити меню.
Тестуємо – наче працює.
Але можна трохи прикрасити плагін. Як саме? Зараз, при виборі пункту меню, після повторного натискання правої кнопки, ми не бачимо, яка опція вибрана – було б краще відображати на вибраній опції «галочку».
Такий функціонал можна добавити в віайці, де ми створюємо наші пункти меню. Перевіряємо, яка опція присвоєна зараз Path контролу, і якщо вона співпадає з кастомним пунктом меню, виділяємо її «галочкою»; якщо ні – галочку убираємо. Але, можливо, є більше елегантне рішення...
Перевіряємо – працює.
Таким чином, можна заключити, що плагіни – це не так і важко, і для розширення стандартного функціоналу LabVIEW якоюсь простою функцією, потрібно не так і багато часу. Але більш «софістикований» функціонал, буде вимагати більше зусиль.
Ще раз повторюся, в групі на форумі NI викладено багато цікавих плагінів, які можуть реально допомогти, та трошки облегшити життя автоматизацією якоїсь рутини... І всі вони мають відкритий код, тому можна з них почерпнути якісь ідеї для власних плагінів.
Скажу чесно – що мої знання в створені такого типу плагінів поверхові, оскільки, по-суті, це мій перший досвід у їхньому створенні. Але якщо в когось виникнуть якісь питання на цю тему – буду радий допомогти, та старатимуся знайти на них відповіді.
Було б цікаво також дізнатися, чи використовує хтось із учасників форуму у своїй практиці такі кастомні плагіни-меню? (це типу пінг, чи хтось взагалі читає пости в україномовному розділі нашого форуму )
LabVIEW Shortcut Menu Plug-Ins
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
LabVIEW Shortcut Menu Plug-Ins
- Вложения
-
- Test Plugin.vi
- (6.4 КБ) 302 скачивания
-
- Path Browser Options.llb
- (62.89 КБ) 311 скачиваний
Мы делили апельсин - много наших полегло...
-
Jakob Brontfeyn
- expert
- Сообщения: 1729
- Зарегистрирован: 28 фев 2008, 11:01
- Награды: 6
- Благодарил (а): 1 раз
- Контактная информация:
Re: LabVIEW Shortcut Menu Plug-Ins
Я читаю, тому шо народився і жив у Києві,Kosist писал(а):
Було б цікаво також дізнатися, чи використовує хтось із учасників форуму у своїй практиці такі кастомні плагіни-меню? (це типу пінг, чи хтось взагалі читає пости в україномовному розділі нашого форуму )
практично вільно володію українською мовою,
хоч моя рідна мова i російська.
Подивись тут, є у форумі окремі товаріши з Украіни
http://www.labviewportal.org/viewtopic. ... 19&p=44318
Плагін - інтересна тема, та у мене зараз є тільки LV-2014.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 3 Ответы
- 2075 Просмотры
-
Последнее сообщение PozhiloyGoblin
-
- 0 Ответы
- 346 Просмотры
-
Последнее сообщение maxim_MA
-
- 23 Ответы
- 2435 Просмотры
-
Последнее сообщение dadreamer
-
- 2 Ответы
- 391 Просмотры
-
Последнее сообщение ujin1
-
- 5 Ответы
- 848 Просмотры
-
Последнее сообщение dadreamer