Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Язык программирования для радиолюбителя
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Страницы: 1, 2
Меджикивис
Хочется обсудить такую тему:

Если требуется управлять созданной конструкцией при помощи компьютера - на чем лучше писать управляющю программу? (Имеется ввиду пользовательский интерфейс на РС.)
Каким языком программирования лично Вы пользуетесь для такой цели?

уточнения.
Я говорю о штучных и экспериментальных изделиях; условия работы, близкие к радиолюбительству.
(Для крупных КБ подобный вопрос не стоит - там чем положено, тем и пользуются).
Интересующая платформа - Win.
Тип связи с устройством: обсуждаемый вопрос. Не задано заранее. Что потребует задача.


О себе.
Не суть важно, но предупреждая вопросы и для удовлетворения любопытства:
Я пользуюсь Visual Basic по причине его достаточно комфортной среды разработки. Но должен признать, что качество компилируемого им кода мягко сказать оставляет желать много лучшего.
Но пока не нашел, на что пересесть.
Советуйте, плиз sm.gif
andron86
LabVIEW
_Артём_
Цитата(andron86 @ Apr 17 2012, 23:56) *
LabVIEW


C#
C# Express, если нужна легальность распостранения софта
Lmx2315
..не на чём лучше не писать, проще всего пользоваться стандартной терминальной программой в операционке, ну или какой нравится.
Напишите прошивку так чтоб она выводила в терминал всё что нужно, по командам и просто так и чтобы с терминала управлялась.
Меджикивис
w00t.gif Вы так работаете?! кто бы мог подумать... гммм...

Во время отладки я конечно общаюсь с МК через терминал как неча делать, но я же и для других людей работаю... заказчики не поймут такого минимализма.

Си конечно хороший язык, я даже попытался перейти на него, но выяснилось, что у меня жуткая аллергия на сишные точки-с-запятой)))))) пришлось оставить это намерение.
MrYuran
Во всех последних проектах вставляю Modbus, обмен через OPC-сервер (купленный Lectus Modbus OPC, хотя с демо-версией тоже можно работать).
В окошке сервера можно просматривать и записывать переменные. Для визуализации можно подцепить клиентов (SCADA, да хоть тот же лабвью).
Насобачился в MasterSCADA проекты за полчаса оформлять, с трендами, историей, журналированием, алармами и прочими фишками. Демо-версия бесплатна для некоммерческого пользования, также есть бесплатная ограниченная версия.
Главное, что это может сделать или потом править не программист, а любой "уверенный пользователь ПК".

Цитата(Меджикивис @ Apr 18 2012, 08:25) *
Си конечно хороший язык, я даже попытался перейти на него, но выяснилось, что у меня жуткая аллергия на сишные точки-с-запятой)))))) пришлось оставить это намерение.

А как насчет Python'a?
Такой же раздолбайский, как VB, но свободный, кросс-платформенный и библиотек под него на все случаи жизни понаписано
Serhiy_UA
Цитата(Меджикивис @ Apr 18 2012, 07:25) *
Си конечно хороший язык...

Переходите на С без сомнений. Для GUI использую C++Builder 6, дружественный и удобный, много книг и примеров, достаточно пару дней на освоение.
Связь с МК через RS-232 (ну и USB), C++Builder 6 хватит с головой.
На С также с AVR в среде IAR, опять же С для Silabs MCU51 в среде uVisual от Keil.
То есть все на С, и GUI, и МК. Далее, как развитие, переход на C#.
RabidRabbit
Используйте Дельфи, там правда тоже ; но они не сишные, а паскалевские sm.gif
А переход от Си к C# - это, по-моему, деградация, а не развитие wink.gif
_Pasha
Free Pascal с FpGUI вместо Lazarus, хотя последний тоже ничего.
Си совместно с GTK. Пробовал поднять Agar, чётта запутался.

Питон до сих пор поперек горла. Если бы у бабушки был не было паскаля, перешел бы на питона, а так - не надо sm.gif
Alt.F4
Недавно натолкнулся на описание Qt.
Что можно сказать по этому инструменту?
MrYuran
Цитата(Alt.F4 @ Apr 18 2012, 10:16) *
Недавно натолкнулся на описание Qt.
Что можно сказать по этому инструменту?

