|
4 / 4 / 0
Регистрация: 12.11.2018
Сообщений: 511
|
|
Выбор языка и среды программирования04.07.2019, 16:22. Показов 4850. Ответов 41
Здравствуйте, есть вопрос не прикладного характера, скорее даже хочу услышать совет. По специальности электронщик, но все больше приходится сталкиваться с программированием, хотя особо не изучал его. Более менее разобрался с программированием микроконтроллеров на С в Keil (в основном с применением Standard Peripheral Libraries для STM32), в принципе основной функциона МК могу программировать и использовать. Но сейчас появились задачи писать относительно простые программки на ПК для управления МК и получения/отображения данных с них. Т.е. поуправлять МК с ПК, построить графики по полученным данным с COM порта/ Ethernet и т.д. Непосредственно теперь встал перед выбором какой язык программирования лучше изучать и использовать и в какой среде писать данные программы? Требования к выбору примерно такие: язык и среда программирования не должен быть устаревшими, а актуальными и развивающимися; возможность писать программы под различные операционные системы; доступность примеров/комьюити; адекватный входной порог. Буду рад услышать любое мнение.
0
|
|
| 04.07.2019, 16:22 | |
|
Ответы с готовыми решениями:
41
Выборя языка и среды программирования Выбор среды программирования |
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||||||
| 05.07.2019, 19:41 | ||||||
|
0
|
||||||
|
|
|||||
| 05.07.2019, 20:05 | |||||
|
Только чтобы разобраться с ними нужно гораздо больше 5 минут! А потом еще потребуется написать код HTTP сервера на МК и обработку GET или POST запросов. Это тоже входит в 5 минут?![]()
0
|
|||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||||||
| 05.07.2019, 20:33 | ||||||
![]() если заказчику не нравится интерфейс, сколько времени займет перепись на шарпе? а сколько на html? потом вопросы здесь на форуме "пошто не работат"![]()
0
|
||||||
|
|
||||||
| 05.07.2019, 21:08 | ||||||
![]() Заказчик должен предоставить точное ТЗ. Если все сделано согласно ТЗ, а ему не нравится и просит переделать, вносятся правки в ТЗ и производится доработка за дополнительную плату. ![]()
0
|
||||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||
| 05.07.2019, 21:40 | ||
|
вот я и говорю: для начала нужно изучить алгоритмы, организацию данных, протоколы, кодировки, парадигмы языков, и только потом язык(языки)
0
|
||
|
4 / 4 / 0
Регистрация: 12.11.2018
Сообщений: 511
|
|||||||||
| 06.07.2019, 12:50 [ТС] | |||||||||
|
Спасибо откликнувшимся, довольно много интересного прочитал, вопросов, правда, все равно еще довольно много остается.
locm
Shamil1
locm
Shamil1
ValeryS
ValeryS
locm
ValeryS
Собственно отсюда и возник мой вопрос: какой язык и какую программу для написания подобного софта на ПК выбрать? Просто не хочется в процессе изучения какого-либо языка (из всей этой необозримой кучи языков программирования) понять, что он реализует только узкие задачи, да и в принципе уже никому не нужен, т.к. есть более современные/совершенные. Добавлено через 35 минут Еще забыл добавить, пока предполагается реализовать передачу от МК к ПК на COM порт данных (при помощи той же CH340) и построение по полученным данным графиков, сейчас склоняюсь к C++/Qt creator. Но потом хочу передавать данные уже на сайт, который собственно надо будет создать, при помощи Ethernet, но с использованием PHY (W5500, ENC28J60 и подобных)
0
|
|||||||||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
|||||||
| 06.07.2019, 12:52 | |||||||
![]() но дальше то все равно придется приведу пример из жизни как то мне нужно было реализовать следующую сущность принимаются данные и потом они обрабатываются, причем прием данных остановить не могу, они задаются внешним устройством неделю изобретал... а потом оказалось что я изобрел кольцевой буфер который уже до меня изобрели 100500 раз это к вопросу организации данныхиногда проще что то написать на императивном языке, иногда на функциональном ....
0
|
|||||||
|
|
||
| 06.07.2019, 14:02 | ||
|
COM порт поддерживается. https://www.purebasic.com/docu... index.html
0
|
||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
||||
| 08.07.2019, 13:39 | ||||
|
Браузер стучится к веб-серверу - к экзешнику, запущенному там, где надо. При этом сам браузер можно запускать где угодно, хоть на телефоне. При этом не надо писать для телефона отдельное приложение и не надо думать, как с телефона достучаться до СОМ порта на нужном компьютере. Добавлено через 44 минуты Tutorial: Get started with Razor Pages in ASP.NET Core На ПК Вам потребуется веб сервер. Можно использовать "тяжеловесный" IIS. А можно использовать "легковесный" Nginx. Можно вообще не использовать сторонний веб сервер, а поднимать свой локальный веб сервер (при использовании сторонних библиотек типа Suave это делается одной строкой кода). Веб сервер будет передавать http запросы от браузера Вашему коду. Ваш код должен быть поделен на две части - интерфейс пользователя и бизнес-логика. Интерфейс получает от пользователя команды (типа "запрошена такая-то страница" или "нажата такая-то кнопка"). Для обработки этих команд он вызывает методы из бизнес-логики. Внутри этих методов формируются нужные запросы/команды к МК и отправляются на СОМ порт или куда-то ещё (как прописано в файле конфигурации). Код для общения с СОМ портом и т.п. не нужно писать самому - нужно найти подходящую бесплатную библиотеку (для C# это обычно nuGet пакет). Главное - написать бизнес-логику, а интерфейс пользователя к ней потом можно любой прикрутить - хоть веб, хоть десктоп, хоть консоль... да хоть голосовой .
0
|
||||
|
|
|||
| 08.07.2019, 14:02 | |||
|
Ваше решение в данном случае, мягкого говоря, то же что ехать из Москвы в Подмосковье через Камчатку. А как это обычно называется, думаю сами догадаетесь (правила форума не позволяют это написать).
0
|
|||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
|||
| 08.07.2019, 15:02 | |||
|
А учиться получать данные с сом порта не нужно. Достаточно создать экземпляр класса System.IO.Ports.SerialPort и работать с ним. Добавлено через 4 минуты з.ы. Насколько я понял, ТС не требуется слушать порт постоянно. Нужно отправить запрос и получить ответ.
0
|
|||
|
|
||||
| 08.07.2019, 15:38 | ||||
|
Допустим что ТС использует C# и этот класс. Объясните ему на примерах кода как с его помощью производить обмен с МК. В частности это.
0
|
||||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
||||||||
| 09.07.2019, 10:46 | ||||||||
0
|
||||||||
|
|
|||||
| 09.07.2019, 12:09 | |||||
![]() ![]() По поводу кода. В нем только открытие порта и отправка сообщения Hello World! (очень похоже что код вы не писали, а взяли из первой попавшейся темы). Где производится обмен с МК и управление им? Где прием данных для построения графика?Это должен быть осмысленный код, а не просто передача и прием данных.
0
|
|||||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
||||
| 09.07.2019, 13:10 | ||||
![]() Ещё у нас есть внутрикорпоративный аналог ютуба. То есть, если мне по работе нужно посмотреть какое-то видео, то я использую для просмотра веб приложение.
0
|
||||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
||||||
| 09.07.2019, 13:59 | ||||||
|
В целом приложение будет выглядеть так:
MyService - это бизнес-логика. Она выполняет всю работу. Можно написать, например, консольный интерфейс, который будет использовать ту же бизнес-логику. Суть управления МК - это отправка сообщений и получение ответа (возможны вариации, когда МК может посылать сообщения по собственной инициативе - например, предупреждать о какой-то ситуации). Формат сообщений описан в специальном документе - протоколе. Для преобразования сообщений, понятных бизнес-логике, в сообщения, понятные МК, используется специальный модуль. Сформированное таким образом сообщение отправляется на МК. Для этого может использоваться любой транспорт - COM порт/ Ethernet и т.д. В реальной программе в MyService не будут создаваться экземпляры конкретных классов MyProtocol и ComPortTransport. Они будут браться из файлов конфигурации и инжектиться с помощью какой-нибудь DI библиотеки. Так же, возможно, MyService будет инжектиться в MyController. Добавлено через 8 минут В результате наша система будет состоять из следующих подсистем: 1. Программа на МК (скорее всего, написана на Си или Форте) 2. Набор различных транспортов (доставляют сообщения с ПК на МК и обратно) 3. Протокол (преобразует сообщения из "формата МК" в "формат ПК" и наоборот) 4. Бзинес-логика (реализует логику предметной области) 5. Набор различных интерфейсов пользователя (где пользователь будет тыкать кнопки и рассматривать графики)
0
|
||||||
|
|
|||||
| 09.07.2019, 14:48 | |||||
![]() Не шутите так! https://ru.wikipedia.org/wiki/Microsoft_Outlook ![]() Ваш подход имеет смысл для крупных приложений, а не для простых программ.
0
|
|||||
|
Модератор
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
|
|||||
| 09.07.2019, 16:07 | |||||
|
0
|
|||||
|
|
||||||
| 09.07.2019, 17:42 | ||||||
|
А теперь расскажите как код на сервере где-то в сети сможет работать с COM портом на устройстве где запущен браузер? Я об этом спрашивал, но ответа не получил. ТС не спрашивал как разрабатывать веб приложения. У него были совсем другие вопросы. Его вопросы связаны с железом. Представьте, в некоторых из микроконтроллеров всего 1 КБ памяти для прошивки и около 64 байта для переменных. Динамическое выделение памяти непозволительная роскошь! О каком ООП может идти речь? А еще часто для МК пишут на ассемблере, где не то что ООП - функций в привычном виде нет. Это я все к тому что программирование возможно не только с применением ООП. Вспомните свои первые программы. Они были написаны так как вы сейчас предлагаете?
0
|
||||||
|
|
||
| 09.07.2019, 18:41 | ||
|
Бонусом идёт возможность "из коробки" работы с устройством на компе в сети. Лишь бы там было приложение. Новичок, да ещё и электронщик, не затащит такое. Гарантия 146%. Поэтому всё это - полнейший оффтоп для ТСа.
1
|
||
| 09.07.2019, 18:41 | |
|
Выбор языка программирования Выбор языка программирования Выбор языка программирования Выбор языка программирования Выбор языка программирования Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|