реклама на сайте
подробности

 
 
27 страниц V  « < 3 4 5 6 7 > »   
Reply to this topicStart new topic
> Сложные программы
ViKo
сообщение Jan 6 2017, 09:54
Сообщение #61


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Укушенный воблой @ Jan 6 2017, 12:39) *
Коллега уже хорошо сказал про такие "рецепты":
Т.е. Вы хотите спрятать логику (закодировав её в номерах функций), чтобы программу стала еще более не понятной и запутанной.
Это по Вашему хорошее решение?
Типа "болит голова - ампутируем голову"?

Я думаю, вы неверно цитируете коллегу по данному поводу.
Массив упорядочивает реагирование на внешние сигналы.
Например, у меня так сделана работа с панелью управления прибором.
Функции имеют названия, соответствующие органам управления. А указатели на них упорядочены в массиве, согласно номеру кнопки на панели. Причем, в массиве есть указатели даже на несуществующие номера кнопок. На пустые функции. А когда понадобилось, добавляю.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 6 2017, 10:25
Сообщение #62


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(syoma @ Jan 6 2017, 11:49) *
о I/O менеджер работает в реальном времени и взаимодействует с физическим железом.... у нас вообще используется EtherCAT мастер с временем опроса в 100мкс.


EtherCAT это и есть коммуникация. А "I/O менеджер" это, как понимаю, у вас простой маппер.
Все надо называть своими словами.

Не, без сорсов вы только зря тратите время на объяснения.
Go to the top of the page
 
+Quote Post
Укушенный воблой
сообщение Jan 6 2017, 11:42
Сообщение #63


Частый гость
**

Группа: Участник
Сообщений: 197
Регистрация: 8-07-16
Пользователь №: 92 484



Цитата(syoma @ Jan 6 2017, 10:49) *
В одном проекте у нас вообще используется EtherCAT

Расскажите про EtherCAT

А то мы в Москве перебрали СОТНИ организаций но так не нашли ни одного толкового спеца по этер кату.

Скажите название Вашей организации?

Цитата(ViKo @ Jan 6 2017, 10:54) *
у меня так сделана работа с панелью управления прибором.
Функции имеют названия, соответствующие органам управления. А указатели на них упорядочены в массиве, согласно номеру кнопки на панели.

Это не универсальное решение и при том очень простой задачи. Это очередные "костыли".
От фундаментальной проблемы (наличие огромного числа "if..then..else" в сложных программах) это не помогает избавиться

Сообщение отредактировал Укушенный воблой - Jan 6 2017, 11:43
Go to the top of the page
 
+Quote Post
dm37
сообщение Jan 6 2017, 12:26
Сообщение #64


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 14-08-16
Пользователь №: 92 949



"Буратино", всё таки предложу ещё раз посмотреть книжку Андрей Александреску "Современное проектирование на C++" и всё что с ней связано (у людей уже есть наработки в этой области - приводил выше),
Прочитайте стр.17 (предисловие) - написано прямо то что вы хотите.
книга
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 6 2017, 12:47
Сообщение #65


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Укушенный воблой @ Jan 6 2017, 14:42) *
Это не универсальное решение и при том очень простой задачи. Это очередные "костыли".
От фундаментальной проблемы (наличие огромного числа "if..then..else" в сложных программах) это не помогает избавиться

Универсальных решений не бывает. Я показал один из примеров. Условных выполнений у меня хватает, но я не вижу это проблемой. Вопрос выбора есть всегда, иначе и программировать ничего не придется. То, что вы называете фундаментальной проблемой, на самом деле - реальность мироздания. "Щелкни кобылу в нос..." (с)
Go to the top of the page
 
+Quote Post
aiwa
сообщение Jan 6 2017, 13:02
Сообщение #66


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(Укушенный воблой @ Jan 6 2017, 11:39) *
Т.е. Вы хотите спрятать логику (закодировав её в номерах функций), чтобы программу стала еще более не понятной и запутанной.
Это по Вашему хорошее решение?

Совершенно наоборот: кодирование логики в номерах функций в случае, когда switch/case-реализация становится запутанной хотя бы из-за ее размера.
Недостатки лишь в издержках на вызов функций.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jan 6 2017, 13:04
Сообщение #67


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (jcxz @ Jan 6 2017, 15:52) *
"Что-то аппаратное" есть во всех Cortex-M - MPU. Использую MPU в всех своих проектах на Cortex-M обязательно. А почему собственно его не использовать?
Только предохранить какую-то конкретную переменную с помощью него конечно затруднительно. Зато при отладке MPU очень часто помогает.

Я думал, может в kinetis что-то "сбоку" прикрутили, дополнительно. А вы MPU используете "сами" или в составе тойже FreeRTOS?

QUOTE (jcxz @ Jan 6 2017, 15:52) *
"Что-то аппаратное" есть во всех Cortex-M - MPU

В M0 нету laughing.gif


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
HardEgor
сообщение Jan 6 2017, 13:35
Сообщение #68


Гуру
******

Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925



Цитата(iosifk @ Jan 6 2017, 16:13) *
А для чего нужны статьи я написал в КиТ №11 за 14 год. Они нужны не для того, чтобы все знали о том как писать программы для... А для того, чтобы получать приличную зарплату.

Упс, интересно как мне повысят зарплату за статьи?
Но прочесть не получится: "Статьи последних номеров доступны только в печатном варианте. Вы можете приобрести свежие номера журнала «Компоненты и технологии» в свободной продаже или заказать в редакции. Извините за доставленные неудобства."
Go to the top of the page
 