GTK vs Qt
После билдеров-делфей нужен весьма мощный стимул, чтобы [заставить себя] освоить одно из двух
SFx
Для себя выбрал следующий путь: все что содержит одну кнопочку и не требует обработки данных, а просто управление - Delphi, Все что требует работы с потоками, сетью, и прочими HiLoad - C/C++ & boost.
отдельно для внутренних тестов - AutoIt.
все что касается работы с текстом Perl. Где требуется ориентация на web-сервисы PHP.
Для рисование красивых графиков неплохи инструменты MATLABа.
demiurg_spb
Цитата(Alt.F4 @ Apr 18 2012, 09:16) *
Недавно натолкнулся на описание Qt.
Что можно сказать по этому инструменту?

Супер!
Меджикивис
А с чем его едят? У него собственная среда есть?
Или это только набор библиотек к чему-то?
haker_fox
QUOTE (Меджикивис @ Apr 18 2012, 12:25) *
что у меня жуткая аллергия на сишные точки-с-запятой)))))) пришлось оставить это намерение.

Ответ Ваш же..
QUOTE (Меджикивис @ Apr 18 2012, 12:25) *
w00t.gif Вы так работаете?! кто бы мог подумать... гммм...

От себя: терминал не чураются использовать такие брэнды, как Cisco. Конечно у них и ВЕБ-мордочки есть. Но мне. лично, иногда приятно в терминале покрутить пару параметров и не отвлекаться на бижутерию. При этом я уверен, что могу девайс хоть с досом, хоть линуксом подружить, не говоря о МакОС или Виндовс...

QUOTE (Меджикивис @ Apr 18 2012, 15:53) *
А с чем его едят? У него собственная среда есть?
Или это только набор библиотек к чему-то?

Едят с чем угодно rolleyes.gif Компилируется под многие платформы, как аппаратные, таки и программные. У меня, например, живет на ARM9.

Среда? Это что? Текстовый редактор? Есть. QT Creator. Я его не использую. Использую Eclipse.

QT это и есть библиотека. Для многих задач. GUI это ее лишь малые возможности. Она облегчает (спорный вопрос) работу с сетью, Open GL, базами данных и т.п. при условии, что Вам нужна кроссплатформенность.

Мордочки в ней делать достаточно легко, как руками, прописывая код, так и тоже руками laughing.gif , но уже в графическом редакторе...
Меджикивис
Цитата(haker_fox @ Apr 18 2012, 12:00) *
мне. лично, иногда приятно в терминале покрутить пару параметров
Я Вас понимаю.
Но большинство пользователей боятся таких параметров как черт ладана, они хотят, чтоб в интерфейсе была Большая Волшебная Кнопка, на которую надо нажать - и всё получится :D
Приходится идти навстречу их желаниям. В меру возможностиsm.gif

Цитата(haker_fox @ Apr 18 2012, 12:00) *
Среда? Это что? Текстовый редактор? Есть. QT Creator. Я его не использую. Использую Eclipse.
Не пинайте сильно, если как-то ошибаюсь в терминологии.
Текстовый редактор - да, среда (времен DOS). Писать исходник в ней конечно возможно.
Но для проектирования ГУИ гораздо приятнее "визуальные" среды, которые позволяют видеть создаваемые формы и редактировать их непосредственно графически. Это большое удобство.
Пример - среда разработки Visual Basic.

Цитата(haker_fox @ Apr 18 2012, 12:00) *
QT это и есть библиотека.
Цитата(haker_fox @ Apr 18 2012, 12:00) *
Едят с чем угодно rolleyes.gif
Тогда вопрос: к среде VB ее подцепить можно? И если да, то как именно?



haker_fox
QUOTE (Меджикивис @ Apr 18 2012, 16:21) *
Я Вас понимаю.
Но большинство пользователей боятся таких параметров как черт ладана, они хотят, чтоб в интерфейсе была Большая Волшебная Кнопка, на которую надо нажать - и всё получится :D
Приходится идти навстречу их желаниям. В меру возможностиsm.gif

