Страница 1 из 4

Как написать софт под Windows и Linux?

Добавлено: 30 янв 2018, 19:08
npa
michael-yurov писал(а):Сейчас у меня остро стоит вопрос - как написать ПО, чтобы его можно было запускать и на windows и Linux.
Вроде бы WinForms написанные под .NET на C# - должны даже exe открываться и запускаться силами Mono... Но что то не получается у меня.
В эту сторону не пробовал, предпочитаю WX/GTK/QT. Сейчас .NET продвигают помаленьку...хоть и старое но возможно будет полезно: https://www.ibm.com/developerworks/ru/l ... index.html. Могу помочь в тестировании, как будет время.
А расчёт ШД в Wine 1.8.7 запускается нормально. :)

Re: SMD раскладчик для СтепМастеров

Добавлено: 30 янв 2018, 19:48
SVP
michael-yurov писал(а):Сейчас у меня остро стоит вопрос - как написать ПО, чтобы его можно было запускать и на windows и Linux.
Вроде бы WinForms написанные под .NET на C# - должны даже exe открываться и запускаться силами Mono... Но что то не получается у меня.
Java однако...

Re: SMD раскладчик для СтепМастеров

Добавлено: 30 янв 2018, 20:01
michael-yurov
SVP писал(а):Java однако...
Не... слишком медленная зараза. Сильно бесит, когда простая программа тупит на ровном месте.
C# не намного лучше, конечно, но там хотя бы есть большие плюсы, за которые я готов жертвовать производительнсоть.
npa писал(а):WX/GTK/QT
Пока что для меня это набор букв. Буду изучать.
UPD посмотрел, что такое Qt. Кажется, что интересная и подходящая штука.
Узнал цену ($459.00 в месяц). Опечалился.

Re: SMD раскладчик для СтепМастеров

Добавлено: 30 янв 2018, 23:06
SVP
в GPL QT бесплатен вроде как...

Re: SMD раскладчик для СтепМастеров

Добавлено: 30 янв 2018, 23:40
michael-yurov
SVP писал(а):в GPL QT бесплатен вроде как...
Да, так и есть.
Только вот сомневаюсь я, что хочу делиться кодом программы...

А, вообще, Qt мне очень понравился. Буду изучать.

Re: SMD раскладчик для СтепМастеров

Добавлено: 31 янв 2018, 00:01
SVP
michael-yurov писал(а):
SVP писал(а):в GPL QT бесплатен вроде как...
Да, так и есть.
Только вот сомневаюсь я, что хочу делиться кодом программы...

А, вообще, Qt мне очень понравился. Буду изучать.
Если ты её собираешься продавать/поставлять, тогда да, придется покупать коммерческую лицензию.
Если для внутреннего употребления, то обязать тебя никто не вправе.

На самом деле костыли это всё сплошные.
В том смысле, что для того, чтобы было комфортней работать они там такого наворотили, после чего это уже
скорее кастрированная java нежели быстрый С++. Смысла не имеет особого.
С лицензиями большой гемморой, похоже даже имея коммерческую некоторые части ты трогать не вправе.
Все это имеет какой-то смысл для эмбеддед решений, но тоже не великий.

Re: SMD раскладчик для СтепМастеров

Добавлено: 31 янв 2018, 08:21
npa
michael-yurov писал(а):Только вот сомневаюсь я, что хочу делиться кодом программы...
Вообще от автора GPL этого и не требует, внезапно...А ещё есть BSD и другие совместимые. И ещё один момент: По LGPL лицензии вы можете создавать коммерческое ПО не открывая свои исходники, при условии, что вы не вносите изменения в исходный код самого Qt. То есть динамическая линковка.
А вообще не очень понял вашу модель. Вы же прикладываете программу к устройству? Соответственно смысл человеку применять копию, полученную не от вас или стороннюю программу? Вас же в продаже устройств никто не ограничивает.

Re: Как написать софт под Windows и Linux?

Добавлено: 31 янв 2018, 09:52
michael-yurov
Дошли руки до создания простенькой системы ЧПУ.
На днях сделал набросок интерфейса программы:
экран 2.png (6215 просмотров) <a class='original' href='./download/file.php?id=131031&sid=bfe416c859cd1724364cfab14e7fe3ac&mode=view' target=_blank>Загрузить оригинал (406.31 КБ)</a>
И сейчас думаю над вопросом - в чем писать ПО.
Изначально хотел под .NET C#, думал между WinForms и WPF (последний как нельзя лучше подходит под задачу).

Windows, конечно, многим привычен и удобен, но ЧПУ станки часто расположены на производстве, и устанавливать на них виндоус - проблемно. По этой причине думаю как бы сделать возможным работу с ПО под Linux.

