-
- у меня фриртос. есть модуль клавиатуры, который генерит коды(аналог клавы ПС) есть обработчик кодов, есть модуль индикации. Все режимы запускаются в обработчике кодов. Каждый режим сам может принимать коды от клавиатуры, при этом обработчик кодов ждет возврата из режима. - abivan(Сегодня, 15:24)
- Могу только догадываться, что каждый режим - это список какой-то функциональности. =AlexD=(135 знак., Сегодня, 14:45)
- Зачем мешаете ортогональные понятия в одну кучу, теплое с мягким? Хотите в каждом модуле режима 1, 2 и т.д. писать модули индикатора, клавиатуры и прочее? Чтобы файлов было меньше? Ну да, их станет меньше :-) il-2(243 знак., Сегодня, 13:46)
- Такие разговоры хорошо вести с ИИ. Уж в этих делах он не одну
собаку съел, а тысячу, если не миллион. - SciFi(Сегодня, 12:49)
- Всё хорошо он пишет, всё правильно. Но счастия не добавляет. Нет такого решения, чтобы раз, и всё. Ну что ж, будем прозябать и далее. - mr-x(Сегодня, 13:47)
- Не доверяю я теперь железному болвану. Уж сколько раз меня обманывал. Тем более не хочется обсуждать с ним представление о прекрасном. Но попробую. - mr-x(Сегодня, 13:20)
- Нарисовать функциональный граф с временами реакций, взаимодействием, потоками данных в разных режимах, если сильно отличаются. Затем делить сложность до уровня, чтоб удобнее разбираться в отдельных файлах. - jlm(Сегодня, 12:49)
- (совершенно не претендую на истину). У меня как раз все эти работы и события, и режимы. В бесконечном цикле идут функции - что там нажали, не поменять ли индикацию, не прислали что-то по UART, не сменился ли режим отпуска топлива и проч. Внутри функций - по режимам. Может не надо выводить индикацию по отпущенному топливу, если клиент в режиме настройки? Ну и т.д. - Лaгyнoв(Сегодня, 12:31)
- Я конечно не программист, но я бы кое-что совместил: в HAL вынести
общую логику работы "железа", а остальное поделить на независимые
функциональные модули, которые можно отлаживать по-отдельности друг
от друга. - reZident(Сегодня, 11:20)
- Про низкий уровень понятно. Для примера клавиатура. Есть отдельный
модуль, который обрабатывает кнопки и родит флаги событий, это
низкий уровень. В разных режимах кнопки работают по разному,
поэтому можно обработку кнопок уровнем повыше вынести в модуль
клавиатуры для всех режимов, или растолкать функции работы с
клавиатурой по модулям режимов. Вот в чём вопрос. - mr-x(Сегодня, 11:26)
- Много кнопок в устройстве? Если объединять, то возможно придется
зарядить полный функционал: устранение дребезга, нажатие, отжатие,
длительность нажатия, сочетание нажатий, e.t.c. Зато все в одном
месте и все можно отладить чохом. - reZident(Сегодня, 12:41)
- Кнопок 8 штук. Дребезг, нажатие, длительные нажатия, автоповтор,
задержка автоповтора - в отдельном модуле. Там всё хорошо написано
и хорошо работает. Дело в том, что если растащить обработку событий
от клавиатуры по модулям режимов, то схожий клавиатурный функционал
будет растащен по куче мест в программе, что противно. А если
затолкать всё клавиатурное в одно место, то там вроде всё красиво,
но тогда специфика режимов размазана по программе. Всё работает, но
как-то неловко. mr-x(64 знак., Сегодня, 13:14)
- "Работает? Не трожь!" (с) любой админ :-) - reZident(Сегодня, 13:23)
- Кнопок 8 штук. Дребезг, нажатие, длительные нажатия, автоповтор,
задержка автоповтора - в отдельном модуле. Там всё хорошо написано
и хорошо работает. Дело в том, что если растащить обработку событий
от клавиатуры по модулям режимов, то схожий клавиатурный функционал
будет растащен по куче мест в программе, что противно. А если
затолкать всё клавиатурное в одно место, то там вроде всё красиво,
но тогда специфика режимов размазана по программе. Всё работает, но
как-то неловко. mr-x(64 знак., Сегодня, 13:14)
- у меня по кнопкам. А внутри обработки кнопки - разные действия по
режимам - Лaгyнoв(Сегодня, 12:36)
- Понятно, спасибо. - mr-x(Сегодня, 12:47)
- Разбивайте по рабочим режимам. Которые будут пользовать ваши
ресурсы(клавиши, индикатор, АЦП итыды). - mse homjak(Сегодня, 12:00)
- Спасибо. - mr-x(Сегодня, 12:47)
- Много кнопок в устройстве? Если объединять, то возможно придется
зарядить полный функционал: устранение дребезга, нажатие, отжатие,
длительность нажатия, сочетание нажатий, e.t.c. Зато все в одном
месте и все можно отладить чохом. - reZident(Сегодня, 12:41)
- Про низкий уровень понятно. Для примера клавиатура. Есть отдельный
модуль, который обрабатывает кнопки и родит флаги событий, это
низкий уровень. В разных режимах кнопки работают по разному,
поэтому можно обработку кнопок уровнем повыше вынести в модуль
клавиатуры для всех режимов, или растолкать функции работы с
клавиатурой по модулям режимов. Вот в чём вопрос. - mr-x(Сегодня, 11:26)