Чтож, клиент всегда прав! rolleyes.gif
QUOTE (Меджикивис @ Apr 18 2012, 16:21) *
Текстовый редактор - да, среда (времен DOS). Писать исходник в ней конечно возможно.
Но для проектирования ГУИ гораздо приятнее "визуальные" среды, которые позволяют видеть создаваемые формы и редактировать их непосредственно графически. Это большое удобство.

Текстовый редактор советую Eclipse. Хотя попроще и менее тяжелый (ресурсоемкий) Code Blocks.
Мордочки можно делать в QT Designer. Он, вроде, автоматом ставится под виндовс. Под остальные платформы не знаю. Да, и я испоьзую QT от 2010 года... старенька. В новых что-то может изменится.

QUOTE (Меджикивис @ Apr 18 2012, 16:21) *
Тогда вопрос: к среде VB ее подцепить можно? И если да, то как именно?

Ну только если исходники писать. Не более. Для графики только QT Designer. Хотя Вы можете графический интерфейс описать и в виде исходных текстов. Это не очень сложно. Тогда все можно делать в VB. Правда компилировать все равно придется как-то "на стороне" от VB, ибо компилятор с языка c/c++ необходим.

Поэтому мой личный совет: отложите VB. Скачайте эклипс. Позанимайтесь с ним денек другой. Скачайте QT. Ей уделите минимум 5 дней. Почитайте справку на нее. Покачайте мануалы. В сети этого всего хватает.

Потом Вам уже виднее будет.
MrYuran
Как по мне, Qt и иже с ними - это, конечно, православный путь, но не самый удачный для начала.
Стесняюсь спросить... а "среда VB" - это случаем не Visual Studio?
Меджикивис
Цитата(haker_fox @ Apr 18 2012, 12:28) *
Поэтому мой личный совет: отложите VB. Скачайте эклипс.
Вы сказали, что эклипс - это текстовый редактор. То есть, окно программы делаем в нем что-нибудь примерно в таком стиле:

Call OpenWindow(ObjectID,X,Y,Width,Height,ForeColor,BackColor,FontFace,FontSize)

Да?

haker_fox
QUOTE (Меджикивис @ Apr 18 2012, 16:43) *
Вы сказали, что эклипс - это текстовый редактор. То есть, окно программы делаем в нем что-нибудь примерно в таком стиле:

Call OpenWindow(ObjectID,X,Y,Width,Height,ForeColor,BackColor,FontFace,FontSize)

Да?

Да. У Вас два пути:
1. Создавать графический интерфейс в текстовом виде. То, что Вы сейчас спросили.
2. Использовать графический дизайнер.
Меджикивис
Цитата(MrYuran @ Apr 18 2012, 12:40) *
Стесняюсь спросить... а "среда VB" - это случаем не Visual Studio?

Visual Studio.
А почему стеснения? Это, гммм... нецензурной лексикой считается? sm.gif



Цитата(haker_fox @ Apr 18 2012, 12:46) *
Да. У Вас два пути:
1. Создавать графический интерфейс в текстовом виде. То, что Вы сейчас спросили.
2. Использовать графический дизайнер.
В текстовом виде - с меня было по горло достаточно PureBasic-а))))))

А из графических дизайнеров что можно порекомендовать?

AlexandrY
Цитата(Меджикивис @ Apr 18 2012, 11:52) *
Visual Studio.
А почему стеснения? Это, гммм... нецензурной лексикой считается? sm.gif


Просто VB можно с успехом применить еще внутри Access и Excel.
Очень неплохой вариант когда надо избавиться от рутины организации хранения и представления данных без лишнего кода.
MrYuran
Цитата(Меджикивис @ Apr 18 2012, 12:52) *
Visual Studio.
А почему стеснения? Это, гммм... нецензурной лексикой считается? sm.gif

Да нет, просто там же можно писать и на С(++), и на C#, пользуясь всеми привычными возможностями среды и визуальными конструкторами
Меджикивис
Цитата(AlexandrY @ Apr 18 2012, 12:56) *
Просто VB можно с успехом применить еще внутри Access и Excel.
Очень неплохой вариант когда надо избавиться от рутины организации хранения и представления данных без лишнего кода.
Нет, это VBA. Бейсик, встроенный в Офисе. (У него команды чуть другие.) Не хочу сейчас отклоняться в сторону обсуждения целесообразности/нецелесообразности такой встройки. В целом - не мой выбор.
Ориентируюсь на создание отдельного экзешника.



Цитата(MrYuran @ Apr 18 2012, 12:59) *
Да нет, просто там же можно писать и на С(++), и на C#, пользуясь всеми привычными возможностями среды и визуальными конструкторами
Ну я ж говорю - синтаксис Си меня убивает реально... Ну его. Нервные клетки не восстанавливаюЦЦа))))))

ViKo
Цитата(Меджикивис @ Apr 18 2012, 12:05) *
Ну я ж говорю - синтаксис Си меня убивает реально... Ну его. Нервные клетки не восстанавливаюЦЦа))))))

Я тоже стою на распутье. Пока петух не клюнул, но имею сильное желание создавать программы для PC.
Выбор у меня сейчас - или C Builder или Visual Studio. Склоняюсь к последнему.
Когда-то писал простенькое на Pascal. Синтаксис C для меня выглядит намного более логичным. Не испытываю ни малейшего дискомфорта, когда программирую на C для микроконтроллеров. Скорее, наоборот, испытываю удовольствие. sm.gif
MrYuran
Цитата(ViKo @ Apr 18 2012, 13:19) *
Выбор у меня сейчас - или C Builder или Visual Studio. Склоняюсь к последнему.

Это примерно как выбор между Pcad и AD.
ViKo
Цитата(MrYuran @ Apr 18 2012, 12:22) *
Это примерно как выбор между Pcad и AD.

Не совсем, хотя намек понятен. PCAD типа "безнадежно устарел".
Тоже, кстати, страдаю муками выбора: AD, PADS, Allegro... думаю, все же, AD. Куда фига, туда дым. sm.gif
AlexandrY
Цитата(MrYuran @ Apr 18 2012, 12:22) *
Это примерно как выбор между Pcad и AD.


Опасное заблуждение. В свете прорыва планшетников.
Ориентация на С Builder это ориентация на среду Embarcadero
А они имеют Embarcadero Prism™ XE2 создающую код для Linux и Mac OS X.
Меджикивис
Цитата(ViKo @ Apr 18 2012, 13:28) *
Не совсем, хотя намек понятен. PCAD типа "безнадежно устарел".
Сколько я могу судить по VB, интерфейс Visual Studio вполне комфортен. Разработчики положили в основе ясную и простую концепцию - и дальше везде ее придерживались. В результате работа легка и приятна.

ЗЫ:
Да, безусловно это ориентация на PC. Собственно, от PC у нас и управляют аппаратурой, но не от МАКов, и упаси боже не от планшетников))))))
haker_fox
QUOTE (Меджикивис @ Apr 18 2012, 17:05) *
Ну я ж говорю - синтаксис Си меня убивает реально... Ну его. Нервные клетки не восстанавливаюЦЦа))))))

ТОгда о QT забываем) Там Си++...
MrYuran
Цитата(AlexandrY @ Apr 18 2012, 13:33) *
В свете прорыва планшетников

.. вообще не понятно, при чем тут труп билдера.
ViKo
Цитата(MrYuran @ Apr 18 2012, 13:05) *
.. вообще не понятно, при чем тут труп билдера.

http://www.embarcadero.com/products/cbuilder
_pv
Цитата(Меджикивис @ Apr 18 2012, 02:24) *
на чем лучше писать управляющю программу? (Имеется ввиду пользовательский интерфейс на РС.)
Каким языком программирования лично Вы пользуетесь для такой цели?

MSVC++ Express и FLTK - простая и маленькая библиотека для построения гуёв.
там есть fluid, программа для визуального рисования гуя, несколько специфичный, по довольно простой.
если хочется совсем уж простого и не С/С++, то могу посоветовать поглядеть на IUP и lua,
простые диалоги в две строчки описываются http://www.tecgraf.puc-rio.br/iup/en/dlg/i...m.html#Examples
MrYuran
Цитата(_pv @ Apr 18 2012, 14:57) *
простые диалоги в две строчки описываются http://www.tecgraf.puc-rio.br/iup/en/dlg/i...m.html#Examples

