Форум программистов, компьютерный форум, киберфорум
Теория программирования
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
4 / 4 / 0
Регистрация: 12.11.2018
Сообщений: 511

Выбор языка и среды программирования

04.07.2019, 16:22. Показов 4850. Ответов 41

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть вопрос не прикладного характера, скорее даже хочу услышать совет. По специальности электронщик, но все больше приходится сталкиваться с программированием, хотя особо не изучал его. Более менее разобрался с программированием микроконтроллеров на С в Keil (в основном с применением Standard Peripheral Libraries для STM32), в принципе основной функциона МК могу программировать и использовать. Но сейчас появились задачи писать относительно простые программки на ПК для управления МК и получения/отображения данных с них. Т.е. поуправлять МК с ПК, построить графики по полученным данным с COM порта/ Ethernet и т.д. Непосредственно теперь встал перед выбором какой язык программирования лучше изучать и использовать и в какой среде писать данные программы? Требования к выбору примерно такие: язык и среда программирования не должен быть устаревшими, а актуальными и развивающимися; возможность писать программы под различные операционные системы; доступность примеров/комьюити; адекватный входной порог. Буду рад услышать любое мнение.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.07.2019, 16:22
Ответы с готовыми решениями:

Выбор языка программирования для разработки среды программирования
Возникла мысль о создании ЯПа. Ныне популярные ЯПы не универсальны, либо универсальны, но с косяками фичами (напр. LISP - обилие...

Выборя языка и среды программирования
Доброго времени суток! Мучает следующий вопрос. Что из прикладного программирования сейчас и в обозримом будущем наиболее востребовано...

Выбор среды программирования
День добрый Я уже давно веду для себя экселевский файлик с инфой о своём steam аккаунте (цены для торговой площадки, дроп паков карт,...

41
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
05.07.2019, 19:41
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от locm Посмотреть сообщение
По вашему подразумевалось управление не через COM порт
Цитата Сообщение от locm Посмотреть сообщение
И если посмотреть первое сообщение, это одно из ключевых требований.
не надо домысливать за автора, у него дальше идет
Цитата Сообщение от DmitryDDDD Посмотреть сообщение
Ethernet
и потом много на современных ноутбуках COM портов? USB-COM мост ставить? почему сразу по USB не связаться?
Цитата Сообщение от locm Посмотреть сообщение
Во первых в МК может не быть встроенного Ethernet контроллера. Даже если он есть, потребуется внешний PHY. Далее реализация Ethernet, поддержка IP, HTTP и т. д.
То есть по вашему это все очень просто что за 5 минут можно сделать?
открой для себя ESP8266 и им подобные,запустить их дело пяти минут
Цитата Сообщение от locm Посмотреть сообщение
Советы ТС необходимо давать с учетом специфики микроконтроллеров.
и какая же специфика, если он хочет писать программы управления на ПК?
0
Эксперт по электронике
7167 / 3344 / 344
Регистрация: 28.10.2011
Сообщений: 13,184
Записей в блоге: 7
05.07.2019, 20:05
Цитата Сообщение от ValeryS Посмотреть сообщение
и потом много на современных ноутбуках COM портов? USB-COM мост ставить?
USB-COM сложно найти или дорого стоит?

Цитата Сообщение от ValeryS Посмотреть сообщение
почему сразу по USB не связаться?
Вопрос к ТС. Вероятно потому что работа с USB сложнее. Не все без подготовки смогут быстро разобраться. И в итоге получим тот же COM порт (CDC класс) или HID как наиболее простые.

Цитата Сообщение от ValeryS Посмотреть сообщение
открой для себя ESP8266 и им подобные,запустить их дело пяти минут
Через AT команды?
Только чтобы разобраться с ними нужно гораздо больше 5 минут! А потом еще потребуется написать код HTTP сервера на МК и обработку GET или POST запросов. Это тоже входит в 5 минут?

Цитата Сообщение от ValeryS Посмотреть сообщение
и какая же специфика, если он хочет писать программы управления на ПК?
Явно не следует советовать реализовать ПК часть как веб на сервере где-то в сети (т. е. не на компе к которому подключен МК).
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
05.07.2019, 20:33
Цитата Сообщение от locm Посмотреть сообщение
Через AT команды?
Только чтобы разобраться с ними нужно гораздо больше 5 минут!
а чтобы буквы в слова складывать? а с аглицкого на русский ? почему это время не учитываешь?
Цитата Сообщение от locm Посмотреть сообщение
Явно не следует советовать реализовать ПК часть как веб на сервере где-то в сети
зато шарп советовать: само то
если заказчику не нравится интерфейс, сколько времени займет перепись на шарпе? а сколько на html?
Цитата Сообщение от locm Посмотреть сообщение
USB-COM сложно найти или дорого стоит?
китайский не дорого, но надежности 0, а фирменный ft232r уже немало
Цитата Сообщение от locm Посмотреть сообщение
И в итоге получим тот же COM порт (CDC класс) или HID как наиболее простые.
ага если скорость нужна пару мегабит в секунду потом вопросы здесь на форуме "пошто не работат"
Цитата Сообщение от locm Посмотреть сообщение
Не все без подготовки смогут быстро разобраться.
без подготовки вообще делать нечего, от простого к сложному
0
Эксперт по электронике
7167 / 3344 / 344
Регистрация: 28.10.2011
Сообщений: 13,184
Записей в блоге: 7
05.07.2019, 21:08
Цитата Сообщение от ValeryS Посмотреть сообщение
зато шарп советовать: само то
Шарп для данной цели намного лучше чем веб приложение, запущенное где-то в сети.

Цитата Сообщение от ValeryS Посмотреть сообщение
если заказчику не нравится интерфейс, сколько времени займет перепись на шарпе? а сколько на html?
ТС пока только изучает программирование. О каких заказчиках речь?
Заказчик должен предоставить точное ТЗ. Если все сделано согласно ТЗ, а ему не нравится и просит переделать, вносятся правки в ТЗ и производится доработка за дополнительную плату.

Цитата Сообщение от ValeryS Посмотреть сообщение
китайский не дорого, но надежности 0, а фирменный ft232r уже немало
Сколько лет вам нужно работать чтобы позволить себе купить фирменный FT232R?

Цитата Сообщение от ValeryS Посмотреть сообщение
ага если скорость нужна пару мегабит в секунду
Процитирую Вас.
Цитата Сообщение от ValeryS Посмотреть сообщение
не надо домысливать за автора
Он где-то писал что нужна такая скорость? Он вообще про USB не упоминал.
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
05.07.2019, 21:40
Цитата Сообщение от locm Посмотреть сообщение
ТС пока только изучает программирование.
ТС не изучает программирование,ТС хочет изучать программирование!
вот я и говорю:
для начала нужно изучить алгоритмы, организацию данных, протоколы, кодировки, парадигмы языков, и только потом язык(языки)
0
4 / 4 / 0
Регистрация: 12.11.2018
Сообщений: 511
06.07.2019, 12:50  [ТС]
Спасибо откликнувшимся, довольно много интересного прочитал, вопросов, правда, все равно еще довольно много остается.

locm
Понятнее не стало. Под этим можно подразумевать как разные версии ОС (например Windows 95 и Windows 10), так и разные платформы (Windows, Linux, MacOS X и т. д.).
- Разные платформы, возможно даже Android, пока на него не надо, но было бы неплохо.

Shamil1
Проще всего сделать веб интерфейс и не думать о кроссплатформенности
- Довольно интересная идея, JavaScript из этой оперы?

locm
По вашему подразумевалось управление не через COM порт?
- Я использую переходник USB/COM - CH340 http://www.5v.ru/ch340g.htm, для МК я настраиваю USART, в ПК данные смотрю с COM порта через терминал.

Shamil1
Да. Вместо десктопного приложения предлагаю создать приложение, которое хостится на хтпп сервере.
- Можно немного подробнее (языки/программы для написания), первый раз сталкиваюсь.

ValeryS
и потом много на современных ноутбуках COM портов? USB-COM мост ставить? почему сразу по USB не связаться?
- проще было использовать CH340 и настроить USART на МК, т.к. только учился программировать МК.

ValeryS
и какая же специфика, если он хочет писать программы управления на ПК?
- Тут по сути МК не особо важен, важна работа с потоком и передачей данных через COM, USB, Ethernet. Как уже писал, основной задачей программ это управление МК, напимер отправить запрос на извлечнение данных МК с датчиков или на отправку данных с МК в ПК, построение графиков из массива входных данных, запись данных в текстовый файл и тд, подобные задачки.

locm
Он где-то писал что нужна такая скорость? Он вообще про USB не упоминал.
- пока скорость передачи не особо важна, но была у меня задачка, где довольно большой массив данных перегонялся.

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
Цитата Сообщение от DmitryDDDD Посмотреть сообщение
Сначала освоить теорию это конечно хорошо, но так можно просидеть кучу времени, и так не перейти к сути.
"Теория без практики мертва.А вечно зелено лишь древо жизни"(с) "Фауст" Гете.
Цитата Сообщение от DmitryDDDD Посмотреть сообщение
Так же как и программирование МК, по-хорошему надо изучать регистры, периферию и т.д., но в основном все садятся и начинают мигать светодиодом
это на первом этапе, причем не программировать чаще всего, а скопировать из интернета(книги ...)
но дальше то все равно придется
Цитата Сообщение от DmitryDDDD Посмотреть сообщение
надо изучать регистры, периферию и т.д.,
иначе баловство одно
приведу пример из жизни
как то мне нужно было реализовать следующую сущность
принимаются данные и потом они обрабатываются, причем прием данных остановить не могу, они задаются внешним устройством неделю изобретал... а потом оказалось что я изобрел кольцевой буфер который уже до меня изобрели 100500 раз это к вопросу организации данных
Цитата Сообщение от DmitryDDDD Посмотреть сообщение
Собственно отсюда и возник мой вопрос: какой язык и какую программу для написания подобного софта на ПК выбрать?
вот я и говорю изучи
Цитата Сообщение от ValeryS Посмотреть сообщение
парадигмы языков
https://ru.wikipedia.org/wiki/... ммирования
иногда проще что то написать на императивном языке, иногда на функциональном ....
Цитата Сообщение от DmitryDDDD Посмотреть сообщение
Просто не хочется в процессе изучения какого-либо языка (из всей этой необозримой кучи языков программирования) понять, что он реализует только узкие задачи, да и в принципе уже никому не нужен, т.к. есть более современные/совершенные.
Возьмем, например, Фортран: можно сказать мертвый язык, мало кто на нем пишет, но в ветке ТОЭ постоянно есть листинги на нем, для электротехнических расчетов программы на Фортране понятней и проще чем на том же Си
0
Эксперт по электронике
7167 / 3344 / 344
Регистрация: 28.10.2011
Сообщений: 13,184
Записей в блоге: 7
06.07.2019, 14:02
Цитата Сообщение от DmitryDDDD Посмотреть сообщение
Разные платформы, возможно даже Android, пока на него не надо, но было бы неплохо.
Как на простой вариант можно обратить внимание на на PureBasic и SpiderBasic (они от одного разработчика и языковые конструкции похожие). Первый для Windows, Linux и MacOS X, а второй для веба и андроида.
COM порт поддерживается. https://www.purebasic.com/docu... index.html
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
08.07.2019, 13:39
Цитата Сообщение от locm Посмотреть сообщение
Как приложение на сервере где-то в сети сможет работать с COM портом на устройстве где запущен браузер? Браузер имеет полный доступ к COM порту?
Вы предлагаете написать десктопное приложение - экзешник с гуи. Я предлагаю написать веб-приложение - экзешник без гуи. Почему мой экзешник не сможет достучаться до того, что доступно Вашему экзешнику?

Браузер стучится к веб-серверу - к экзешнику, запущенному там, где надо. При этом сам браузер можно запускать где угодно, хоть на телефоне. При этом не надо писать для телефона отдельное приложение и не надо думать, как с телефона достучаться до СОМ порта на нужном компьютере.

Цитата Сообщение от locm Посмотреть сообщение
Для микроконтроллера нужно писать программу
Программа для микроконтроллера не имеет никакого отношения к данной теме. Не зависимо от того, как и на каком языке Вы будете писать программу для ПК, Вам потребуется другая программа для МК. Причём, судя по первому сообщению ТС, эта программа уже написана.

Добавлено через 44 минуты
Цитата Сообщение от DmitryDDDD Посмотреть сообщение
Довольно интересная идея, JavaScript из этой оперы?
В целом да. Интерфейс пользователя можно и на JavaScript написать. Но я рекомендую в своём первом веб-сайте использовать JavaScript по минимуму, чтобы не разбираться сразу с двумя новыми технологиями.

Tutorial: Get started with Razor Pages in ASP.NET Core

На ПК Вам потребуется веб сервер. Можно использовать "тяжеловесный" IIS. А можно использовать "легковесный" Nginx. Можно вообще не использовать сторонний веб сервер, а поднимать свой локальный веб сервер (при использовании сторонних библиотек типа Suave это делается одной строкой кода). Веб сервер будет передавать http запросы от браузера Вашему коду. Ваш код должен быть поделен на две части - интерфейс пользователя и бизнес-логика. Интерфейс получает от пользователя команды (типа "запрошена такая-то страница" или "нажата такая-то кнопка"). Для обработки этих команд он вызывает методы из бизнес-логики. Внутри этих методов формируются нужные запросы/команды к МК и отправляются на СОМ порт или куда-то ещё (как прописано в файле конфигурации). Код для общения с СОМ портом и т.п. не нужно писать самому - нужно найти подходящую бесплатную библиотеку (для C# это обычно nuGet пакет).
Главное - написать бизнес-логику, а интерфейс пользователя к ней потом можно любой прикрутить - хоть веб, хоть десктоп, хоть консоль... да хоть голосовой .
0
Эксперт по электронике
7167 / 3344 / 344
Регистрация: 28.10.2011
Сообщений: 13,184
Записей в блоге: 7
08.07.2019, 14:02
Цитата Сообщение от Shamil1 Посмотреть сообщение
Вы предлагаете написать десктопное приложение - экзешник с гуи. Я предлагаю написать веб-приложение - экзешник без гуи. Почему мой экзешник не сможет достучаться до того, что доступно Вашему экзешнику?
Как думаете почему большинство приложений написано именно с GUI, а не по вашему методу?

Цитата Сообщение от Shamil1 Посмотреть сообщение
На ПК Вам потребуется веб сервер. Можно использовать "тяжеловесный" IIS. А можно использовать "легковесный" Nginx.
ТС просто хочет научится производить обмен между ПК и МК через COM порт, а вы ему такое предложили.... Прочем основное что нужно - обмен через COM порт, отодвинули чуть ли не на последний план.
Ваше решение в данном случае, мягкого говоря, то же что ехать из Москвы в Подмосковье через Камчатку. А как это обычно называется, думаю сами догадаетесь (правила форума не позволяют это написать).
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
08.07.2019, 15:02
Цитата Сообщение от locm Посмотреть сообщение
Как думаете почему большинство приложений написано именно с GUI, а не по вашему методу?
Я думаю, что большинство современных приложений, не требующих мощной видеокарты, написано по "моему" методу - с использованием веб интерфейса. И для тех приложений, которые были написаны давно как десктопные (нарпимер, ворд, эсель), позже написали дополнительно веб интерфейс.

Цитата Сообщение от locm Посмотреть сообщение
ТС просто хочет научится производить обмен между ПК и МК через COM порт
ТС хочет графический интерфейс для просмотра/изменения данных. Откуда берутся эти данные, не так важно. Получение данных и их отображение - две независимые задачи.
А учиться получать данные с сом порта не нужно. Достаточно создать экземпляр класса System.IO.Ports.SerialPort и работать с ним.

Добавлено через 4 минуты
з.ы. Насколько я понял, ТС не требуется слушать порт постоянно. Нужно отправить запрос и получить ответ.
0
Эксперт по электронике
7167 / 3344 / 344
Регистрация: 28.10.2011
Сообщений: 13,184
Записей в блоге: 7
08.07.2019, 15:38
Цитата Сообщение от Shamil1 Посмотреть сообщение
Я думаю, что большинство современных приложений, не требующих мощной видеокарты, написано по "моему" методу - с использованием веб интерфейса.
Приведите примеры таких приложений. Раз их большинство (судя из ваших слов), примеров должно быть очень много, потому что такие приложения повсюду.

Цитата Сообщение от Shamil1 Посмотреть сообщение
Достаточно создать экземпляр класса System.IO.Ports.SerialPort и работать с ним.
Это для C#. В других ЯП синтаксис может сильно отличаться. И ничего не мешает для доступа к порту использовать API OS.
Допустим что ТС использует C# и этот класс. Объясните ему на примерах кода как с его помощью производить обмен с МК. В частности это.
Цитата Сообщение от DmitryDDDD Посмотреть сообщение
поуправлять МК с ПК, построить графики по полученным данным с COM порта
Потому что на словах у вас все просто. Будет ли так просто в коде?
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
09.07.2019, 10:46
Цитата Сообщение от locm Посмотреть сообщение
Приведите примеры таких приложений.
На работе я использую Outlook, whatsup, ms office, tfs, jira, два десятка корпоративных приложений (внутренние системы), ютуб и яндекс.музыка (только никому не рассказывайте). В общем, всё, кроме студии, скайпа и нескольких небольших бесплатных приложений (проводник, блокнот, читалка пдф, архиватор, линкпад).

Цитата Сообщение от locm Посмотреть сообщение
Объясните ему на примерах кода как с его помощью производить обмен с МК.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using SerialPortLib;
...
var serialPort = new SerialPortInput();
 
// Listen to Serial Port events
 
serialPort.ConnectionStatusChanged += delegate(object sender, ConnectionStatusChangedEventArgs args) 
{
    Console.WriteLine("Connected = {0}", args.Connected);
};
 
serialPort.MessageReceived += delegate(object sender, MessageReceivedEventArgs args)
{
    Console.WriteLine("Received message: {0}", BitConverter.ToString(args.Data));
};
 
// Set port options
serialPort.SetPort("/dev/ttyUSB0", 115200);
 
// Connect the serial port
serialPort.Connect();
 
// Send a message
var message = System.Text.Encoding.UTF8.GetBytes("Hello World!");
serialPort.SendMessage(message);
0
Эксперт по электронике
7167 / 3344 / 344
Регистрация: 28.10.2011
Сообщений: 13,184
Записей в блоге: 7
09.07.2019, 12:09
Цитата Сообщение от Shamil1 Посмотреть сообщение
На работе я использую Outlook
Вы точно уверены что интерфейс в виде веб приложения? Не путайте с возможностью отправки писем с html форматированием.

Цитата Сообщение от Shamil1 Посмотреть сообщение
ms office
Опять же возможность сохранения в html не означает что это веб приложение.

Цитата Сообщение от Shamil1 Посмотреть сообщение
ютуб и яндекс.музыка
Это не в счет. Речь про
Цитата Сообщение от Shamil1 Посмотреть сообщение
Я предлагаю написать веб-приложение - экзешник без гуи.
Или хотите сказать что ютуб и яндекс.музыка в виде экзешников без гуи запущенных на вашем компе и к сети подключения нет?

По поводу кода. В нем только открытие порта и отправка сообщения Hello World! (очень похоже что код вы не писали, а взяли из первой попавшейся темы). Где производится обмен с МК и управление им? Где прием данных для построения графика?
Это должен быть осмысленный код, а не просто передача и прием данных.
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
09.07.2019, 13:10
Цитата Сообщение от locm Посмотреть сообщение
Вы точно уверены что интерфейс в виде веб приложения?
Уверен. Я умею отличать закладку в браузере

Цитата Сообщение от locm Посмотреть сообщение
Это не в счет.
Это приложения для просмотра/прослушивания видео/музыки. В составе виндоуз есть какие-то десктопные приложения для просмотра/прослушивания видео/музыки, но я их не использую.
Ещё у нас есть внутрикорпоративный аналог ютуба. То есть, если мне по работе нужно посмотреть какое-то видео, то я использую для просмотра веб приложение.

Цитата Сообщение от locm Посмотреть сообщение
Это должен быть осмысленный код, а не просто передача и прием данных.
Всё управление МК сводится к обмену сообщениями с использованием заданного протокола. Например, я отсылаю сообщение "1", МК в ответ высылает мне значение с датчика освещённости. А когда я отсылаю сообщение "2", МК включает свет. И т.п. Фактически, Вы сейчас предлагаете мне "напишите то, не знаю что".
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
09.07.2019, 13:59
В целом приложение будет выглядеть так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class MyController : Controller
{
    public ActionResult MyAction(MyForm form)
    {
        var inputData = Map(form);
        IMyService service = new MyService();
        var result = service.DoSomething(inputData);
        var viewModel = new MyViewModel(result);
        return View(viewModel);
    }
}
 
public class MyService : IMyService
{
    public MyResult DoSomething(MyInputData data)
    {
        IProtocol protocol = new MyProtocol();
        var message = protocol.CreateDoSomethingMessage(data);
        ITransport transport = new ComPortTransport();
        var answer = transport.Send(message);
        var result = protocol.ParseAnswer(answer);
        return result;
    }
}
MyController - это веб интерфейс. Он принимает данные от пользователя, обрабатывает их, используя бизнес-логику и отображает пользователю результат выполнения.
MyService - это бизнес-логика. Она выполняет всю работу. Можно написать, например, консольный интерфейс, который будет использовать ту же бизнес-логику.
Суть управления МК - это отправка сообщений и получение ответа (возможны вариации, когда МК может посылать сообщения по собственной инициативе - например, предупреждать о какой-то ситуации). Формат сообщений описан в специальном документе - протоколе. Для преобразования сообщений, понятных бизнес-логике, в сообщения, понятные МК, используется специальный модуль. Сформированное таким образом сообщение отправляется на МК. Для этого может использоваться любой транспорт - COM порт/ Ethernet и т.д.
В реальной программе в MyService не будут создаваться экземпляры конкретных классов MyProtocol и ComPortTransport. Они будут браться из файлов конфигурации и инжектиться с помощью какой-нибудь DI библиотеки. Так же, возможно, MyService будет инжектиться в MyController.

Добавлено через 8 минут
В результате наша система будет состоять из следующих подсистем:
1. Программа на МК (скорее всего, написана на Си или Форте)
2. Набор различных транспортов (доставляют сообщения с ПК на МК и обратно)
3. Протокол (преобразует сообщения из "формата МК" в "формат ПК" и наоборот)
4. Бзинес-логика (реализует логику предметной области)
5. Набор различных интерфейсов пользователя (где пользователь будет тыкать кнопки и рассматривать графики)
0
Эксперт по электронике
7167 / 3344 / 344
Регистрация: 28.10.2011
Сообщений: 13,184
Записей в блоге: 7
09.07.2019, 14:48
Цитата Сообщение от Shamil1 Посмотреть сообщение
Уверен. Я умею отличать закладку в браузере
Outlook это закладка в браузере?
Не шутите так! https://ru.wikipedia.org/wiki/Microsoft_Outlook

Цитата Сообщение от Shamil1 Посмотреть сообщение
Это приложения для просмотра/прослушивания видео/музыки. В составе виндоуз есть какие-то десктопные приложения для просмотра/прослушивания видео/музыки, но я их не использую.
Допустим многие используют для музыки и видео программы Winamp, Aimp, VLC и т. д. Они тоже веб приложения?

Цитата Сообщение от Shamil1 Посмотреть сообщение
Ещё у нас есть внутрикорпоративный аналог ютуба. То есть, если мне по работе нужно посмотреть какое-то видео, то я использую для просмотра веб приложение.
По каким критериям вы решили что это веб приложение? Или хотите сказать что "аналог ютуба" запускает сервер на вашем компе и транслирует видео в ваш браузер на том же компе?

Цитата Сообщение от Shamil1 Посмотреть сообщение
В целом приложение будет выглядеть так
Пусть ТС посмотрит на этот код и решит нужно или ему выполнять столько лишних действий, если речь о простой программе, которая будет намного проще и понятней при традиционном подходе и использовании GUI.
Ваш подход имеет смысл для крупных приложений, а не для простых программ.
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
09.07.2019, 16:07
Цитата Сообщение от locm Посмотреть сообщение
Outlook это закладка в браузере?
Outlook - это закладка в браузере (https://outlook.office.com). Так же, как почта гугла, яндекса, рамблера и т.д.

Цитата Сообщение от locm Посмотреть сообщение
Допустим многие используют для музыки и видео программы Winamp, Aimp, VLC и т. д. Они тоже веб приложения?
Нет, это не веб приложения. Я тоже их когда-то давно использовал. Теперь не использую, так они неудобны по сравнению с аналогичными веб приложениями.

Цитата Сообщение от locm Посмотреть сообщение
По каким критериям вы решили что это веб приложение?
Чтобы запустить его, нужно открыть браузер и набрать нужный адрес.

Цитата Сообщение от locm Посмотреть сообщение
которая будет намного проще и понятней при традиционном подходе и использовании GUI
Проще не будет. И тем более не будет понятней. В нормальном десктопном приложении будет такая же разбивка по классам (если не учитывать антипатерны, когда бизнес-логика пихается в обработчики событий). При желании, все эти классы можно запихнуть в один исполняемый файл, но от этого меньше кода не станет, а гибкость потеряется. Сейчас на МК крутится программа версии х1, позже появится версия х2. Сейчас МК подключён к ком-порту, позже будет подключён по вай-фай. При моём подходе не придётся менять код программы для ПК, достаточно будет написать ещё один протокол и/или транспорт. Впрочем, Вы правы - решать, какой подход выбрать, будет DmitryDDDD.
0
Эксперт по электронике
7167 / 3344 / 344
Регистрация: 28.10.2011
Сообщений: 13,184
Записей в блоге: 7
09.07.2019, 17:42
Цитата Сообщение от Shamil1 Посмотреть сообщение
Outlook - это закладка в браузере
Чем в этом плане отличается или любого другого сайта, например этого форума?
А теперь расскажите как код на сервере где-то в сети сможет работать с COM портом на устройстве где запущен браузер? Я об этом спрашивал, но ответа не получил. ТС не спрашивал как разрабатывать веб приложения. У него были совсем другие вопросы.

Цитата Сообщение от Shamil1 Посмотреть сообщение
Теперь не использую, так они неудобны по сравнению с аналогичными веб приложениями.
Хорошо, назовите удобные веб приложения для работы с МК и с COM портом в частности. Хотя бы примеры таких приложений, в которых это реализовано.

Цитата Сообщение от Shamil1 Посмотреть сообщение
Чтобы запустить его, нужно открыть браузер и набрать нужный адрес.
Адрес сервера где-то в сети... Еще раз прочитайте вопросы ТС в первом сообщении. Он что-то спрашивал о сайтостроении или веб приложениях?
Его вопросы связаны с железом.

Цитата Сообщение от Shamil1 Посмотреть сообщение
В нормальном десктопном приложении будет такая же разбивка по классам
Без ООП невозможна разработка программы?
Представьте, в некоторых из микроконтроллеров всего 1 КБ памяти для прошивки и около 64 байта для переменных. Динамическое выделение памяти непозволительная роскошь! О каком ООП может идти речь? А еще часто для МК пишут на ассемблере, где не то что ООП - функций в привычном виде нет.
Это я все к тому что программирование возможно не только с применением ООП.

Цитата Сообщение от Shamil1 Посмотреть сообщение
(если не учитывать антипатерны, когда бизнес-логика пихается в обработчики событий).
Начинающие будут писать именно так? Им чем проще тем лучше (потому что понятней) и ваш вариант сильно избыточен.
Вспомните свои первые программы. Они были написаны так как вы сейчас предлагаете?
0
Эксперт .NET
 Аватар для Rius
13826 / 7869 / 1704
Регистрация: 25.05.2015
Сообщений: 23,903
Записей в блоге: 14
09.07.2019, 18:41
Цитата Сообщение от locm Посмотреть сообщение
А теперь расскажите как код на сервере где-то в сети сможет работать с COM портом на устройстве где запущен браузер? Я об этом спрашивал, но ответа не получил.
Приложение локальное. Запускаете его и оно поднимает локальный веб-сервер (не где-то там в сети, а на локалхосте). Работа с приложением через веб-браузер.
Бонусом идёт возможность "из коробки" работы с устройством на компе в сети. Лишь бы там было приложение.

Новичок, да ещё и электронщик, не затащит такое. Гарантия 146%. Поэтому всё это - полнейший оффтоп для ТСа.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.07.2019, 18:41

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

Выбор языка программирования
Всем привет! 8-) С недавних пор я абитуриент и хочу поступить на программиста в колледж. Я понимаю что в колледже кроме корочки я...

Выбор языка программирования
Hello, world! Нужна помощь с выбором среды и языка программирования. Познания в программировании - базовые (Паскаль в рамках...

Выбор языка программирования
Всем доброго времени суток! Посоветуйте пожалуйста, собираюсь писать приложение, работающее с БД. Пусть будет аналог 1С для понимания....

Выбор языка программирования
Всем привет! Хочу написать компьютерную программу по симуляции работы гидравлики. В ее задачи должно входить: - расчет различных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Мастера простых решений
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
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru