создание независимых приложений на основе LabView

Создание приложений, библиотек, инсталляторов
Ответить
MaxGal
interested
interested
Сообщения: 4
Зарегистрирован: 04 янв 2016, 14:59
Версия LabVIEW: 2010
Контактная информация:

создание независимых приложений на основе LabView

Сообщение MaxGal »

Всем привет.
Вопрос дилетанта (я не программист).
Есть программа, написанная на LabView (писал не я).
Человек, который писал эту программу (писал лет 10 назад) говорит, что саму программу (алгоритм) можно
реализовать на C++ (или C). Вроде в LabView (в графической среде) намного легче визуально разработать и отладить
алгоритм обработки. А затем реализовать то же на C++ (или C), чем с нуля писать все на C++ (или C).
И, вроде, это, с его слов, реализовать весьма просто.
P.S. Я запускал программу в LabView. Работает хорошо, но меня очень сильно смущает необходимость
устанавливать на каждом компе большую Run Time библиотеку.
Интересует насколько это сложно/просто - переписать программу с LabView на C, С++ или C# (в технологическом аспекте)?
И как технологически это удобнее/проще реализовать?

Спасибо за ответ по-делу. :thank:
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: создание независимых приложений на основе LabView

Сообщение dadreamer »

MaxGal писал(а):Интересует насколько это сложно/просто - переписать программу с LabView на C, С++ или C# (в технологическом аспекте)?
И как технологически это удобнее/проще реализовать?
Смотря что за программа, насколько она велика, какая у неё архитектура, с какими устройствами она работает и т.д. и т.п. На самом деле это зависит от массы вещей. Здесь надо исходить из того, что программа, написанная на :labview: , не может быть сконвертирована в C/C++ представление. И универсального конвертора просто не существует. Максимум, что вы можете получить, это длинную "простыню" крайне нечитабельного кода с помощью NI LabVIEW C Generator (можете ради интереса посмотреть вот это). Так что в любом случае алгоритм придётся переписывать с нуля. Если у вас используются какие-то специфические пакеты, которые есть только в :labview: , то разумно будет сделать DLL в :labview: и вызывать её в C/C++. Если нужен LabVIEW'шный GUI (контролы/индикаторы), то может стоит попробовать LabWindows/CVI.
MaxGal писал(а):Вроде в LabView (в графической среде) намного легче визуально разработать и отладить алгоритм обработки.
Это так, но как я уже сказал, определяется спецификой приложения. Если расскажете поподробней, что за программа, то можно будет что-нибудь посоветовать. Либо писать с нуля, либо всё-таки сделать динамическую библиотеку. Или, может, реализовать коммуникацию программы на :labview: с программой на C/C++.
MaxGal писал(а):Работает хорошо, но меня очень сильно смущает необходимость устанавливать на каждом компе большую Run Time библиотеку.
Это своеобразная плата за простоту программирования и универсальность. Тем более в наше время 200-300 МБ - это не так уж много. Не хотите ставить ран-тайм, можете попробовать вот такой способ. Для относительно простых приложений может сработать, только не забудьте тщательно всё протестировать. Ну, или накрайняк напишите прогу на :labview: 5 (или младше), для этих версий ран-тайм не нужен. Только учтите, что функционал там будет весьма скудный.
Кстати, если будете создавать DLL в :labview: , для неё также потребуется ран-тайм на машинах, где не установлен :labview: (той же версии, что и создаваемая библиотека).
MaxGal писал(а):Человек, который писал эту программу (писал лет 10 назад)
Полагаю, прога написана на :labview: 6.0 (6i) / 6.1 / 7.0 / 7.1 / 8.0.
MaxGal
interested
interested
Сообщения: 4
Зарегистрирован: 04 янв 2016, 14:59
Версия LabVIEW: 2010
Контактная информация:

Re: создание независимых приложений на основе LabView

Сообщение MaxGal »

Блин, писал, писал и ответ сбросился.-)) Переписываю.
dadreamer, спасибо за ответ.
Программа для обработки электроэнцефалограммы.
Понижать версию вниз (до 5-й) нет резона.
Наоборот, можно реализовать на самой свежей.
Но мне не нравится интерфейс программы и необходимость устанавливать Run Time библиотеку.
Т.е. в идеале - перенести все на C#, C++ или C.
Может ли в этом плане LabView быть полезной и облегчить задачу переноса?
Ссылку по компиляции видел ранее - не годится (судя по отзывам на этом форуме).
Как использовать наработки для переноса на C?
Или здесь проку нет: что с нуля на C (C++) писать?
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: создание независимых приложений на основе LabView

Сообщение dadreamer »