Не катит , там тоже точки с запятой smile3046.gif
Меджикивис
Цитата(_pv @ Apr 18 2012, 14:57) *
и не С/С++,
да, про нелюбовь к С/С... я уже отписался много раз))))))))
Цитата(_pv @ Apr 18 2012, 14:57) *
могу посоветовать поглядеть на IUP и lua,
простые диалоги в две строчки описываются http://www.tecgraf.puc-rio.br/iup/en/dlg/i...m.html#Examples
Это чо, опять проектирование Гуи в текстовом виде?
Да к тому ж, те же самые злосчастные точки с запятой.
Спасибо, оставляю кому-нибудь другому))))))))))


haker_fox
QUOTE (Меджикивис @ Apr 18 2012, 19:16) *
Да к тому ж, те же самые злосчастные точки с запятой.

Честно говоря уж очень странный у Вас подход к делу...
Каприз crying.gif
Меджикивис
Цитата(haker_fox @ Apr 18 2012, 15:28) *
Честно говоря уж очень странный у Вас подход к делу...
Каприз crying.gif
Что ж тут странного? Языков - много, а нервные клетки не восстанавливаются.
Почему я не могу отклонить парочку вариантов исключительно по личной аллергии)))))))
Не сошелся же свет клином на Си и его потомстве.


toweroff
Если есть стойкое нежелание писАть на С для ББ приложение, которое будет работать с железкой, то на каком языке пишется софт для самой железки? Неужели VB вкрутили? sm.gif
И вообще, если ; - это камень преткновения, то каприз странен и граничит с фобией какой-то...
Меджикивис
Цитата(toweroff @ Apr 18 2012, 15:34) *
на каком языке пишется софт для самой железки?
На Пик-Басик)))))) Чо, некошерно? - а пофиг, я им не скажу а сами они по прошивке не догадаюЦЦо)))))))

Цитата(toweroff @ Apr 18 2012, 15:34) *
каприз странен

"Я странен? - а не странен кто ж?" (А.С.Грибоедов)
Такшта, меня давайте обсуждать не будем...


alexvu
Извините, правильно ли я понял из прочтения этой темы, что для тех, у кого нет ;-фобии, лучше всего С++?
Demeny
Если не нравятся ; - пишите вместо них * или ещё что, а в начале программы поставьте
Код
#define * ;
и все дела... biggrin.gif
А вообще, по правде говоря, без C/C++ нет у Вас перспектив ...
Никаких.
Меджикивис
Цитата(Demeny @ Apr 18 2012, 16:04) *
Если не нравятся ; - пишите вместо них * или ещё что

0Dh -пойдет? biggrin.gif

_Pasha
Вот FLTK помянули. FLUID собрали, допилили - и полный вперед. Кстати, изнутри, - гораздо больше нравится, чем AGAR тот же. Только плюсов я не хочу ни в каком виде подразумевать...

Цитата(Меджикивис @ Apr 18 2012, 15:25) *
0Dh -пойдет? biggrin.gif

Почти Питон sm.gif
Cosmojam
Цитата(MrYuran @ Apr 18 2012, 11:40) *
Как по мне, Qt и иже с ними - это, конечно, православный путь, но не самый удачный для начала.
Стесняюсь спросить... а "среда VB" - это случаем не Visual Studio?

Первую GUI программу я писал на Си + голый WinAPI и ручным редактированием rc файла с прописыванием виджетов и их расположения. Особый экшен тут в убогой документации от MS по этой теме.
Qt после этого показалось просто детской забавой sm.gif
_pv
Цитата(MrYuran @ Apr 18 2012, 17:14) *
Не катит , там тоже точки с запятой smile3046.gif

промазал, там действительно пример на С.
вот оно же на lua, ни одной точки с запятой sm.gif
Код
pboolean = 1
pinteger = 3456
preal = 3.543
pinteger2 = 192
preal2 = 0.5
pangle = 90
pstring = "string text"
plist = 2
pstring2 = "second text\nsecond line"
  
