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

Простейшие вопросы в области инженерной разработки

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

Postby Select on 09 Aug 2019, 13:28

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

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

Такое реально и насколько это логично по отношению к существующему метоу с sub.vi или это просто бессмысленный полет фантазии шефа?
LabView 18
User avatar
Select
advanced
advanced
 
Posts: 179
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 18
Karma: 5

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

Postby IvanLis on 09 Aug 2019, 15:28

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


Реально все, зависит только от сил и времени, которое Вы готовы затратить на реализацию.

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

Посмотрите стандартные примеры, например .../Graphics/Graphics - A Basic Class Hierarchy.lvproj
как там работает глобальная функция Render Picture.vi
User avatar
IvanLis
professor
professor
 
Posts: 4840
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2015, 2016
Karma: 784
hardware VIP bloggers teachers

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

Postby Select on 09 Aug 2019, 16:23

Даже приблизительно не представляю, как можно средствами :labview: выполнить инкапсуляцию всех объектов. :cry:
Нашел пример на который Вы сослались
c:\...examples\Object-Oriented Programming\Graphics\Graphics - A Basic Class Hierarchy.lvproj
Попробую вкурить.
Благодарю за совет.
Единственный открытый вопрос, насколько и в каих случаях это оправдывает себя?
LabView 18
User avatar
Select
advanced
advanced
 
Posts: 179
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 18
Karma: 5

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

Postby IvanLis on 09 Aug 2019, 17:00

Select wrote:Единственный открытый вопрос, насколько и в каих случаях это оправдывает себя?


У Вас же сейчас все работает и без ООП...
А целесообразность и необходимость за Вас сформулировали :wink:

Я например ни разу в проектах не использовал ООП, за исключением сторонних уже готовых классов.
Но это дело вкуса, привычки и тема другого разговора, например http://labviewportal.ru/viewtopic.php?f=23&t=191
User avatar
IvanLis
professor
professor
 
Posts: 4840
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2015, 2016
Karma: 784
hardware VIP bloggers teachers

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

Postby IvanLis on 09 Aug 2019, 18:29

Сделал небольшой пример.
Делал в 2016, пересохранил в 2014, надеюсь откроется.
Hard.zip
lv2014 save from 2016
(84.33 KiB) Downloaded 23 times


Получилось так:
2019-08-09-181753_1600x900_scrot.png

Методы Connect и Get Data я переопределил.
Disconnect переопределять не стал, т.к. там входные данные и действия одинаковые.
Set Data - оставил Вам поиграть.

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

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

Посмотрите еще материалы: https://www.viewpointusa.com/TM/ar/labv ... ool-chest/
User avatar
IvanLis
professor
professor
 
Posts: 4840
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2015, 2016
Karma: 784
hardware VIP bloggers teachers

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

Postby Select on 11 Aug 2019, 12:40

В целом понятно, за пример гран мерси и действительно нудно, в моём случае вдвойне, т.к. предыдущий разраб наплодил кучу sub vi.
Отодвину изучение к тем ситуациям, когда требования будут жесткие. Все прекрасно работает без ООП.
LabView 18
User avatar
Select
advanced
advanced
 
Posts: 179
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 18
Karma: 5

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

Postby Select on 19 Aug 2019, 11:23

Спустя некоторое время такой конфигуратор удалось реализовать несколько другим методом.
На всю иерархию управления, включая суб vi, строились кластеры и их содержимое, включая элементы управления, логику и данные, заносить в бинарные файлы, далее соответственно в таких же удаленных vi все это считывать. Все работает.
LabView 18
User avatar
Select
advanced
advanced
 
Posts: 179
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 18
Karma: 5

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

Postby Select on 04 Oct 2019, 09:35

Хотелось бы вернуться к теме, открыл параллельную ветку в разделе
Насколько LTE Application Framework прост в освоении, насколько он универсален, с чего начинать, любые советы и рекомендации.
LabView 18
User avatar
Select
advanced
advanced
 
Posts: 179
Joined: 12 Dec 2017, 23:56
Location: Врата надежды.
LabVIEW Version: 18
Karma: 5


Return to Для чайников

Who is online

Users browsing this forum: Google and 1 guest

cron