Из важных аспектов:
- необходима возможность отображения траектории силами OpenGL.
- связь с железом контроллера по Ethernet
- интерфейс нужно будет сделать так, чтобы он корректно (без замыливания, диспропорций и пикселизации) масштабировался под разные разрешения и dpi экранов.

Прикрепил пару тестовых файлов, использующих отрисовку силами OpenGL (со сглаживанием, перспективой и туманом).

Re: Как написать софт под Windows и Linux?

Добавлено: 31 янв 2018, 10:08
michael-yurov
SVP писал(а):Если ты её собираешься продавать/поставлять, тогда да, придется покупать коммерческую лицензию.
Если для внутреннего употребления, то обязать тебя никто не вправе.
Собираюсь продавать (вместе с платой контроллера). И не хочу, чтобы китайцы немного поправив ПО наклепали платы под мой софт.
SVP писал(а):На самом деле костыли это всё сплошные.
В том смысле, что для того, чтобы было комфортней работать они там такого наворотили, после чего это уже
скорее кастрированная java нежели быстрый С++. Смысла не имеет особого.
Мне производительность вычислительной части не очень важна. Нужно, чтобы запускалась и работала быстро. OpenGL чтобы работал. Удобные инструменты для работы с графикой для создания интерфейса.
npa писал(а):Вообще от автора GPL этого и не требует, внезапно...
Вот это я пока не совсем понимаю. А что же тогда требуют? За что они хотят 6000 баксов в год?
npa писал(а):И ещё один момент: По LGPL лицензии вы можете создавать коммерческое ПО не открывая свои исходники, при условии, что вы не вносите изменения в исходный код самого Qt. То есть динамическая линковка.
Я полагал, что в наше время уже почти везде динамическая линковка.
Мне, вроде бы и не потребуется вносить изменения в код Qt.
npa писал(а):А вообще не очень понял вашу модель. Вы же прикладываете программу к устройству? Соответственно смысл человеку применять копию, полученную не от вас или стороннюю программу? Вас же в продаже устройств никто не ограничивает.
Так, оно, прикладываю к устройству... Но китайцы с большой долей вероятности наклепают клонов, как они с НЦСтудией и ПланетЦНЦ сделали. C косяками, глюками, худшими характеристиками и ограниченными возможностями, но, за то, в 10 раз дешевле.

Вот - только вчера залил видео про сборку степмастеров, как сразу же узкоглазое "Мясо Мяу" ищет исходники для копирования платы.
2018-01-31_12-21-52.png (6195 просмотров) <a class='original' href='./download/file.php?id=131036&sid=bfe416c859cd1724364cfab14e7fe3ac&mode=view' target=_blank>Загрузить оригинал (47.42 КБ)</a>
К слову - когда искал в Китае сборщиков для степмастеров - они сразу же требовали полный проект, включая прошивку, и потом еще месяц писали и названивали.

Re: Как написать софт под Windows и Linux?

Добавлено: 31 янв 2018, 10:17
selenur
michael-yurov писал(а):Но китайцы с большой долей вероятности наклепают клонов, как они с НЦСтудией сделали.
И с planetCNC они так-же сделали, что теперь только на этом форуме каждый месяц десятки пользователей появляются, которые получили негативный опыт работы с контроллерами, и при этом компания planet-CNC тут не причем....

Re: Как написать софт под Windows и Linux?

Добавлено: 31 янв 2018, 10:19
frezeryga
Для отдельных пользователей удобней и привычней винда но для производителей станков автоматом добавляется стоимость винды что делает систему дороже других которые работают на Linux.

Re: Как написать софт под Windows и Linux?

Добавлено: 31 янв 2018, 10:24
michael-yurov
frezeryga писал(а):Для отдельных пользователей удобней и привычней винда но для производителей станков автоматом добавляется стоимость винды что делает систему дороже других которые работают на Linux.
А со степмастером ты mach3 используешь или LinuxCNC? Что мешает второму варианту?

Re: Как написать софт под Windows и Linux?

Добавлено: 31 янв 2018, 10:28
frezeryga
Также Linux позволяет использовать набирающие популярность микрокомпьютеры которые стоят недопого и их удобно размещать в шкафу. Пример исполнения mycnc et6 очень удачный где компьютер крепится на плату контроллера а сам контроллер можно ставить на DIN рейку.

Re: Как написать софт под Windows и Linux?

Добавлено: 31 янв 2018, 10:30
frezeryga
michael-yurov, со степмастером использую Linuxcnc. Но мы сейчас про новый софт.

Re: Как написать софт под Windows и Linux?

Добавлено: 31 янв 2018, 10:43
Prav
michael-yurov писал(а):Windows, конечно, многим привычен и удобен, но ЧПУ станки часто расположены на производстве, и устанавливать на них виндоус - проблемно. По этой причине думаю как бы сделать возможным работу с ПО под Linux.
Я за то, чтобы не распыляться и не пытаться сделать под ВСЁ и сразу. Лучше сосредоточиться под одну операционку, лучше под Windows, потому как ты говоришь: "Windows, конечно, многим привычен и удобен...".