+Quote Post
Укушенный воблой
сообщение Jan 6 2017, 13:45
Сообщение #69


Частый гость
**

Группа: Участник
Сообщений: 197
Регистрация: 8-07-16
Пользователь №: 92 484



Цитата(ViKo @ Jan 6 2017, 13:47) *
Универсальных решений не бывает. Я показал один из примеров.

Я и сказал. "Очередной костыль", а не решение

Цитата(ViKo @ Jan 6 2017, 13:47) *
Условных выполнений у меня хватает, но я не вижу это проблемой.

"А слона-то он и не заметил"©
Т.е. ФУНДАМЕНТАЛЬНУЮ проблему программирования Вы просто не заметили.
вы молодец.

Цитата(ViKo @ Jan 6 2017, 13:47) *
Вопрос выбора есть всегда, иначе и программировать ничего не придется. То, что вы называете фундаментальной проблемой, на самом деле - реальность мироздания. "Щелкни кобылу в нос..." (с)

На самом деле есть методы которые сокращают число IF-ов в программе, которые программист ЛИЧНО, "ручками" должен написать.
Взять к примеру повяление ЯВУ в коце 40-х годов прошлого века.
Если посмотреть число IF-ов в СИ программе и сгенерированном из неё машинном коде, то можно заметить, что число IF-ов при переходе от разработки программы в машинных кодах к разработке на ЯВУ число IF-ов сократилось как минимум на порядок.
За счет чего?
За счет того.
Что компилятор БОЛЬШИНСТВО IF-ов генерит автоматически освобождая от этой тупой работы программиста.

Т.е. чем выше уровень языка - тем меньше IF-ов нужно писать программисту для решения одной и той же достаточно сложной задачи.



Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 6 2017, 14:31
Сообщение #70


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(aiwa @ Jan 6 2017, 15:02) *
Недостатки лишь в издержках на вызов функций.

Для этого функции инлайнятся, и/или макросы использовать. Причем макросы использовать по любому очень широко заменяя ими даже одиночные строчки и давая им осмысленные названия. Размеры switch уменьшаются, читабельность увеличивается. Из самого switch естественным образом выделяется большая функция изменения состояния автомата. В этой функции и отладка и все необходимые действия и установки по переходу В определенное состояние автомата. Количество обозреваемых строк уменьшается и увеличивается глобальная читабельность.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
syoma
сообщение Jan 6 2017, 14:57
Сообщение #71


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Цитата(AlexandrY @ Jan 6 2017, 12:25) *
EtherCAT это и есть коммуникация. А "I/O менеджер" это, как понимаю, у вас простой маппер.
Все надо называть своими словами.
Не, без сорсов вы только зря тратите время на объяснения.

AlexandrY, сорцы высокопроизводительной системы с EtherCAT, VxWorks и прочими плюшками я выкладывать не собираюсь, так как это ни как ни опенсоурс. Только могу сказать, что это работает, хотите верьте, хотите нет.
EtherCAT отличается от остальных коммуникаций тем, что работает в real-time, поэтому он и часть I/O Менеджера, и не входит в менеджер коммуникаций. Ему также выделяется отдельный Ethernet порт, в то время как менеджер коммуникаций может реализовать различные протоколы на одном и том же порте. Раньше мы вместо EtherCAT использовали Profibus.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jan 6 2017, 15:15
Сообщение #72


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(HardEgor @ Jan 6 2017, 16:35) *
Упс, интересно как мне повысят зарплату за статьи?
Но прочесть не получится: "Статьи последних номеров доступны только в печатном варианте. Вы можете приобрести свежие номера журнала «Компоненты и технологии» в свободной продаже или заказать в редакции. Извините за доставленные неудобства."

Так за 2014 год же доступно все... И там все написано...
Или могу по скайпу перебросить...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 6 2017, 15:31
Сообщение #73


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(haker_fox @ Jan 6 2017, 16:04) *
Я думал, может в kinetis что-то "сбоку" прикрутили, дополнительно. А вы MPU используете "сами" или в составе тойже FreeRTOS?
"сами"

Цитата(haker_fox @ Jan 6 2017, 16:04) *
В M0 нету laughing.gif
Значит от M3 и выше.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 7 2017, 19:05
Сообщение #74


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(syoma @ Jan 6 2017, 16:57) *
AlexandrY, сорцы высокопроизводительной системы с EtherCAT, VxWorks и прочими плюшками я выкладывать не собираюсь,...


VxWorks есть в наших закромах, так что можете не выклывать раз такой жадный.

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

Но боюсь нет у вас никакого "менеджера", а есть набор функций и промежуточного софта, то что я назвал фреймворком.
VxWorks вы уже назвали, там есть и файловая и TCP стек и USB и проч. Стоит это добро дикие деньги.

Так что ваша "архитектура" совершенно не вписывается в контекст темы
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jan 7 2017, 19:37
Сообщение #75


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(Буратино @ Jan 6 2017, 07:38) *
Я с вариантами разберусь,

вы уж разберитесь сначала

Цитата(Буратино @ Jan 6 2017, 07:38) *
а вы пож. не постите ерунду больше.

ерунда == писать под восьмибитники
Go to the top of the page
 
+Quote Post

27 страниц V  « < 3 4 5 6 7 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 20:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.0152 секунд с 7
ELECTRONIX ©2004-2016