Секвенсер команд или свой миниязык минипрограммирования

Темы связанные с инженерными разработками, но не подходящие в другие ветки форума
Ответить
Аватара пользователя
Juri
I/O
I/O
Сообщения: 263
Зарегистрирован: 19 апр 2017, 23:06
Версия LabVIEW: 2021
Благодарил (а): 13 раз
Поблагодарили: 6 раз

Секвенсер команд или свой миниязык минипрограммирования

Сообщение Juri »

Может кто-нибудь сталкивался с похожими готовыми решениями?
Есть идея сделать что-то вроде похожего на лабвью графического интерфейса, в котором пользователь сможет класть на лицевую панель функцию, в которой будут входные и выходные параметры. Некоторые входные параметры заранее определяет пользователь, некоторые приходят из результатов работы других функций. Все как на блок-диаграмме обычного лабвью, только в примитивном виде. Пользователь должен иметь возможность свободно перетаскивать функции, проводить провода-связи между выходными и входными параметрами. Кол-во функций будет ограничено (например несколько десятков). Но пользователь должен иметь возможность создавать последовательности команд не ограниченной длины. Как они устроены внутри пользователь не знает. Все что он должен видеть показано на картинке.
Вложения
111111.png
Artem.spb

Activity Автор
professor
professor
Сообщения: 3404
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 175 раз
Контактная информация:

Re: Секвенсер команд или свой миниязык минипрограммирования

Сообщение Artem.spb »

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

Из готового Diadem напоминает по описанию, но я сам с ним не работал.

И ещё есть знакомый в одном стартапе, он рассказывал как раз про графический интерфейс с возможностью брать данные "от куда угодно" (имеются ввиду всякого рода БД) и организовывать всякую обработку. Если интересно, уточню название.
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Секвенсер команд или свой миниязык минипрограммирования

Сообщение Kosist »

Задача, конечно же, сложная, и неблагодарная. И, возможно, :labview: - не подходящий для этого инструмент.
Посмотрите код для этого тулкита - https://github.com/opengds/OpenGDS. В нем можно создавать UML диаграммы классов, и генерить код. Т.е. создавать классы, рисовать связи между ними, и т.д. Можно его взять за базу для "отрисовки", а остальную логику сделать "поверх" его.
Если есть шанс, что "графика" не особо важна, то я бы лучше смотрел в сторону TestStand. Для него можно создать собственный набор функций, и кастомизировать его так, что пользователь будет создавать секвенции и не "париться" по поводу остальных вещей (модели процессов, и т.д.). Тогда не нужно изобретать велосипед - т.к. TestStand сам по себе это мощный тест-фреймворк, и решают кучу задач "из коробки".
Ну и самый простой вариант - набор функций оформить как виайки на палету, и научить пользователей создавать код с их помощью :haha: .
Можно даже сделать программу, которая позволит запускать "внутри себя" :labview: редактор, который будет иметь ограниченные возможности, но позволит создавать код из набора нужных функций.
Мы делили апельсин - много наших полегло...
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Общие»