Re: Как написать софт под Windows и Linux?

Добавлено: 31 янв 2018, 10:47
frezeryga
Только при работе на станке взаимодействия пользователя с операционной системой практически нету. У меня есть станки и с линукс и с виндой и папка куда кидать уп и там и там одинаковая.

Re: Как написать софт под Windows и Linux?

Добавлено: 31 янв 2018, 10:52
Сергей Саныч
michael-yurov писал(а):ты mach3 используешь или LinuxCNC? Что мешает второму варианту?
Доступность альтернативных решений (аппаратных генераторов, плат ввода-вывода). В том числе не привязанных к LPT.

Re: Как написать софт под Windows и Linux?

Добавлено: 31 янв 2018, 11:06
selenur
Если для разработки использовать Mono, то созданный проект нормально компилируется под 3 платформы, на скрине я для примера показал один и тот-же проект под Linux и windows:
2018-01-31_125943.jpg (6149 просмотров) <a class='original' href='./download/file.php?id=131038&sid=bfe416c859cd1724364cfab14e7fe3ac&mode=view' target=_blank>Загрузить оригинал (67.72 КБ)</a>
Хотя конечно есть нюансы когда начинаешь использовать последовательные порты, сеть, и дрр...
Но везде есть свои сложности....

Re: Как написать софт под Windows и Linux?

Добавлено: 31 янв 2018, 11:12
npa
michael-yurov писал(а):Вот это я пока не совсем понимаю. А что же тогда требуют? За что они хотят 6000 баксов в год?
Речь о том что автор первичен, а вот те кто поделятся этим софтом нарушат GPL. А держатели QT...понять их можно, на зарубежные цены лицензия копеечная получается. Но если в саму библиотеку вы изменений не вносите и в варианте LGPL всё более-менее чисто. Более того можете просто организовать общение своего секретного кода с GUI так, чтобы не нарушалась GPL.
А так прекрасно понимаю...я потому не заказываю свои разработки в Китае - требуют весь проект.
Prav писал(а):Я за то, чтобы не распыляться и не пытаться сделать под ВСЁ и сразу.
Не всё и сразу а сделать вовремя. Проще сначала, чем потом портировать. И это ненамного сложнее, хотя чуть дольше при отсутствии опыта кросс-разработки. Я простые конфигураторы для своих устройств делал, работали и там и там. Правда тащили с собой GTK и Питон или WX.
selenur писал(а):Если для разработки использовать Mono, то созданный проект нормально компилируется под 3 платформы
Тоже вариант, кстати. Я за то чтобы поддержка в Linux различных аппаратных решений и вообще промышленного оборудования была шире. Сейчас появляется среда для ПЛК, а когда я начинал (после того как вирус в winXP уничтожил за день до сдачи мой курсач по C++ и я поставил ASP 9) - не было ни OCR, ни доступных CAD и т.д.

Re: Как написать софт под Windows и Linux?

Добавлено: 31 янв 2018, 11:16
SVP
npa писал(а): По LGPL лицензии вы можете создавать коммерческое ПО не открывая свои исходники, при условии, что вы не вносите изменения в исходный код самого Qt. То есть динамическая линковка.
Теоретически да. Практически так никто не делает.
Т.е. если говорить о лицензионной чистоте и гарантии того, что не будет проблем, по этому сценарию ничего этого нету.
Причем сами авторы QT об этом прямо пишут.

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

В вариатне ТС-а QT не вариант. Т.е. конечно, использовать можно, у нас вообще в стране не парятся о лицензировании. Но корректно воспользоваться бесплатной лицензией не выйдет.

Впрочем, если ТС более грамотен, чем "какие-то там иностранные юристы", он очевидно сам может решить для себя этот вопрос.
Однако я был-бы последним земляным червяком, если бы агитировал его за столь спорное решение.
Изначально я думал, что у него софт для личного внутреннего применения.

Инструментов для решения его задачи немного.
Я сам не любитель java, но всерьез посмотрел-бы можно-ли использовать её.
Опыт опять-таки говорит, что с запуском на различных устройствах у неё получше.
Java FX я правда пока не осилил, как-то после wpf там с биндингом непонятно, но разобраться я уверен можно.
Приложение написанное со свингом (давно дело было) работало под win, под linux, и вот сейчас его допилили и оно работает вообще внутри линукса на ксайлинксе, даже без gpu итп, причем с минимумом переделок.

Небольшой опыт использования QT показал, что неприятные косяки лезут прям при переносе win->linux. Т.е. под виндой работает одним образом, под линуксом уже немного другим... высокой производительности при использовании qml не ждите...