ret, pboolean, pinteger, preal, pinteger2, preal2, pangle, pstring, plist, pstring2 =
      iup.GetParam("Title", param_action,
                  "Boolean: %b\n"..
                  "Integer: %i\n"..
                  "Real 1: %r\n"..
                  "Sep1 %t\n"..
                  "Integer: %i[0,255]\n"..
                  "Real 2: %r[-1.5,1.5]\n"..
                  "Sep2 %t\n"..
                  "Angle: %a[0,360]\n"..
                  "String: %s\n"..
                  "List: %l|item1|item2|item3|\n"..
                  "Sep3 %t\n"..
                  "Multiline: %m\n",
                  pboolean, pinteger, preal, pinteger2, preal2, pangle, pstring, plist, pstring2)
Hmm
Меджикивис Из всего рассмотреного выводим - VB "вам в руки". А про "качество компилируемого им кода" не надо - Delphi, Builder и др. RAD дают более "тяжелый и медленный" PE код. Кроме того, никто не отменял DLL, которые можно создавать в чем угодно (c/c++/asm). Тип лицензии на исп-мое ПО не рассматриваем, т.к. не "на продажу".
vvs157
Цитата(MrYuran @ Apr 18 2012, 10:27) *
После билдеров-делфей нужен весьма мощный стимул, чтобы [заставить себя] освоить одно из двух
Если использовать Qt Designer, то программирование не сильно отличается от Бильдера. Просто идеология местами сильно отличается. Если осваивать "с нуля", то больших проблем быть не должно. Qt более "плюс-плюсный", чем Бильдер. Очень любят в Qt шаблонные классы. Это, правда, на любителя.
После того, как Нокия допилила Qt Designer большой надобности а Эклипсе нет.
zöner
пробовал когда-то FLTK - не понравился из-за проблем с юникодом, убогости встроенных виджетов и постоянного пребывания в состоянии альфы.
Если нужно что-то простое кросс-платформенное то есть Tk с биндингами к большинству языков (с Tcl, Питоном и Руби идет из коробки, есть биндинг к Луа). Содержит простой, но гибкий менеджер упаковки .pack, до которого большинству GUI-библиотек как до китая...
Еще можно посмотреть в сторону Java/Swing и Scala (если нужна кросс-платформенность с возможностью работы на всех платформах без перекомпиляции).
cioma
Python - наше всё wink.gif
Меджикивис
Цитата(Hmm @ Apr 18 2012, 17:02) *
Меджикивис Из всего рассмотреного выводим - VB "вам в руки". А про "качество компилируемого им кода" не надо - Delphi, Builder и др. RAD дают более "тяжелый и медленный" PE код.

Спасибо на добром слове. Вообще-то под "качеством" кода я подразумевал не только скорость и объем.

Да простит меня уважаемое собрание, что буду несколько длинен. Вероятно такие проблемы - в основном заслуга Виндовс.

Дело в том, что скомпилированный в VB код использует множество файлов библиотек из состава ОС.
Поэтому всегда есть вероятность, что нормально работавшая у тебя прога, на том или ином компе заказчика заглючит или не запустится вовсе - потому что там, напр., поставлена другая версия Офиса, которая при своей инсталляции заменила туеву хучу дээлэлок.
Причем заказчик про эти причины знать не собирается - каждый плевок адресован в исключительно мою сторону.
Так что, любому разумному человеку ясно, насколько важна хорошая переносимость кода в вышесказанном смысле.

Весьма хорош с этой стороны код, даваемый PureBasic. Я не знаю, как он этого добивается, но работает на любой PC и практически под любой Виндой (семерку не проверил только). Но программирование ГУИ в текстовом виде - это копать лопатой вместо экскаватора. Все циклы ожидания прерываний писать в ручную в явном виде - это же УЖОС реально. Сам не заметил, как забросил эту прелесть))))) Хотя под него есть среда под названием PureFORM, она всё это автоматизирует, но все равно создание и управление объектами через функции невероятно громоздко и запутано огромным количеством непонятных параметров, которых совсем не очевидно, откуда получить. (Вот это-то меня в нем и добило.) А ведь серьезно хотел на него пересесть.






Цитата(zöner @ Apr 18 2012, 18:23) *
Еще можно посмотреть в сторону Java/Swing и Scala (если нужна кросс-платформенность с возможностью работы на всех платформах без перекомпиляции).


А Scala - это что такое? (Я не только не пробовал, но даже не слышал.) Кросплатформенность мне не нужна, просто интересно.



Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.