Конфигуратор?

Простейшие вопросы в области инженерной разработки
Ответить
Аватара пользователя
Select
developer
developer
Сообщения: 281
Зарегистрирован: 12 дек 2017, 23:56
Версия LabVIEW: 18
Откуда: Врата надежды.
Поблагодарили: 2 раза

Конфигуратор?

Сообщение Select »

Всем привет.
В поисках решения вопроса в задаче, которую мне нафантизировал шеф.
Имеем некий GUI для управления двумя устройствами посредством USB COM. Устройства по своей логике и управлению полностью идентичны с той лишь разницей что у них команды по одним и тем же функциям, передаваемые и считываемые разные. На данный момент построены 2 sub vi. , которые ничем друг от друга по функционалу и дизайну не отличаются и запускаются юзером поочередно из главной vi, в зависимости от того, каким прибором нужно управлять.
Шеф поставил задачу все построить под одной vi в которой в зависимости от того каким прибором нужно управлять, присутствует селектор в виде элемента управления Text Ring. Таким образом необходимо менять все значения в стрингах, а так же конфигурациях COM (Visa) не затрагивая элементы контроля и управления на передней панели.

Логика управления имеет множественные вложенные иерархические конструкции с разными структурами. Обращения к COM не объединены одной структурой.

Такое реально и насколько это логично по отношению к существующему метоу с sub.vi или это просто бессмысленный полет фантазии шефа?
LabView 14,18
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Конфигуратор?

Сообщение IvanLis »

Select писал(а):Такое реально и насколько это логично по отношению к существующему метоу с sub.vi или это просто бессмысленный полет фантазии шефа?
Реально все, зависит только от сил и времени, которое Вы готовы затратить на реализацию.

Если прям совсем правильно делать, то можно использовать возможности ООП.
Будет у Вас класс "Устройство" описываете свойства и методы.
От базового класса делаете двух наследников: "Устройство-1" и "Устройство-2". Переопределяете методы. Получатся своего рода полиморфные функции, которые в зависимости от класса на входе, будут по разному работать.
Дальше по логике....

Посмотрите стандартные примеры, например .../Graphics/Graphics - A Basic Class Hierarchy.lvproj
как там работает глобальная функция Render Picture.vi
Аватара пользователя
Select
developer
developer
Сообщения: 281
Зарегистрирован: 12 дек 2017, 23:56
Версия LabVIEW: 18
Откуда: Врата надежды.
Поблагодарили: 2 раза

Re: Конфигуратор?

Сообщение Select »

Даже приблизительно не представляю, как можно средствами :labview: выполнить инкапсуляцию всех объектов. :cry:
Нашел пример на который Вы сослались
c:\...examples\Object-Oriented Programming\Graphics\Graphics - A Basic Class Hierarchy.lvproj
Попробую вкурить.
Благодарю за совет.
Единственный открытый вопрос, насколько и в каих случаях это оправдывает себя?
LabView 14,18
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Конфигуратор?

Сообщение IvanLis »

Select писал(а):Единственный открытый вопрос, насколько и в каих случаях это оправдывает себя?
У Вас же сейчас все работает и без ООП...
А целесообразность и необходимость за Вас сформулировали :wink:

Я например ни разу в проектах не использовал ООП, за исключением сторонних уже готовых классов.
Но это дело вкуса, привычки и тема другого разговора, например http://labviewportal.org/viewtopic.php?f=23&t=191
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Конфигуратор?

Сообщение IvanLis »

Сделал небольшой пример.
Делал в 2016, пересохранил в 2014, надеюсь откроется.
Hard.zip
lv2014 save from 2016
(84.33 КБ) 96 скачиваний
Получилось так:
2019-08-09-181753_1600x900_scrot.png
Методы Connect и Get Data я переопределил.
Disconnect переопределять не стал, т.к. там входные данные и действия одинаковые.
Set Data - оставил Вам поиграть.

Принцип думаю понятен, дальше нужно наращивать...

Что касается инкапсуляции, это не самое сложное и реализуется просто, правда кажется нудным, т.к. прямого доступа пользователь к свойствам не имеет, а модифицировать и читать их может через реализованные Вами интерфейсы (методы), получается по два на свойство :wink:

Посмотрите еще материалы: https://www.viewpointusa.com/TM/ar/labv ... ool-chest/
Аватара пользователя
Select
developer
developer
Сообщения: 281
Зарегистрирован: 12 дек 2017, 23:56
Версия LabVIEW: 18
Откуда: Врата надежды.
Поблагодарили: 2 раза

Re: Конфигуратор?

Сообщение Select »

В целом понятно, за пример гран мерси и действительно нудно, в моём случае вдвойне, т.к. предыдущий разраб наплодил кучу sub vi.
Отодвину изучение к тем ситуациям, когда требования будут жесткие. Все прекрасно работает без ООП.
LabView 14,18
Аватара пользователя
Select
developer
developer
Сообщения: 281
Зарегистрирован: 12 дек 2017, 23:56
Версия LabVIEW: 18
Откуда: Врата надежды.
Поблагодарили: 2 раза

Re: Конфигуратор?

Сообщение Select »

Спустя некоторое время такой конфигуратор удалось реализовать несколько другим методом.
На всю иерархию управления, включая суб vi, строились кластеры и их содержимое, включая элементы управления, логику и данные, заносить в бинарные файлы, далее соответственно в таких же удаленных vi все это считывать. Все работает.
LabView 14,18
Аватара пользователя
Select
developer
developer
Сообщения: 281
Зарегистрирован: 12 дек 2017, 23:56
Версия LabVIEW: 18
Откуда: Врата надежды.
Поблагодарили: 2 раза

Re: Конфигуратор?

Сообщение Select »

Хотелось бы вернуться к теме, открыл параллельную ветку в разделе
Насколько LTE Application Framework прост в освоении, насколько он универсален, с чего начинать, любые советы и рекомендации.
LabView 14,18
Ответить

Вернуться в «Для чайников»