MaxGal писал(а):Понижать версию вниз (до 5-й) нет резона.
Наоборот, можно реализовать на самой свежей.
Но мне не нравится интерфейс программы и необходимость устанавливать Run Time библиотеку.
Вы уж определитесь. Либо пишете на самой свежей и ставите ран-тайм, либо пишете на старой, но не ставите ран-тайм.
С интерфейсом увы. :dntknw: Можно использовать компоненты палитры Silver, они посимпатичнее. Или поискать кастомные контролы/индикаторы.
MaxGal писал(а):Может ли в этом плане LabView быть полезной и облегчить задачу переноса?
MaxGal писал(а):Как использовать наработки для переноса на C?
Все варианты уже описаны выше.
MaxGal писал(а):Ссылку по компиляции видел ранее - не годится (судя по отзывам на этом форуме).
Если вы о C Generator'е, то да, лучше им не пользоваться, если уж совсем не припрёт. Что касается "хака" с ран-таймом, когда можно его не ставить, а таскать с экзешником библиотеки, то такой способ вполне работоспособен, хотя никто не даст гарантии, что именно ваше приложение будет стабильно работать. Всё проверяется на практике.
MaxGal писал(а):я не программист
Вот, интересно, а кто тогда? Кто на сях пишет, а кто на LV?..
Так можно бесконечно из пустого в порожнее переливать. :D
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: создание независимых приложений на основе LabView

Сообщение Borjomy_1 »

Вообще-то в плане интерфейса пока я ничего даже близко функционально удобного, чем интерфейс передней панели :labview:, не видел. Стандартные компоненты Windows уныло г..но по сравнению с LV. Тем более, что контролы можно весьма гибко настроить под свой вкус и задачи в режиме дизайна.
Что касается размера дистрибутива, то если лишние компоненты не добавлять, то размер будет от 150Мб. Для ПРОФЕССИОНАЛЬНОГО программного обеспечения на размер ПО вообще смотреть грешно.
MaxGal
interested
interested
Сообщения: 4
Зарегистрирован: 04 янв 2016, 14:59
Версия LabVIEW: 2010
Контактная информация:

Re: создание независимых приложений на основе LabView

Сообщение MaxGal »

Borjomy_1 писал(а):Вообще-то в плане интерфейса пока я ничего даже близко функционально удобного, чем интерфейс передней панели :labview:, не видел. Стандартные компоненты Windows уныло г..но по сравнению с LV. Тем более, что контролы можно весьма гибко настроить под свой вкус и задачи в режиме дизайна.
Что касается размера дистрибутива, то если лишние компоненты не добавлять, то размер будет от 150Мб. Для ПРОФЕССИОНАЛЬНОГО программного обеспечения на размер ПО вообще смотреть грешно.
Дело в том, что как раз хочется профессиональный софт упростить до обывательского (или юзерского) уровня.-)) Образно говоря.
Ибо исходный софт избыточен. Как по функционалу, так и по весу дистрибутива.
И минимизировать до минимально возможных размеров. До 3-5 Мб.
С этим софтом потом и экспериметировать.
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: создание независимых приложений на основе LabView

Сообщение Borjomy_1 »

Дело в том, что как раз хочется профессиональный софт упростить до обывательского (или юзерского) уровня.
Есть такая поговорка: хорошие вещи дешевыми не бывают. Хотите компактности - самостоятельно изобретайте велосипед (пишите интерфейс) тут минималку получите. Что касается компактности, то исполняемый файл :labview: весит немного. И менять достаточно только его. У меня серьезное приложение с под тысячу SubVI весит порядка 7Мб.
MaxGal
interested
interested
Сообщения: 4
Зарегистрирован: 04 янв 2016, 14:59
Версия LabVIEW: 2010
Контактная информация:

Re: создание независимых приложений на основе LabView

Сообщение MaxGal »

Borjomy_1 писал(а):
Дело в том, что как раз хочется профессиональный софт упростить до обывательского (или юзерского) уровня.
Есть такая поговорка: хорошие вещи дешевыми не бывают. Хотите компактности - самостоятельно изобретайте велосипед (пишите интерфейс) тут минималку получите. Что касается компактности, то исполняемый файл :labview: весит немного. И менять достаточно только его. У меня серьезное приложение с под тысячу SubVI весит порядка 7Мб.
Речь идет не о дешевизне, а об алгоритме (методологии) переноса софта с языка G на семейство языков C (опять же - избавиться от Run Time).
Насколько я понял: берется алгоритм реализации в LabView и дальше - ручками, ручками... на C++ :wink:
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: создание независимых приложений на основе LabView

Сообщение Borjomy_1 »

В таком случае про :labview: лучше и не думать. Потому что это будет двойная работа. Не забывайте, что каждый цикл - это поток. Работу с массивами вам придется делать самому. Я уж не говорю про то, что большинство математических функций вам придется также делать самому. И все это ради чего?
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: создание независимых приложений на основе LabView

Сообщение dadreamer »

MaxGal писал(а):Насколько я понял: берется алгоритм реализации в LabView и дальше - ручками, ручками... на C++ :wink:
Один из вариантов. Я писал уже:
dadreamer писал(а):Если у вас используются какие-то специфические пакеты, которые есть только в :labview: , то разумно будет сделать DLL в :labview: и вызывать её в C/C++.
По идее, можно вообще всю математику написать в :labview: , а в С только GUI оформить и вызовы DLL. А чтобы не ставить ран-тайм для этой библиотеки, можно использовать этот метод:
dadreamer писал(а):Не хотите ставить ран-тайм, можете попробовать вот такой способ.
В этом случае общий размер вашей библиотеки будет чуть больше из-за дополнительной нагрузки типа lvrt. Например, в ран-тайме 6.1 lvrt.dll весит 3.89 МБ. В 7.0 уже 5.44.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Создание приложений»