LabVIEW Shortcut Menu Plug-Ins
Добавлено: 23 авг 2016, 00:23
Одним із нововведень в 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 викладено багато цікавих плагінів, які можуть реально допомогти, та трошки облегшити життя автоматизацією якоїсь рутини... І всі вони мають відкритий код, тому можна з них почерпнути якісь ідеї для власних плагінів.
Скажу чесно – що мої знання в створені такого типу плагінів поверхові, оскільки, по-суті, це мій перший досвід у їхньому створенні. Але якщо в когось виникнуть якісь питання на цю тему – буду радий допомогти, та старатимуся знайти на них відповіді.
Було б цікаво також дізнатися, чи використовує хтось із учасників форуму у своїй практиці такі кастомні плагіни-меню? (це типу пінг, чи хтось взагалі читає пости в україномовному розділі нашого форуму )
На офіційному форумі 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 викладено багато цікавих плагінів, які можуть реально допомогти, та трошки облегшити життя автоматизацією якоїсь рутини... І всі вони мають відкритий код, тому можна з них почерпнути якісь ідеї для власних плагінів.
Скажу чесно – що мої знання в створені такого типу плагінів поверхові, оскільки, по-суті, це мій перший досвід у їхньому створенні. Але якщо в когось виникнуть якісь питання на цю тему – буду радий допомогти, та старатимуся знайти на них відповіді.
Було б цікаво також дізнатися, чи використовує хтось із учасників форуму у своїй практиці такі кастомні плагіни-меню? (це типу пінг, чи хтось взагалі читає пости в україномовному розділі нашого форуму )