Монолитный вариант: единый репозиторий, единая точка входа - дальше при необходимостии код разделяется в некоторых местах на уровне директив препроцессора и раздельных файлов конкретных имплементаций различающихся вещей. Проблема: я принципиально хочу писать в рамках chibios, из которой при желании естественно можно получить любой прямо доступ к оборудованию. Самые высокие затраты на первоначальную интеграцию, потенциально максимальная выгода от полной унификации сорцов.
Промежуточный вариант: индивидуальные проекты с индивидуальными точками входа в исходники, но соглашение о едином API каких-то подсистем - чтоб конкретные реализации алгоритмов можно было разделять простым полным копированием файла. Меньшие затраты на первоначальную интеграцию, но повыщенные постоянные затраты на поддержание универсального API для различных систем.
Разные проекты всё равно выигрывают.
Несвязанный вариант: никакого совместного кода.
У кого какие мысли?
Отдельный вопрос - разные мнения о следующем шаге. Моё личное мнение - следующим шагом для меня будет отладка алгоритма поддержания холостого хода, но в принципе у меня тут достаточно гибкая позиция. Я просто хотел бы хоть как-то начать на машинке ездить на работу
![Smile :)](./images/smilies/icon_e_smile.gif)
Update: как верно товарищи заметили, где-то в одном месте должно быть озвучено видение проекта. Напишу своё видение тезисно, попробую тезисы отсортировать по порядку важности.
0) в коде системы мне важна читаемость и расширяемость. хотелось бы остаться невинной незабудкой, которую всегда можно будет относительно перенести на следующее поколения железа, плюс не хотелось бы никакое архитектурное решение делать незыблемой догмой. Хотелось бы код оставлять достаточно модифицируемым на случай поворота линии партии.
1) практичный подход к планировани: текущая цель - построить базовый фундамент функционала, на базе которого был бы в будущем возможен этам приближения к счастью. Например, для начала нужна система возможно с пониженной степенью электрической защиты, но работающая при правильном подключении устройств. Текущая цель - проехать от пунка А в пункт Б, не заглохнув и не стукнув мотор. Можно испускать клубы дыма.
2) по факту, целевая аудитория проекта - нестандартные конфигурации двигателей, не обслуживаемые стандартными блоками управления. Обычно это что-то в сторону автоспорта. Следствия из этого: акцент на двигателях из 90ых и нулевых просто из-за цены, экология не на первом месте.
Текущая фаза проекта - фаза 0:
1) мягкое ограничение - четырёх цилиндровые поршневые бензиновые нетурбированные двигатели
2) целевая точость: 1 угловой градус до 8000 оборотов (сократим до "1@8000")
3) минимальный полный функционал: запуск, управление топливом и зажиганием, бензонасом. Вероятно, управление холостым ходом. Видимо, без явного управления прогревом.
4) цель - проехать в этой конфигурации из точки А в точку Б полностью отключив стандартный блок управления
Вещи, которые будут ждать следующих фаз:
1) свой контроллер широкополосного датчика кислорода
2) турбо нюансы
3) точность выше 1@8000