Arhn - архитектура программирования

Включите большое количество SubVI в основной VI

У меня есть большое количество (около 50) SubVI, в том числе, помимо определенного кода использования, небольшое количество элементов GUI (в основном около 2: ввод и вывод).

Моя цель состоит в том, чтобы повторно использовать эти ВП, не создавая огромного беспорядка в новом («основном») ВП, и собрать все элементы графического интерфейса пользователя на общей панели графического интерфейса пользователя, с которой, наконец, будет взаимодействовать пользователь.

Я пытался использовать Open VI Function, «Справочник VI» и «Выполнить SubVi», как в примерах, для создания ссылок на подпанели, но пользовательский интерфейс подпанели отображается только при запуске программы, а количество дополнительных блоков в основном больше, чем код в соответствующем SubVI. SubVI должны быть загружены только один раз для построения основного пользовательского интерфейса.

Кроме того: в этом руководстве они создают ВПП и воссоздают элементы графического интерфейса, которые уже определено в subVI. Я предполагаю, что это ведет себя как передача аргументов, как в текстовых языках программирования, таких как фрагмент:

def main_vi(x, y, z): # inputs x, y, z
    s = sub_vi(x, y, z) 
    return s # output s

Это необходимо, или элементы управления графическим интерфейсом subvi напрямую можно повторно использовать извне?

Можно ли использовать ВПП внутри «основного» ВП, который включает в себя все и отображает все в общий пользовательский интерфейс с помощью вкладок?

Или лучше все скопировать в основной ВП, т.е. вообще без повторного использования кода?

Заранее спасибо!

11.05.2019

  • Я не понимаю, о чем вы здесь спрашиваете. Какую проблему вы пытаетесь решить: блок-схема вашего основного ВП становится слишком сложной или вы спрашиваете, как повторно использовать код или элементы лицевой панели? Можете ли вы проиллюстрировать это несколькими снимками экрана и/или фрагментами VI? 13.05.2019
  • Вы можете инкапсулировать элементы FP каждого subvi в кластер typedef, а затем вставить каждый из них в FP вашего основного vi. Хотя, похоже, будет бардак. 13.05.2019
  • @Dave_St для основного VI приложения с графическим интерфейсом нормально иметь много элементов управления / индикаторов на своей диаграмме - я не могу сказать, заключается ли проблема спрашивающего просто в управлении проводкой и элементами управления / индикаторами (где кластеры typedef являются хорошим решением ), управление потоком данных (может потребоваться архитектура структуры событий) или инкапсуляция функций графического интерфейса пользователя в subVI (управляющие ссылки). Я подозреваю, что спрашивающий новичок в LabVIEW, и ответ будет простым, но без картинок трудно сказать. 14.05.2019
  • @nekomatic Я пытаюсь повторно использовать код из множества небольших Vis. К ним также относятся элементы графического интерфейса. Я хочу иметь возможность использовать их функциональный код, а также их элементы графического интерфейса на новом («основном») ВП, не создавая большого беспорядка. В идеале было бы возможно просто сослаться на каждый из них и подключить их в mainVI. На самом деле я не могу предоставить скриншоты, потому что у меня есть папка с большим количеством VI, и теперь я хочу новый VI, который использует почти все из них, отображая элементы GUI на одной панели. 14.05.2019
  • Вы можете напрямую управлять ими, получая контрольные ссылки. Вам нужно будет создать утилиту, которая будет регистрировать все ссылки управления fp для каждого запуска subvi. Затем в вашем основном vi вы можете ссылаться на каждый отдельный элемент управления, возможно, в структуре событий. Вам не придется переписывать какой-либо существующий код, но теперь у вас возникнет проблема управления 50 элементами управления vi на одной панели. 14.05.2019
  • Было бы очень полезно увидеть переднюю панель и блок-схему хотя бы одного из ваших ВПП, потому что без этого я все равно не знаю, что вам посоветовать. Я уверен, что есть прямой ответ, но сначала нам нужно понять проблему. 14.05.2019

Ответы:


1

В зависимости от функциональности, которую вы собираетесь использовать, вы можете заглянуть в XControls. Это позволит вам инкапсулировать вашу функциональность в многократно используемый элемент управления, который можно использовать на главной панели, не делая ее очень грязной.

14.05.2019

2

Большой пользовательский интерфейс может быть проблемой (каламбур с панелью не предназначен), особенно если есть много элементов управления и индикаторов. Есть несколько полезных способов разбить пользовательский интерфейс на модульные компоненты. XControls являются одними из них, но я не рекомендую их из-за их непредсказуемого поведения. Вместо этого изучите работу с подпанелями. Для этого есть отличный инструментарий от компании Moore Good Ideas (или MGI). Дополнительную информацию можно найти на их веб-сайте здесь.

Существует также лучшая альтернатива XControls, называемая QControls. Дополнительную информацию о них можно найти здесь.

В целом, однако, вы можете захотеть изучить более модульную структуру. Дополнительную информацию о платформах можно найти здесь.

20.06.2019
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..