создание независимых приложений на основе LabView
-
- interested
- Сообщения: 4
- Зарегистрирован: 04 янв 2016, 14:59
- Версия LabVIEW: 2010
- Контактная информация:
создание независимых приложений на основе LabView
Всем привет.
Вопрос дилетанта (я не программист).
Есть программа, написанная на LabView (писал не я).
Человек, который писал эту программу (писал лет 10 назад) говорит, что саму программу (алгоритм) можно
реализовать на C++ (или C). Вроде в LabView (в графической среде) намного легче визуально разработать и отладить
алгоритм обработки. А затем реализовать то же на C++ (или C), чем с нуля писать все на C++ (или C).
И, вроде, это, с его слов, реализовать весьма просто.
P.S. Я запускал программу в LabView. Работает хорошо, но меня очень сильно смущает необходимость
устанавливать на каждом компе большую Run Time библиотеку.
Интересует насколько это сложно/просто - переписать программу с LabView на C, С++ или C# (в технологическом аспекте)?
И как технологически это удобнее/проще реализовать?
Спасибо за ответ по-делу.
Вопрос дилетанта (я не программист).
Есть программа, написанная на LabView (писал не я).
Человек, который писал эту программу (писал лет 10 назад) говорит, что саму программу (алгоритм) можно
реализовать на C++ (или C). Вроде в LabView (в графической среде) намного легче визуально разработать и отладить
алгоритм обработки. А затем реализовать то же на C++ (или C), чем с нуля писать все на C++ (или C).
И, вроде, это, с его слов, реализовать весьма просто.
P.S. Я запускал программу в LabView. Работает хорошо, но меня очень сильно смущает необходимость
устанавливать на каждом компе большую Run Time библиотеку.
Интересует насколько это сложно/просто - переписать программу с LabView на C, С++ или C# (в технологическом аспекте)?
И как технологически это удобнее/проще реализовать?
Спасибо за ответ по-делу.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: создание независимых приложений на основе LabView
Смотря что за программа, насколько она велика, какая у неё архитектура, с какими устройствами она работает и т.д. и т.п. На самом деле это зависит от массы вещей. Здесь надо исходить из того, что программа, написанная на , не может быть сконвертирована в C/C++ представление. И универсального конвертора просто не существует. Максимум, что вы можете получить, это длинную "простыню" крайне нечитабельного кода с помощью NI LabVIEW C Generator (можете ради интереса посмотреть вот это). Так что в любом случае алгоритм придётся переписывать с нуля. Если у вас используются какие-то специфические пакеты, которые есть только в , то разумно будет сделать DLL в и вызывать её в C/C++. Если нужен LabVIEW'шный GUI (контролы/индикаторы), то может стоит попробовать LabWindows/CVI.MaxGal писал(а):Интересует насколько это сложно/просто - переписать программу с LabView на C, С++ или C# (в технологическом аспекте)?
И как технологически это удобнее/проще реализовать?
Это так, но как я уже сказал, определяется спецификой приложения. Если расскажете поподробней, что за программа, то можно будет что-нибудь посоветовать. Либо писать с нуля, либо всё-таки сделать динамическую библиотеку. Или, может, реализовать коммуникацию программы на с программой на C/C++.MaxGal писал(а):Вроде в LabView (в графической среде) намного легче визуально разработать и отладить алгоритм обработки.
Это своеобразная плата за простоту программирования и универсальность. Тем более в наше время 200-300 МБ - это не так уж много. Не хотите ставить ран-тайм, можете попробовать вот такой способ. Для относительно простых приложений может сработать, только не забудьте тщательно всё протестировать. Ну, или накрайняк напишите прогу на 5 (или младше), для этих версий ран-тайм не нужен. Только учтите, что функционал там будет весьма скудный.MaxGal писал(а):Работает хорошо, но меня очень сильно смущает необходимость устанавливать на каждом компе большую Run Time библиотеку.
Кстати, если будете создавать DLL в , для неё также потребуется ран-тайм на машинах, где не установлен (той же версии, что и создаваемая библиотека).
Полагаю, прога написана на 6.0 (6i) / 6.1 / 7.0 / 7.1 / 8.0.MaxGal писал(а):Человек, который писал эту программу (писал лет 10 назад)
-
- interested
- Сообщения: 4
- Зарегистрирован: 04 янв 2016, 14:59
- Версия LabVIEW: 2010
- Контактная информация:
Re: создание независимых приложений на основе LabView
Блин, писал, писал и ответ сбросился.-)) Переписываю.
dadreamer, спасибо за ответ.
Программа для обработки электроэнцефалограммы.
Понижать версию вниз (до 5-й) нет резона.
Наоборот, можно реализовать на самой свежей.
Но мне не нравится интерфейс программы и необходимость устанавливать Run Time библиотеку.
Т.е. в идеале - перенести все на C#, C++ или C.
Может ли в этом плане LabView быть полезной и облегчить задачу переноса?
Ссылку по компиляции видел ранее - не годится (судя по отзывам на этом форуме).
Как использовать наработки для переноса на C?
Или здесь проку нет: что с нуля на C (C++) писать?
dadreamer, спасибо за ответ.
Программа для обработки электроэнцефалограммы.
Понижать версию вниз (до 5-й) нет резона.
Наоборот, можно реализовать на самой свежей.
Но мне не нравится интерфейс программы и необходимость устанавливать Run Time библиотеку.
Т.е. в идеале - перенести все на C#, C++ или C.
Может ли в этом плане LabView быть полезной и облегчить задачу переноса?
Ссылку по компиляции видел ранее - не годится (судя по отзывам на этом форуме).
Как использовать наработки для переноса на C?
Или здесь проку нет: что с нуля на C (C++) писать?
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: создание независимых приложений на основе LabView
Вы уж определитесь. Либо пишете на самой свежей и ставите ран-тайм, либо пишете на старой, но не ставите ран-тайм.MaxGal писал(а):Понижать версию вниз (до 5-й) нет резона.
Наоборот, можно реализовать на самой свежей.
Но мне не нравится интерфейс программы и необходимость устанавливать Run Time библиотеку.
С интерфейсом увы. Можно использовать компоненты палитры Silver, они посимпатичнее. Или поискать кастомные контролы/индикаторы.
MaxGal писал(а):Может ли в этом плане LabView быть полезной и облегчить задачу переноса?
Все варианты уже описаны выше.MaxGal писал(а):Как использовать наработки для переноса на C?
Если вы о C Generator'е, то да, лучше им не пользоваться, если уж совсем не припрёт. Что касается "хака" с ран-таймом, когда можно его не ставить, а таскать с экзешником библиотеки, то такой способ вполне работоспособен, хотя никто не даст гарантии, что именно ваше приложение будет стабильно работать. Всё проверяется на практике.MaxGal писал(а):Ссылку по компиляции видел ранее - не годится (судя по отзывам на этом форуме).
Вот, интересно, а кто тогда? Кто на сях пишет, а кто на LV?..MaxGal писал(а):я не программист
Так можно бесконечно из пустого в порожнее переливать.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: создание независимых приложений на основе LabView
Вообще-то в плане интерфейса пока я ничего даже близко функционально удобного, чем интерфейс передней панели , не видел. Стандартные компоненты Windows уныло г..но по сравнению с LV. Тем более, что контролы можно весьма гибко настроить под свой вкус и задачи в режиме дизайна.
Что касается размера дистрибутива, то если лишние компоненты не добавлять, то размер будет от 150Мб. Для ПРОФЕССИОНАЛЬНОГО программного обеспечения на размер ПО вообще смотреть грешно.
Что касается размера дистрибутива, то если лишние компоненты не добавлять, то размер будет от 150Мб. Для ПРОФЕССИОНАЛЬНОГО программного обеспечения на размер ПО вообще смотреть грешно.
-
- interested
- Сообщения: 4
- Зарегистрирован: 04 янв 2016, 14:59
- Версия LabVIEW: 2010
- Контактная информация:
Re: создание независимых приложений на основе LabView
Дело в том, что как раз хочется профессиональный софт упростить до обывательского (или юзерского) уровня.-)) Образно говоря.Borjomy_1 писал(а):Вообще-то в плане интерфейса пока я ничего даже близко функционально удобного, чем интерфейс передней панели , не видел. Стандартные компоненты Windows уныло г..но по сравнению с LV. Тем более, что контролы можно весьма гибко настроить под свой вкус и задачи в режиме дизайна.
Что касается размера дистрибутива, то если лишние компоненты не добавлять, то размер будет от 150Мб. Для ПРОФЕССИОНАЛЬНОГО программного обеспечения на размер ПО вообще смотреть грешно.
Ибо исходный софт избыточен. Как по функционалу, так и по весу дистрибутива.
И минимизировать до минимально возможных размеров. До 3-5 Мб.
С этим софтом потом и экспериметировать.
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: создание независимых приложений на основе LabView
Есть такая поговорка: хорошие вещи дешевыми не бывают. Хотите компактности - самостоятельно изобретайте велосипед (пишите интерфейс) тут минималку получите. Что касается компактности, то исполняемый файл весит немного. И менять достаточно только его. У меня серьезное приложение с под тысячу SubVI весит порядка 7Мб.Дело в том, что как раз хочется профессиональный софт упростить до обывательского (или юзерского) уровня.
-
- interested
- Сообщения: 4
- Зарегистрирован: 04 янв 2016, 14:59
- Версия LabVIEW: 2010
- Контактная информация:
Re: создание независимых приложений на основе LabView
Речь идет не о дешевизне, а об алгоритме (методологии) переноса софта с языка G на семейство языков C (опять же - избавиться от Run Time).Borjomy_1 писал(а):Есть такая поговорка: хорошие вещи дешевыми не бывают. Хотите компактности - самостоятельно изобретайте велосипед (пишите интерфейс) тут минималку получите. Что касается компактности, то исполняемый файл весит немного. И менять достаточно только его. У меня серьезное приложение с под тысячу SubVI весит порядка 7Мб.Дело в том, что как раз хочется профессиональный софт упростить до обывательского (или юзерского) уровня.
Насколько я понял: берется алгоритм реализации в LabView и дальше - ручками, ручками... на C++
-
- doctor
- Сообщения: 2211
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 27 раз
Re: создание независимых приложений на основе LabView
В таком случае про лучше и не думать. Потому что это будет двойная работа. Не забывайте, что каждый цикл - это поток. Работу с массивами вам придется делать самому. Я уж не говорю про то, что большинство математических функций вам придется также делать самому. И все это ради чего?
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: создание независимых приложений на основе LabView
Один из вариантов. Я писал уже:MaxGal писал(а):Насколько я понял: берется алгоритм реализации в LabView и дальше - ручками, ручками... на C++
По идее, можно вообще всю математику написать в , а в С только GUI оформить и вызовы DLL. А чтобы не ставить ран-тайм для этой библиотеки, можно использовать этот метод:dadreamer писал(а):Если у вас используются какие-то специфические пакеты, которые есть только в , то разумно будет сделать DLL в и вызывать её в C/C++.
В этом случае общий размер вашей библиотеки будет чуть больше из-за дополнительной нагрузки типа lvrt. Например, в ран-тайме 6.1 lvrt.dll весит 3.89 МБ. В 7.0 уже 5.44.dadreamer писал(а):Не хотите ставить ран-тайм, можете попробовать вот такой способ.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 9 Ответы
- 814 Просмотры
-
Последнее сообщение ujin1
-
- 10 Ответы
- 2373 Просмотры
-
Последнее сообщение PAG
-
- 3 Ответы
- 2074 Просмотры
-
Последнее сообщение PozhiloyGoblin
-
- 0 Ответы
- 344 Просмотры
-
Последнее сообщение maxim_MA
-
- 23 Ответы
- 2432 Просмотры
-
Последнее сообщение dadreamer