В общем, сегодня у нас было внутрикорпоративное событие, где народ хвастался достижениями. Грубо говоря, этакий all-hands meeting по поводу релиза внутренней платформы для разработки, и разные команды хвастались, где и чего они достигли.
Ну что я могу сказать: после пары лет работы в Samsung я навсегда перешёл на айфоны. А после вот этого, Я БОЛЬШЕ НИКОГДА И НИ ЗА ЧТО НЕ СЯДУ В ЛЕКСУС!
Там просто ААААААААА!
Если не нарушать NDA, то, грубо говоря, я думал, что в автомобилестроении MISRA, AUTOSAR, CI/CD с параноидальными конфигами уймы анализаторов, расстрел из пулемёта за неинициализированную переменную. А здесь — нуууу, довольно ответственная разработка софта. Просто разработка, просто софта. С обычным легаси, с костылями, с хард-кодом, с кривыми BSP, требующими хаков в компиляторе. Ну то есть буквально та работа, к которой я привык, но НЕ В МАШИНЕ ЖЕ!
В общем, я был максимально прав, что всю жизнь считал, что в машине из электроники достаточно инжектора. Ну если очень хочется, то можно ещё ABS, но не более.
А теперь вот я увидел изнутри, как работает современное авто, и это, сука, вызывает у меня ужас и дрожь по всему телу.
Знаете, как открывается окно в современных премиальных автомобилях? А я вам расскажу!
Кнопка на двери, которая опускает стекло — нифига не кнопка, а энкодер, и прямо в двери установлен микроконтроллер, который считывает её состояние, и отправляет в CAN. CAN подключен к специальному грубо говоря хабу, который работает на линуксе (да, для «вторичных» штук там просто линукс), пакет идёт через обычный iptables, проверяется на то, что его отправил тот, кому можно, и откуда можно, и маршрутизируется в настоящую голову на QNX, там оно ещё раз идёт через файрволл (на этоти раз pf, который Blackberry портировал с OpenBSD ещё во времена оны), потом проверяется ещё набором правил, и если всё в порядке, то отправляется обратно с линуксовую маршрутизировалку, по направлению к стеклоподъёмнику. там оно проходит первую мааршрутизацию, закидывается во «вторичную» CAN-сеть, там ещё раз маршрутизируется в дверь, и в двери ЕЩЁ ОДИН контроллер принимает сигнал, и начинает драйвером мотора тащить вам стекло.
Само собой, на каждом этапе машина может запретить или поменять команду, скажем, сама закрыть окна на парковке, или запретить их открывать на каком-нибудь шоссе. Да, машина теперь постоянно на связи с материнским кораблём и получает оттуда команды, а сама отправляет туда статистику, скажем, по парковочным местам, которые видит бортовыми камерами и радарами.
А знаете, зачем она это делает? Потому что современному лексусу можно просто голосом сказать «Припаркуйся возле офиса», и он будет ехать по улице, вокруг твоего офиса, пока не найдёт подходящее место, а потом припаркуется туда. И если ты по пути заметишь более интересное место, можно просто сказать «Нет, припаркуйся туда», и показать рукой, куда. И ОН ПРИПАРКУЕТСЯ!
И мне сегодня показали на реальном автомобиле, что это реально работает.
Короче, дамы и господа, я готов объявлять Батлерианский Джихад. А мой следующий автомобиль будет как на приложенном видео.
@rayslava Тупой вопрос. А сделать кнопочку, которая двигает моторчик, никак? А всю «умь» прикрутить к этому переключателю? Ну типа знаете, как есть в умных домах моторчики, которые двигают обычный тупой выключатель, если сказать «Алекса, включи свет», но при этом у вас есть бэкап? Как-то всё это капец несекьюрно.