Люди: — Эй, Тойота, мы тут посчитали, у вас из-за корявой электроники и софта 89 человек погибло с 2000 по 2010.
Тойота: — Да они сами виноваты, путают педали.
Люди: — Хьюстон, у нас проблемы.
NASA: — Ща разберемся, нам надо 10 месяцев и 3 миллиона долларов.
Люди: — На.
Тойота: — 3 миллиона мало, вот вам еще сверху кэшем.
(прошло 10 месяцев)
NASA: — Эй, Тойота, мы у вас пару ошибок в коде нашли, а точнее 7134 нарушения стандартов MISRA, рекурсию, функцию на 740 строк и 9000 глобальных переменных.
Тойота: — А у нас свои стандарты. А вы ваще на Луну летали?
NASA (публично): — Тойота ни в чем не виновата.
(Акции Тойота подскочили на 4,6%)
Люди: — Ну ё-моё.
(спустя 3 года)
Два американских тестировщика (у которых дедушки погибли в Перл-Харбор): — Нет багов? А если найдем?


Национальное управление безопасностью движения на трассах США (NHTSA) подсчитало, что с 2000 года по 2010 год в авариях погибло 89 человек и 57 получили увечья, в связи с неисправностями электроники.

Toyota отрицает вину электроники и считает, на основе собственного расследования, что виновата «залипающая» педаль газа и плохо подогнанные коврики, но отзывает 8,5 млн автомобилей по всему миру.

Жалобы продолжают поступать.

Осторожнее слабонервным

NHTSA начинают собственное расследование, привлекают на помощь NASA.

В ходе десятимесячного расследования спецы NASA выявили, что софт не соответствует стандартам MISRA (Motor Industry Software Reliability Association) и содержит 7134 нарушения. Toyota ответили, что у них свои собственные стандарты.

20 декабря 2010 года Тойота отвергает все обвинения, но выплачивает 16 миллиардов долларов в досудебном порядке по искам и выпускает апдейт софта для некоторых моделей машин и отзывает 5,5 миллиона автомобилей.

После объявления результатов исследования NASA акции Toyota на токийской бирже выросли на 4,6%.

В 2013 году в суд Оклахомы подается иск об аварии 2007 года, в которую попали две девушки на Toyota Camry 2005 года выпуска. Одна из них скончалась, другая провела пять месяцев в больнице с травмами спины и головы. Toyota не признала своей вины. Они заявили, что причиной аварии послужило то, что водитель перепутала педали газа и тормоза, а, когда поняла свою ошибку и начала тормозить, — было уже слишком поздно.


К делу подключаются два инженера: Майкл Барр и Филипп Купман. На 20 месяцев разбирать 280 000 строчек кода, писать отчет на 800 страниц. Каждый.

Адрес был засекречен. Номер отеля, в котором работали инженеры, круглосуточно охранялся — охрана следила, чтобы никто не вносил и не выносил никаких бумаг. Все телефоны и интернет были отключены.

Тойота отзывала более 10 миллионов автомобилей по всему миру. Вину так и не признали.


По словам Майкла Барра, их отчет засекретили. Так же засекретили условия контракта, на условиях которого им предоставили исходный код Тойоты. Но Барр рекомендует погуглить транскрипт материалов слушания.


Вот в таких условиях работали аналитики:



И вот такой отчет написали:



Как искали и что нашли


Главный подопытный — система электронного управления дроссельной заслонкой (ETCS).




Специалисты NASA сканировали микросхемы рентгеном.


В качестве причин ошибок рассматриваются даже космические лучи.

И код на С чекала:



И тут очередь дошла до кода.

Нарушения стандартов MISRA (и NASA)


По прикидкам, на каждые 30 нарушений стандартов MISRA приводят к одному «серьезному багу».
  • В MISRA-C:1998 перечислено 127 правил (93 обязательных и 34 рекомендательных).
  • В MISRA-C:2004 141 правило (121 обязательное и 20 рекомендательных). Правила разделены на 21 категорию.
  • В MISRA-C:2012 143 правила (каждое из которых может быть проверено статическим анализатором кода) и 16 директив (правил, соответствие которым открыто для интерпретаций или связано с процессами и процедурами). Правила делятся на обязательные, требуемые и рекомендательные; могут распространятся на отдельные единицы трансляции или на всю систему. Также правила разделены на Decidable и Undecidable.


Тойота в свои стандарты позаимствовало только 11 правил MISRA.





Инструменты анализа NASA могли проверить 35 правил MISRA и 14 из них были нарушены.


[Источник — Отчет NASA, приложение А: Software, стр 28]

Итого: 7134 нарушения (по подсчетам NASA) или 81 514 (по подсчетам Майкла Барра).

10 правил NASA
Статья на Хабре — «10 правил, которые позволяют NASA писать миллионы строк кода с минимальными ошибками»
The Power of Ten - 10 Rules for Writing Safety Critical Code
  1. Restrict to simple control flow constructs.
  2. Give all loops a fixed upper-bound.
  3. Do not use dynamic memory allocation after initialization.
  4. Limit functions to no more than 60 lines of text.
  5. Use minimally two assertions per function on average.
  6. Declare data objects at the smallest possible level of scope.
  7. Check the return value of non-void functions, and check the validity of function parameters.
  8. Limit the use of the preprocessor to file inclusion and simple macros.
  9. Limit the use of pointers. Use no more than two levels of dereferencing per expression.
  10. Compile with all warnings enabled, and use one or more source code analyzers.

[Источник — spinroot.com/p10]



Длина функции ограничивается 60-75 строчками кода, после удаления пустых строк и комментов. Более 200 функций в коде Camry05 превосходили заданную длину. Одна из функций была на 740 строк.

Переменные


31 имя было объявлено несколько раз в различных областях (in different scopes). Самое частое имя — sts_flags1, которая появлялось в 57 различных областях




А вот это стоит показать покрупнее.





Запутанность кода



Граф управления потоком простой программы.

Цикломатическая сложность программы выше 50 — показатель, что программа не поддается тестированию.



У Тойоты в ETCS-коде:
  • 67 функций со сложностью over 50
  • Сложность Throttle angle function = 146; 1300 строк кода, без плана для unit test


Рекурсия



В коде Тойоты использовалась рекурсия, и каждая проблема с ней приводила к перезагрузке процессора (CPU reset).

Ну и что?


Количество говнокода, от которого зависит жизнь людей, растет. Пример с Тойотой показывает, что разработчики систем могут косячить и на элементарном уровне, не говоря уже на уровне принятия этических решений ИИ. Но основная беда не в том, что ошибки есть, а в том, что заинтересованные стороны препятствуют их поиску и исправлению. И эти стороны обладают достаточной мощью, чтобы надавить на NASA.



«Программирование сегодня — это гонка, в которой соревнуются разработчики, стремящиеся построить большие и обладающие защитой от дурака программы, и вселенная, порождающая всё больших и качественных дураков. На данный момент вселенная побеждает.»
— Рич Кук, писатель-фантаст



СМИ




Отчеты по расследованию


Красочная презентация Филиппа Купмана:


NASA Report on Toyota Unintended Acceleration Investigation
NASA Executive Summary
NASA Full Report


NHTSA Report on Toyota Unintended Acceleration Investigation




P.S.


За 4 года до


Куда ни приеду, моя работа заключается в применении одной простой формулы. Я храню тайны.

Это элементарная арифметика.

Задача из учебника.

Если автомобиль новой модели, изготовленный моей компанией, выехал из Чикаго на запад со скоростью 60 миль в час, — и заклинивает задний мост, машина разбивается и сгорает со всеми, кто попался в ловушку ее салона, — стоит ли моей компании возвращать модель на доработку?

Берем общее количество выпущенных машин данной модели (A), умножаем на вероятное количество машин с неисправностью (B), потом умножаем результат на среднюю стоимость решения вопроса без суда (С). A умножить на B умножить на C. Равняется X. Столько стоит не возвратить модель на доработку.

Если X больше стоимости возврата — мы возвращаем машины, и никто больше не пострадает.

Если X — меньше стоимости возврата — возврата не будет.

— Чак Паланик «Бойцовский клуб», 1996 год.

— И часто бывают такие аварии?
— Вы даже не представляете.
— А в какой компании вы работаете?
— В очень крупной.
— к\ф «Бойцовский клуб», 1999 год.
Поделиться с друзьями
-->

Комментарии (254)


  1. Interfere
    29.09.2016 10:33
    -7

    Говорите, при цикломатической сложности выше 50 программа не поддается тестированию? Надо бы сказать нашим QA.


    1. Tdr
      29.09.2016 10:54
      +10

      Имеется ввиду юнит-тестирование. Скажите об этом своим разработчикам.
      Технически, это можно оттестировать, но код юнит-тестов будет ооочень длинный, а значит, может содержать свои ошибки.


    1. MagisterLudi
      29.09.2016 10:56
      +8


  1. dymanoid
    29.09.2016 10:38
    +6

    По работе ковыряюсь иногда в официальных сорцах драйверов для embedded железяк, применяемых в том числе и как авто-компоненты. Но не в шасси, а как мультимедиа и инфотейнмент. Поставщик — серьёзная компания, один из крупнейших игроков на рынке. Так вот, там — тихий ужас. Такое впечатление, что код не только не проверялся статически, но и не тестился вообще…


    1. nerudo
      29.09.2016 11:06
      +6

      Это общая беда embedded-приложений. Проблема в том, что составить полноценную модель взаимодействия с железякой крайне сложно. Ну а многие производители добавляют радости, создавая даташиты с ошибками и умолчаниями, так что действовать зачастую приходится «методом тыка». Плюс культура самих разработчиков ниже — они больше «железячники», чем программисты.


      1. mikelavr
        29.09.2016 12:40
        +1

        С последним вынужден согласиться. Но только по той простой причине, что у нас минимум половина рабочего времени тратится на железо.


    1. MacIn
      29.09.2016 17:50
      +10

      Ничего удивительного. По моим наблюдениям, многие «железячники» (одиночки) считают, что производство устройства — это искусство, подвластное избранным, а вот написать к нему код он сможет сам, так, на коленке. Это ж вообще мелочь. Получается работающий тихий ужас. Они очень обижаются, когда им на пальцах объясняют, почему их код дурно пахнет, потому что… ну… они ж железку сделали, че тут, программа какая-то.


    1. vershov
      04.10.2016 23:01

      Не надо подходы из инфотейнмента проецировать на царство autosar: там все по-другому ))


  1. vitaly_KF
    29.09.2016 10:43
    -3

    Что там можно было так наговнокодить то? Там же, если я правильно понимаю инжекторная электронника — считал показания датчиков, рассчитал параметры подачи смеси… Ну abs, ну srs, ну… да хоть что угодно, там же нет никакого ИИ, только какие-то базовые алгоритмы + набор обязательных/рекомендательных правил. Бред какой-то… =)


    1. WildRat
      29.09.2016 15:33

      В новых авто (поколения drive by vire) вы не напрямую управляете дроссельной заслонкой, а только подаёте сигнал с датчика педали, а «компьютер» сам решает как и когда на этот запрос реагировать. Тоесть будет ли считан сигнал с датчика, будет ли он правильным и какой будет результат — зависит от программы и ошибок в ней.


      1. vitaly_KF
        29.09.2016 19:13
        +4

        Я это понимаю. В том и дело — задача компьютера — считать показания со всех датчиков, в данном случае и педаль тоже датчик и скорость движения и перегрузки и все что угодно — все датчики. Надо лишь рассчитать правильно все параметры для дальнейшего движения… Но… 81 514 ошибок в коде, Крал! Да код компьютера управлявшего полетом Апполона наверное меньше чем этот тойотовский изврат.


        1. georgevp
          30.09.2016 10:10
          +1

          Компьютер, установленный на лунном корабле, имел оперативную память всего около 4 Кбайт (ферритовое ОЗУ на 2048 15 битных слов), ферритовое ПЗУ на 36 864 15 битных слов, состоял из 5000 микросхем, весил 30 кг и стоил 150 тысяч долларов… Но даже маломощный компьютер способен на многое — если не загружать его навороченными пользовательскими интерфейсами. Панель управления компьютером содержала всего 19 клавиш и несколько сигнальных транспарантов и цифровых индикаторов. Поэтому компьютер занимался только прямыми обязанностями, не отвлекаясь на рисование «окон» на экране. И благодаря этому он мог осуществлять управление лунным кораблём в реальном времени. На компьютере могло выполняться параллельно несколько задач, причём управляющая программа учитывала их приоритеты: более важные задачи, такие, как управление кораблём, выполнялись в первую очередь, а, например, выдача информации на индикаторы могла и подождать десяток другой миллисекунд. Сложные расчёты траекторий, требующие большого объёма вычислений, были проделаны на мощных компьютерах на Земле заранее, ещё до полёта, и их результаты были загружены в бортовой компьютер, который «пользовался готовыми ответами (http://www.studfiles.ru/preview/5239420/page:59/)


          1. FForth
            30.09.2016 15:29

            Чужие: странная архитектура инопланетных компьютеров.
            http://www.ferra.ru/ru/techlife/review/philae-computer/


    1. vitaly_KF
      29.09.2016 19:14
      -5

      А вот я если бы минусанул — написал бы почему. Молчуны-минусовщики, чего стесняемся?))


      1. jehy
        03.10.2016 19:02
        +2

        Минус не ставил, но поясню. Это обывательский комментарий без погружения в проблему, который очень сильно огорчает. Примерный аналог «ну что могло не так пойти с ракетой Маска? Просто взлетел и сел обратно. Причем туда же, откуда взлетел! Чего проще? Считал показания датчиков, рассчитал смеси и всё...»


    1. sergey_nick
      30.09.2016 10:11

      Вот оно, направление мыслей разработчиков…


  1. Ryav
    29.09.2016 10:55

    Если дело в коде ETCS, то в чём именно? Разве нельзя жёстко привязать управление дросселем, основываясь на глубине нажатаия педали газа? Иначе говоря, без измений показаний датчика нажатия педали не производить отклонения дросселя от начального. В этом случае проблема будет заключаться только в аппаратной части, а именно в неисправности датчика. Или же в приводе заслонки. Так что претензии к разработчикам мне неясны.


    1. Tdr
      29.09.2016 11:06
      +1

      Прямой связи между силой нажатия и углом отклонения нет, так как подобное поведение будет приводить к неэффективной работе двигателя. Учитывается при этом и текущий режим работы — скорость, обороты, состав смеси и т.д. Лучше загуглить, я не профи в этом :)


      1. Ryav
        29.09.2016 11:13

        Это понятно, но почему невозможно прописать жёсткое условие, что любое отклонение недопустимо, если не было изменений по силе нажатия на педаль?


        1. mikelavr
          29.09.2016 11:17

          Потому что внешние условия меняются. Пример. Вы «мгновенно» нажали на педаль до упора и держите. Положение педали не изменяется. Двигатель начал раскручиваться, автомат начал переключение передач. В процессе разгона параметры подачи воздуха и топлива будут изменяться!


          1. Ryav
            29.09.2016 11:28

            В посте речь идёт о том, что 2 девушки разбились на автомобиле из-за того, что автомобиль начал самопроизвольно разгоняться (вместо желаемого торможения). То есть если воздействие на педаль было, то поведение машины верное, если же воздействия на педаль не было, то почему не отселки это жёстким условием в программе?


            1. mikelavr
              29.09.2016 11:39

              Любопытно, что в любой машине с АКПП педаль тормоза сильнее педали газа.
              Например для АКПП есть понятие STALL TEST: удерживая машину педалью тормоза, нажать педаль газа до упора, и считать показания тахометра. Это штатный тест, при котором машина стоит на месте. Вопрос — почему девушка не нажала на тормоз до упора?

              Если же машина с МКПП — то выключить сцепление, и тяга исчезнет.

              То есть водитель на исправной машине в принципе может предотвратить разгон. Тем не менее такие аварии происходят.


              1. yshurik
                29.09.2016 12:32

                Большая мощность тормоза чем двигателя при любых условиях работы двигателя это стандарт безопасности которому должны следовать все автопроизводители.

                Особенность гибридной Тойоты в том что в трасмиссии совместно с двигателем еще включен через планетарную передачу и электродвигатель/генератор.

                Соответственно электродвигатель может добавлять мощности вместо того чтобы крутить двигатель на очень неэфективных режимах (вот в этом и экономичность) или наоборот заряжать батарею отбирая мощность от двигателя.

                Тут есть один момент:

                Формально Тойота сделал все правильно по стандарту если реализовала большую мощность тормоза чем двигателя.

                Но если они не реализовали большую мощность тормоза чем двигатель+электродвигатель, то тогда ошибка в софте которая приведет к работе в режиме максимальной мощности и двигателя и электродвигателя приведет к тому что вы даже не сможете остановить машину тормозом и с большой вероятностью попадете в аварию.


                1. mikelavr
                  29.09.2016 12:39

                  В конце концов, почему бы не нажать на кнопку «Engine off» или выключить замок зажигания?
                  Ну пусть при этом заблокируется рулевая колонка, но по крайней мере разгона не будет.


                  1. yshurik
                    29.09.2016 12:44

                    В тойотах кнопка, но кнопка скорее всего «програмная» а не такая что отключает питание всех систем автомобиля. В современном автомобиле остается еще много систем все еще подключеных к питанию даже с «engine off». Так что опять если ошибка в коде и кнопка…


                    1. mikelavr
                      29.09.2016 12:51

                      Кстати, многие автопроизводители (в Европе — в особенности) делают машины с кнопкой старт-стоп по схеме «добавим кнопку и еще один контроллер с силовыми реле для управления замком зажиания».


                  1. Stas911
                    29.09.2016 21:21
                    +1

                    Двигатель нельзя глушить, т.к. отключится и гидроусилитель руля. У меня на старой Рено однажды из-за проблем с электрикой двигатель на ходу заглох, так я едва не протаранил авто, когда нужно было поворачивать, а усилитель отключился неожиданно (благо скорость была 5 кмч во дворе)


                    1. NikitosZs
                      01.10.2016 02:40

                      Эм… ГУР? Серьёзно вот это? Пишут, что при отключении ГУРа рулить чуть сложнее, чем на машине без ГУРа, ведь привод то всё равно есть.
                      Лично я бы больше волновался за усилитель тормоза.


                      1. Meklon
                        01.10.2016 10:34

                        У меня вообще усилителя нет. Нормально. Видимо, тут проблема в нарушениях рефлексов. Резко изменяется отзывчивость. Рулить можно спокойно, но времени привыкнуть нет.


                        1. MacIn
                          01.10.2016 13:51

                          Это не одно и то же. На машине с ГУР при отключении оного рулить намного тяжелее, чем в машине без ГУР. Даже если взять примерно одинаковые комплектации, но с ГУР и без него. Под усилитель руля ставят редуктор с уменьшенным передаточным отношением.


                      1. MacIn
                        01.10.2016 13:53

                        Вопрос времени. С ГУР ты можешь рулить одним пальцем, без него надо прикладывать усилие, девушкам может даже двумя руками. Пока вспомнишь, как рулить с перехватами — здравствуй, столб.


                      1. Muzzy0
                        05.10.2016 15:37

                        На заборе много чего пишут. У меня есть, с чем сравнить. Когда-то ездил на машине без усилителя руля и тормозов (ВАЗ-21011). Руль на скорости достаточно лёгкий, но на месте… Тормоза тоже значительно тяжелее.
                        Опять же, это очень легко проверить, если покрутить руль у заглушенной машины на месте от упора до упора: крутить придётся двумя руками и прикладывать ощутимое усилие. Тормозить — то же самое: давить со всей силы, вжимая филейные части в спинку сиденья.


                        1. MacIn
                          05.10.2016 15:44

                          Когда-то ездил на машине без усилителя руля и тормозов (ВАЗ-21011).

                          Опять же — это не то. При отключенном ГУРе рулить еще тяжелее, чем если его вовсе нет. Так же и с тормозами. Продавить ваккумник тяжелее, чем если его вовсе нет.


                          1. Muzzy0
                            05.10.2016 16:12

                            Отключенный ГУР крутил и вакуумник продавливал. Не принципиальное отличие :)
                            А вот для тех, кто всю жизнь ездит с ГУРом и ваккумником — старый жигуль будет луноходом просто :)


                            1. MacIn
                              05.10.2016 16:46

                              Не принципиальное отличие :)

                              Зависит от машины. На старом Мерседесе намного тяжелее руль крутится без ГУР чем на классике, хотя и там и там редуктор и разница по массе не так велика.


                    1. norguhtar
                      04.10.2016 11:40

                      Еще и усилитель тормозов :) Вакуумный тоже от двигателя работает.


                      1. MacIn
                        04.10.2016 13:10

                        Ну у него есть запас на 2-3 торможения после остановки двигателя.


                  1. jawaharlalnehru
                    29.09.2016 21:53

                    В моём Вольво, пока не переведёшь рычаг АКПП в режим парковки, кнопка выключения двигателя на нажатие не реагирует.


                    1. zBit
                      30.09.2016 09:43

                      То что на включение не реагирует — логично, но не могу уследить логику почему выключать нельзя…


                      1. jawaharlalnehru
                        30.09.2016 13:09

                        не знаю, но сегодня проверил ещё одну штуку: не обязательно вообще мотор выключать, на скорости АКПП запросто переводится в нейтралку, так что шансы есть.


                1. murzix
                  29.09.2016 12:48
                  +2

                  Еще есть ручник =) Он в критические моменты может быть полезен.


                  1. k102
                    29.09.2016 14:59

                    Не везде он механический, а электронный, насколько я знаю, не сработает во время движения быстрее чем какой-то порог (5км/ч или типа)


                    1. alprokof
                      29.09.2016 21:53

                      Возможно так не везде, но на VW если нажать электронный ручник и держать, он должен делать экстренное торможение.


                      1. zBit
                        30.09.2016 09:40

                        На некоторых VW с механикой есть такая кнопка и там она срабатывает всегда, даже держать не надо. Читал на форумах истории о том как на ходу при включенной передаче эту кнопку «случайно» нажимали :)
                        И если нажать эту кнопку, то делается не экстренное торможение, а просто блокируются задние колёса. Я на своей так на нейтралке катился со скоростью 20км/ч (на полигоне), нажал (решил посмотреть что будет), машина с визгом остановилась и было явно, что АБС не сработала. Есть возможность сделать экстренное торможение резким ударом по педали тормоза (впрочем как и у любого другого автомобиля с АБС), тогда и АБС срабатывает и аварийка включается сама.


                        1. WildRat
                          30.09.2016 12:45

                          Задние блокировались потому, что привод задний — это не так страшно. В переднеприводном (или полноприводном) автомобиле всё будет опаснее — заблокируются передние колёса и автомобить будет неуправляем.


                          1. zBit
                            30.09.2016 13:46

                            У меня как раз полноприводный, но на МКПП, там всё проще, если вдруг движок заглючит, то можно выключить его или сцепление выжать. Если сцепление заглючит, то можно без него на нейтралку переключиться, мы же не преследуем цель сохранить КП и движок в таких ситуациях. По идее можно и на скорости кнопку парковочного тормаза нажать, только потом, боюсь, КП на капиталку пойдёт :(
                            Так называемый «ручник» в любой машине блокирует задние колёса, это на сколько мне известно… Не знаю, может и есть автомобили у которых «ручник» блокирует передние колёса, но я такие не видел :)


                            1. WildRat
                              30.09.2016 15:08

                              Я подумал, что вы про кнопку отключения двигателя.


                              1. zBit
                                30.09.2016 15:20

                                Если двигатель на ходу заглушить на любой машине со включенной передачей, то будет торможение двигателем, двигатель не сможет заблокировать колёса, если только его не заклинит.
                                У меня, например, при включенном автохолде при заглушении двигателя (а так же если отстегнуть ремень безопасности или открыть водительскую дверь) автомобиль автоматически встаёт на парковочный тормаз, но если машина будет ехать (проверял) и заглушить двигатель, то парковочный тормаз не включится.


                    1. ArmorDarks
                      01.10.2016 04:03
                      +2

                      Многие авто способы ехать даже с ручником, причем на некоторых авто двигатель настолько мощный, что ручник что есть, что его нет. Я так однажды целый день проездил с ручником, и только вечером заметил, что ручник-то взведен до упора (в моем случае был механический ручник)...



                  1. strang3r
                    29.09.2016 15:34
                    +2

                    Ручник не сдержит разбушевавшийся движок. Бывали даже случаи что люди катались с ручником и удивлялись «а чо эта машина тупит?».


                    1. gorbln
                      29.09.2016 17:19

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

                      А по поводу «катались с ручником» — что значит «бывали случаи»? Подозреваю, что такое бывало у всех. У меня так каждую зиму, далеко не по разу. Колодки примерзают и привет. Узнаю, что задние колёса не крутятся, когда поворачивать начинаю, и зад уносит. Дабы скорости маленькие, беды не случается. =)


                      1. Muzzy0
                        05.10.2016 15:39

                        У меня за несколько лет колодки не примёрзли ни разу. Ручником пользовался постоянно.


                        1. MacIn
                          05.10.2016 15:44

                          Барабанные примерзают.


                          1. Muzzy0
                            05.10.2016 16:14

                            Именно барабаны ни разу не примёрзли. 5 лет, почти ежедневные поездки, ручник всегда и он реально держит.


                            1. MacIn
                              05.10.2016 16:47

                              У меня примерзали. Вы где живете — какой климат — континентальный? У меня приморский, часто температура через 0 гуляет. Соответственно, конденсат — частое явление и замораживание оного.


                              1. Muzzy0
                                06.10.2016 10:57

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

                                Собственно, я не вполне понимаю, как конденсат будет проникать между поверхностями колодки и барабана, если они плотно прижаты друг к другу. Вот если между ними есть зазор, то представить можно.

                                Вообще, в такие глубины вопроса я не вникал — просто ставил и всё. Кстати, у стояночного тормоза есть такая штука, как механизм автоматического подтягивания. Маленький такой храповичок. Как раз, для компенсации износа колодок. Может, потому ничего и не примерзало, что я ставил стояночный тормоз (у меня это был «ножник») после каждой поездки, соответственно, колодки были подтянуты и конденсат между колодкой и барабаном не попадал.


                                1. Nagh42
                                  06.10.2016 12:13

                                  Ларчик открывается просто, чаще примерзают не сами колодки (хотя это тоже имеет место, даже с дисковыми тормозами, но там обычно достаточно покачать вперед-назад и отрываются), а тросик ручника под оплетку которого попадает вода.


                                1. MacIn
                                  06.10.2016 19:58

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

                                  А он всегда есть. Усилие там не такое большое, как на гидравлике, да и поверхность трения может быть изношена, вплоть до борозд.

                                  Кстати, у стояночного тормоза есть такая штука, как механизм автоматического подтягивания. Маленький такой храповичок. Как раз, для компенсации износа колодок

                                  Это от машины зависит. На классике и Волге, например, есть специальные распорные кольца в тормозных цилиндрах, которые продвигаются вовне по мере износа колодок и не дают им отойти слишком далеко, там ничего регулировать не надо.


                              1. Muzzy0
                                06.10.2016 11:09

                                Вот, нашёл:
                                image
                                Обведённая красным деталь — это и есть храповый механизм, который разводит колодки по мере износа. Полезен ещё и тем, что зазор между барабаном и колодкой не увеличивается по мере износа, а значит, тормоза срабатывают на доли секунды быстрее. Чтоб колодки были подведены, надо просто постоянно пользоваться ручником.


                  1. Lyova5
                    29.09.2016 15:34

                    Там же скорее всего электронный ручник кнопкой с защитой от нажимания на скорости.


                  1. SuhoffGV
                    29.09.2016 15:34

                    Не 100% вариант. Был опыт езды на Ваз 99 по грунтовке после 2-х недельных дождей. Задние арки быстро забивались глиной вперемешку с соломой и колеса переставали крутиться. На скорость это ни влияло никак. Проблема была только тронутся если пришлось остановиться. Тогда приходилось чистить задние арки, трогаться и ехать дальше.


              1. varnav
                29.09.2016 13:48

                У АКПП тоже есть нейтраль, и это — соседнее с D положение!


                1. dimas
                  29.09.2016 18:26

                  А в него можно переводить на ходу? Например обычно в P и R на ходу переводить запрещено, и если переключатель электрический, его возможно проигнорируют…

                  Так и нейтраль могли «защитить от случайного выключения на ходу»…


                  1. MacIn
                    29.09.2016 18:44

                    P сломает коробку, потому что включает механическую блокировку выходного вала. Реверс тоже, потому что мост и движок будут пытаться «скрутить» коробку винтом. А нейтраль — нет. Но это у старых коробок, как с современными — не знаю.


                  1. varnav
                    29.09.2016 18:52

                    Насколько я понимаю, не только можно, и даже может быть нужно в ситуациях вроде описанной.


                    1. dimas
                      29.09.2016 18:54

                      Вопрос шаблонов поведения и стандартов безопасности…
                      Неожиданно может оказаться что из-за случайно включенной нейтрали будет больше вреда, чем от этих ошибок Тойоты…


                  1. varnav
                    29.09.2016 18:52

                    http://www.popularmechanics.com/cars/how-to/a7890/if-you-shift-an-automatic-while-driving-will-you-damage-your-engine-11413677/


                  1. braindamagedman
                    30.09.2016 10:00

                    На моем вариаторе (2007 г) можно, даже случайно рукой задев рычаг на ходу, переключить в N (даже не нужно кнопку жать на рычаге). Сразу размыкается связь коробка-двигатель (просто снимается давление с пакета фрикционов, насколько я понимаю). Ничего критичного для коробки не происходит.


                    1. dimas
                      30.09.2016 12:47

                      В данном случае критичность не для коробки, а для безопасности движения…


                      1. ArmorDarks
                        01.10.2016 04:11

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


                        1. dimas
                          01.10.2016 04:27

                          Ну, как минимум не рекомендуют обычно двигаться накатом в условиях плохого сцепления с дорогой.

                          Плюс, в случае необходимости быстро сманеврировать, будет дополнительная задержка на втыкание передачи…


                          1. ArmorDarks
                            01.10.2016 04:37

                            Суть в том, что переключение на нейтралку не приведет к каким-либо катастрофическим последствиям.


                            1. dimas
                              01.10.2016 18:19

                              Не всегда. Представьте что нейтралка случайно включилась в повороте, а дорога мокрая/скользкая… Я вот неуверен, что среднестатистический водитель не улетит…


                              1. MacIn
                                01.10.2016 19:11

                                Почему он должен улететь, если тяга стала меньше, снос, соответственно, тоже?


                                1. dimas
                                  01.10.2016 19:14

                                  Сбросьте на льду в повороте (только не на дорогах общего пользования) тягу на переднем приводе и посмотрите на поведение машины…


                                  1. MacIn
                                    01.10.2016 22:20

                                    А, ну на переднем да. Просто никогда не было переднеприводной, даже не задумывался в этом направлении.


                  1. ArmorDarks
                    01.10.2016 04:10

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


              1. tearexs
                29.09.2016 15:43
                +1

                То есть водитель на исправной машине в принципе может предотвратить разгон. Тем не менее такие аварии происходят.

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


              1. EviGL
                29.09.2016 21:53

                Тут надо учитывать, что необходимая мощность тормозов чтобы не дать машине тронуться меньше, чем мощность, необходимая чтобы её остановить во время разгона «газ в пол». Как минимум, торможение в пол в такой ситуации приведёт к неконтролируемому сносу автомобиля.
                Но, я так понимаю, по факту, хуже: у жертв говнокода тойоты, как написано в презентации в статье, интенсивное торможение вызвало перегрев тормозной системы, повреждение ротора тормозной системы, как следствие, торможение становится неэффективным и уже не может остановить машину.

                Правильное решение — сбросить коробку в N, я так понимаю, это можно сделать на всех автоматах. Но надо понимать, что счёт идёт на секунды, человек находится в состоянии глубокой паники, а есть много людей с водительскими правами, которые не ответят на этот вопрос даже в спокойном состоянии.


                1. MacIn
                  29.09.2016 22:16

                  повреждение ротора тормозной системы

                  Диски, друзья, тормозные диски.

                  как следствие, торможение становится неэффективным и уже не может остановить машину.

                  Нет. Перегревается диск, колодки и жидкость. Жидкость закипает. То, что диск от нагрева потом поведет винтом — дело десятое. На больших скоростях при резком торможении диски очень быстро накаляются докрасна.


              1. Nagh42
                29.09.2016 21:53

                Вполне разумное предположение. Я тоже считал, что выжав тормоз, можно остановить автомобиль даже с полностью открытой дроссельной заслонкой.
                Но, обратите внимание на презентацию Ф.Купмана. Оказывается это не всегда так, и на мой взгляд, именно проблема с тормозами является истинным и окончательным виновником тех трагических случаев (видео из презентации — https://www.youtube.com/watch?v=VZZNR9O3xZM). То есть по факту имеем две проблемы — «залипшая» педаль газа и фактически неработающие тормоза.

                Почему те водители не предприняли других действий для остановки автомобиля тоже весьма понятно. Ситуация развивается весьма быстро, присутствует паника и шок от осознания того, что водитель все сильнее давит педаль тормоза, а автомобиль продолжает разгоняться (эта же проблема наблюдается, когда просто путают педали). Плюс необходимость крутить рулём, объезжая препятствия. Человек не успевает распознать и осознать в чем проблема и сделать банальную вещь — перевести коробку в нейтраль. Отключение зажигания чревато «потерей» тормозов, без усилителя далеко не все и не на каждой машине смогут создать достаточное усилие на тормозной педали для эффективного торможения.


                1. mikelavr
                  30.09.2016 08:35

                  Очень интересная информация, спасибо!

                  Дело усложняется тем простым фактом, что положением «N» на АКПП пользоваться приходится крайне редко. По сути в режиме обычных поездок — никогда. Поэтому мышечной памяти перехода D->N банально нет. А вот D->R есть, и на видео в статье это тоже было — человек переключил коробку в «задний ход», после чего совершил вторую аварию.


                1. WildRat
                  30.09.2016 12:49

                  «Потеря тормозов» будет в случае отключения двигателя только если он разъеденён с коробкой, тоесть нет торможения двигателем. Да и эта потеря будет только если несколько раз нажать и отпустить педаль тормоза.


              1. mSnus
                30.09.2016 09:54

                Скорее всего, водители просто не успевали отреагировать.Те, кто успевали, могли не войти в печальную сводку.

                Кстати машина, вдруг заглушенная на полном ходу, становится неуправляемым скользящим по асфальту со всей набранной скоростью двухтонным кирпичом, в котором из средств безопасности — только ремни и немного тормозов без усилителей.

                Поэтому естественная реакция — затормозить штатными средствами довольно правильная. А машины с МКПП в США скорее исключение, чем правило.

                Выжать педаль до упора быстро и эффективно (ударом) надо тренироваться, иначе эффективность торможения далека от требуемой в таких экстремальных условиях.

                В общем, надо быть опытным водителем и быть начеку, чтобы успеть усмтрить взбесившийся автомобиль. Вряд ли девушки на семейном седане Camry из этой категории…


                1. gorbln
                  30.09.2016 23:56

                  Ну, по поводу усилия — не надо недооценивать силу ноги человека. Тем более под адреналином. Где-то читал, что даже в не особо пугающих ситуациях, сила нажатия достигает 200 кг, и охотно в это верю. А 200 кг на педали — это весьма дофига, и хватит, чтобы надёжно заблокировать колёса.


                  1. mSnus
                    02.10.2016 02:14

                    Понимаете, там в трубопроводах масло определенной вязкости, да и нарасширение шлангов часть сил потратится, и чтобы все это сработало экстренно быстро, по педали надо бить резким движением. Разница примерно как рукой «нажать на воду» и «стукнуть по воде».

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


              1. dreamwait
                01.10.2016 02:40

                В положении D — двигатель просто заглохнет при таком тесте. И есть еще ручник и замок зажигания — это просто неготовность к экстремальным ситуациям… Если бы они:
                1. Вдавили педать тормоза до упора
                2. Дернули ручник до упора
                3. Выключили зажигание
                при любом из этих действий авто остановится!!!


                1. MrShoor
                  01.10.2016 04:30

                  Про первое действие ничего не могу сказать.
                  Пункт два — ручник не удержит машину, у которой педаль в пол. Вообще никак не удержит.
                  Пункт три — современные машины с АКПП не глушат двигатель если рычаг скоростей не стоит в положении P. Т.е. можно завести машину, поставить на D, выключить зажигание и продолжать ездить.
                  Правильный вариант: выбить коробку передач на N, тормозить хоть педалью тормоза хоть ручником. Но к сожалению этому почему-то никто не учит.


            1. WildRat
              29.09.2016 15:36

              Для «компьютера» воздействие на педаль это (в итоге после считывания с датчика) значение в ячейке памяти, а с ним много чего может случится если в программе есть ошибки. Да и кусок кода, тоже, может неправильно реагировать на это значение, даже если оно соответствует действительности.

              А что «отсекать»? Педаль не нажата или педаль вдавлена до упора — это нормальные ситуации, как их «отсекать»?


        1. Tdr
          29.09.2016 11:19

          Условия дорожные меняются. Например, круиз контроль, при котором газ вообще не нажимается. Машина едет в горку и двигатель увеличивает обороты для поддержания скорости.
          Но, в целом, я думаю, что если чего-то в коде нет, то на это была причина (или это баг). Все таки не совсем идиоты софт пишут.


        1. mikelavr
          29.09.2016 11:21
          +2

          Опять же «не было изменений» — педаль у нас аналоговая, а параметр на выходе цифровой. Следовательно, есть АЦП с определенной точностью. Младший бит после оцифровки будет «дрожать». Или не один бит. Усреднять по времени? Появляется время реакции системы на управляющее воздействие — а пользователь жалуется, что машина «тупит».


          1. alltiptop
            29.09.2016 11:26

            Это если 8 уровней нажатия, разве что. Хотя не знаю как там у педали газа/тормоза, может и правда 8 (а не 1024+ как у планшетов/джойстиков/геймпадов и т.д.)


            1. mikelavr
              29.09.2016 11:33

              Посмотрел в OBD2 — все throttle position там 8-bit. Правда внутри ECU может быть и другое значение.

              Кстати, в OBD2 положений педали газа несколько. «Просто положение», относительное, и пять абсолютных. Выбирайте на свой вкус :)


          1. Ryav
            29.09.2016 11:31

            Зачем так сложно? Начинайте считать изменение с определённого порога, отсекая тем самым реакцию на дребезг.


            1. mikelavr
              29.09.2016 11:34
              +1

              Я пытаюсь объяснить, что проблема достаточно сложна, чтобы иметь много простых, но неправильных решений.


              1. Ryav
                29.09.2016 12:12

                Да, но защита должны быть проста и железна: разрыв, жёсткое условие. Если на защиту, влияющую на продолжение жизни пользователя, накладывать много различных условий, вероятность её отработки сокращается. И проектирование системы должно начинаться как раз с защиты.


                1. WildRat
                  29.09.2016 15:40

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


                  1. Ryav
                    30.09.2016 13:10

                    Никто не говорит об отключении двигателя, я говорю о возвраще дросселя к положению «холостые обороты».


    1. mikelavr
      29.09.2016 11:10

      Управлять нужно не только количеством воздуха через дроссель, но еще и количеством топлива через форсунки.
      Даже в механическом карбюраторе, который вроде бы подходит под ваше описание «прямой связи» педали и заслонки, есть ускорительный насос — конструкция, которая вспрыскивает дополнительное количество топлива, если водитель нажимает на педаль газа быстро. Это показывает, что важно не только положение педали газа, но и скорость/ускорение ее нажатия. Кроме того, есть экологические требования, то есть нужно удерживать стехиометрический состав топливно-воздушной смеси (из за этого первые модели машин с электронной педалью газа были весьма задумчивы). А в современной машине есть еще АКПП, которая работает в связке с двигателем, и они решают общую задачу, следовательно влияют друг на друга.


      1. Ryav
        29.09.2016 11:14

        Я говорю не о прямой связи педаль-заслонка, а о жёстком условии, при котором изменение положения дросселя производится только при изменении показаний датчика от педали.


        1. mikelavr
          29.09.2016 11:31
          +1

          Кроме датчика педали, у ECU есть масса других управляющих параметров:
          — датчик положения коленвала
          — датчик положения распредвала
          — температура входящего воздуха
          — давление входящего воздуха
          — температура охлаждающей жидкости
          — давление топлива
          — датчик кислорода в выхлопных газах (или несколько)
          — датчик температуры катализатора (или несколько)
          — напряжение бортовой сети

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


          1. Ryav
            29.09.2016 11:36

            Почему не берут за основу модель с тросиком? Там дроссель на открытие ну никак не пойдёт без воздействия на педаль. Дроссель не открывается — нет воздуха, значит получается бедная топливная смесь, значит обороты двигатель не развивает, машина быстрее не едет.


            1. mikelavr
              29.09.2016 11:41

              Потому что модель «без тросика» имеет больше мощность, меньше потребление, лучше экологичность. Сплошные потребительские плюсы.


              1. Alexsandr_SE
                29.09.2016 12:31
                +1

                Я бы предпочел тросик :) как нажал, так и поехал. А автоматика пущай максимально подстраивает остальные параметры. Какой выигрыш сейчас полной автоматики и простого инжектора в одинаковых условиях ускорения?


                1. mikelavr
                  29.09.2016 12:36

                  По потреблению топлива — раза в полтора при прочих равных условиях.


                  1. varnav
                    29.09.2016 13:52

                    Ну прям уж — хотите сказать что машина становится в полтора раза экономичнее только за счёт электронной педали газа?


                    1. mikelavr
                      29.09.2016 13:58

                      Скорее все же за счет ECU. И наличие электронной педали (и электронного же дросселя) позволяет ECU полностью управлять ситуацией, а не компенсировать то, что пользователь делает с педалью газа и тросиком к дросселю.


                      1. InSys
                        29.09.2016 19:24

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

                        Если взять инжектор без электронной педали — то в прошивках закладывают коррекцию на изменения нажатия педали газа на циклы вперед. В двух словах это не объяснишь, но благодаря совокупности этих калибровок итоговая погрешность смеси в любом режиме выходит совсем небольшой.

                        Электронная педаль лишь позволяет это делать еще более точно. Не берусь сказать точные проценты, но по моему скромному мнению разница в экономичности вряд ли превысит процентов 5, а так, я думаю и того меньше.

                        Но это опять же если используется адекватные настройки электронной педали. Т.е. в случае «прочих равных условий». А так, ее можно настроить так чтобы она душила двигатель на этапе разгона с той целью чтобы смесь всегда была стехиометрической (что кстати отчасти и делают автопроизводители). Получится очень-очень экологично, и экономично. Но о более-менее приемлемом разгоне можно забыть.


                        1. mikelavr
                          30.09.2016 08:41

                          Пожалуй соглашусь про «погорячился» :).

                          На практике эффект экономии топлива есть, и даже в полтора раза, но он комплексный, от многочисленных изменений в машине. В моем случае:

                          — появление электронной педали;
                          — уменьшение объема двигателя (2.0 -> 1.8), при этом мощность двигателя выросла;
                          — появление плавной регулировки высоты подъема клапанов;
                          — замена АКПП на вариатор;
                          — замена ГУР на ЭУР;
                          — лучшая аэродинамика;


              1. k102
                29.09.2016 15:04

                А больше мощность откуда?


            1. Marsikus
              29.09.2016 16:54

              Тросики тоже не идеальны, они могут обрываться (лучший вариант) или заклинивать (хуже).


              1. Ryav
                30.09.2016 13:12

                2 раза сталкивался с обрывом тросика на ВАЗ 21102, вполне спокойная ситуация.


          1. NickyX3
            29.09.2016 14:08

            Нет там давления топлива — не нужно оно там. Количество топлива задается временем работы форсунки


            1. mikelavr
              29.09.2016 14:23

              Это не обязательный параметр, как и многие другие. Но если он есть — ECU может точнее дозировать смесь.

              OBD-II, mode 1, pid's: 0xA, 0x22, 0x23, 0x59


            1. ittakir
              29.09.2016 14:33

              А давление топлива обычно регулируется вакуумным регулятором, который берет опору из впускного коллектора. Больше вакуума, больше топлива течет в обратку, меньше давление в рампе, и из-за этого не так критично малое время открытия форсунки на холостых оборотах, когда это время сравнимо с временем срабатывания форсунки (~1 мс.)


              1. NickyX3
                29.09.2016 14:39

                В каком веке вы живете?
                Нет никакой обратки в современных инжекторных авто. Насос качает постоянное давление в рампу и уже ECU рулит на какое время открыть форсунку. Дроссельная заслонка не пропускает через себя топливо или ТВС — только воздух. Больше открыли — больше дали воздуха, по показаниям MAP/MAF расчитали сколько топлива лить — на соответствующее время открыли форсы. Все.


                1. ittakir
                  29.09.2016 14:50

                  Все правильно написали, ваши представления не отличаются от моих.
                  Посмотрел, на 1NZ-FE, например, действительно регулятор давления перенесли в бензонасос. Ну и дураки, как мне кажется, из-за описанных выше причин (время срабатывания форсунки).


                  1. NickyX3
                    29.09.2016 14:56

                    Да не только Toyota, у меня вообще Honda и L15A VTEC. Судя по всему практически везде начиная где-то с 2000 года именно так. Нет обратки топлива, давление рулится насосом в баке.


                    1. mikelavr
                      29.09.2016 15:03

                      Две магистрали дороже одной, а клапан давления все равно где ставить — в движок или в насос.


                1. Marsikus
                  29.09.2016 16:53

                  А если давление после насоса просядет (насос изношен), то ECU не будет компенсировать это другим значением времени открытия форсунки?


                  1. NickyX3
                    29.09.2016 17:08

                    В небольших пределах возможно. Недолив скажется на составе смеси -> детонации к примеру, что ECU увидит на датчиках, недолив как и перелив увидит лямбда как обратная связь в ECU, и вторая лямбда при ее наличии. Как правило простые авто типа Fit или там какой нить Vitz у тойоты так и работают.


                  1. ittakir
                    29.09.2016 18:49

                    На том же 1NZ-FE в ECU заведен датчик давления топлива. Так что компенсирует.


            1. mikelavr
              29.09.2016 15:01

              Интереса ради снял статистику по подконтрольным автомобилям с полной информацией по OBD2.

              Машин всего: 267
              С датчиком давления топлива: 57 (21%) (3 бензиновые, 54 дизельные)


              1. NickyX3
                29.09.2016 15:04

                Внимание! 96% авто с датчиком давления — дизельные. Я так подозреваю что 3 бензиновых это GDI


                1. mikelavr
                  29.09.2016 15:13

                  Еще хуже, можете считать что дизельных 100% :-)

                  Те три бензиновых машины, попавших в выборку, выдают Fuel Pressure=0, то есть явный косяк в ECU (выдача пустого параметра). Производитель один — GM (конкретную модель сказать не могу).


                  1. NickyX3
                    29.09.2016 15:17
                    +1

                    Вот я про то же. На дизеле понятно зачем давление топлива нужно в мозгах — контроль давления от ТНВД или что там сейчас — иначе можно и недешевые форсы завалить


    1. SawaNsk
      29.09.2016 11:10

      Управление дроселем может быть нужно:
      Круиз контроль
      Показание лямбд — корректировка смеси
      Работа автомата — более плавные переключения
      Повышение экологичности, расхода топлива, прохождение дизель теста, но это к VW
      Сейчас уже не карбюраторные машины, (но и там был «подсос»), и всякие нормы экологичности за частую душат возможности двигателя очень сильно.


      1. ittakir
        29.09.2016 14:41

        Корректировку смеси гораздо проще делать временем впрыска.
        Поддержание стабильных оборотов холостого хода делается быстродействующим соленоидом с ШИМ модуляцией и варьированием угла опережения зажигания.


      1. aulandsdalen
        29.09.2016 15:13

        Первые два пункта замечательно работают и без электронной педали газа :-)


        1. WildRat
          29.09.2016 15:47

          Круиз-контроль на автомобилях без электронной педали газа очень похож по конструкции на «электронную педаль газа» (прошу прощения за каламбур). В нём есть привод двигающий дроссельную заслонку, так что, теоретически, с ним также возможна ситуация, когда автомобиль будет неконтролируемо разгонятся.


          1. NickyX3
            29.09.2016 17:14

            Не совсем — обычно он не двигает заслонку напрямую — а тянет или блокирует сам тросик, по крайней мере в тех, с которыми я сталкивался


            1. MacIn
              29.09.2016 17:54

              Какая разница? Точно так же натянет тросик до упора и привет.


              1. NickyX3
                29.09.2016 18:04

                Любое натяжение троса газа или торможение — отпускает тросик круиза — механически


                1. MacIn
                  29.09.2016 18:16

                  Это смотря какая машина.


                  1. NickyX3
                    29.09.2016 18:20

                    Да кто спорит — я же сказал — те, которые видел.
                    В универсальных на трос — параллельный тросик с мотором и концевики на медалях


    1. Forget
      29.09.2016 11:31

      В этом случае никаких особых отличий между «электронным газом» и обычным тросиком не будет.
      Управление подачей воздуха осуществляется в соответствии с некоторой таблицей, в зависимости от температуры окружающего воздуха и температуры двигателя (и много чего еще, но пока пусть только три). Степень нажатия и две температуры, целых три параметра, это уже большое пространство для ошибки выхода за границу массива по любому из трех.
      Просто все выглядит только когда у нас одна машина, одна педаль газа, один двигатель и постоянные нормальные условия. В реальной жизни так не бывает.


      1. Ryav
        29.09.2016 12:33
        +1

        Все комментарии сводятся к тому, какая степень нажатия на педаль, я же говорю о состоянии педали — нажата или вообще никакого воздействия на неё нет. Если никакого воздействия нет, то и увеличения скорости быть не должно. Грубо говоря, с точки зрения пользователя педаль акселератора выполняет функцию ускорения и поддержания скорости. Какой ещё рычаг/тумблер/механиз управления выполняет эту функцию? Никакой (если никто сзади с горки не толкает, конечно). Так какого хрена автомобиль девушек начал ускорение (я в это, конечно, слабо верю, скорей всего действительно педали перепутали), почему разработчики не прописали жёсткое условие «нет воздействия на педаль — нет увеличения оборотов, отличных от холостых»?


        1. mikelavr
          29.09.2016 12:46

          Пожалуй добавлю, что у меня был случай на ВАЗ-21093 с карбюратором, когда машина начала самопроизвольно разгоняться без нажатия на педаль газа. Банально слетела пружина возврата тросика газа. Так что тросик — тоже не панацея.


          1. Ryav
            29.09.2016 12:55

            Это то, о чём я говорил выше — аппаратная проблема. Вины программистов в этом нет. Пост же написан так, будто все 81 514 ошибок относятся непосредственно к безопасности, из-за этого то девочки и попали в аварию. А вовсе не из-за того, что не контолировали дорожную ситуацию.


            1. mikelavr
              29.09.2016 13:00

              А в случае embedded — программист и инженер-электронщик это или один человек, либо они работают в очень плотном контакте. Не далее как вчера у меня на работе одна из проблем с надежностью в серийном изделии была решена изменением в схеме плюс изменением в коде. И раздельно эти решения не работали.


        1. Forget
          29.09.2016 12:55
          +2

          Ситуация, которая происходит на видео, в коде может образоваться при выходе за пределы таблицы поправочных коэффициентов и последующем зависании трэда (многопоточность есть и во встраиваемых системах), ответственного за вычисление угла поворота заслонки/оборотов двигателя. О каком простом условии может идти речь, если ответственный за проверку этого условия код попросту завис? Посмотрите на видео в статье — иногда даже удар автомобиля не включает защиту и авто все равно продолжает газовать.
          Да, я понимаю что можно просто привязать максимально тупую механическую обратную связь которая будет блокировать разгон авто при отжатой педали акселератора. Но это все-таки автомобиль, а не ракета, производителю проще не дублировать защиту от такой ситуации механически.


          1. Ryav
            29.09.2016 12:58

            Не думаю, что установка одного концевика сильно усложнит проектирование, производство и сильно скажется на стоимости автомобиля.


            1. Forget
              29.09.2016 13:23
              +2

              Не думаю, что установка одного концевика сильно усложнит проектирование

              Вы удивитесь…
              Вообще электронщики, как вы и говорили изначально, считают что задача плевая и зависнуть там ничего не может. Вот и не добавляют лишних деталей. И проблема действительно простая — если производить тестирование кода и как следует изолировать код от аппаратуры (ибо она, как я уже говорил, меняется со временем. Да и нельзя нормально тестировать код с большим количеством внешних зависимостей). Но, как и во всех программистских областях, заказчики считают что код простой и то, что его надо тестировать и поддерживать во внимание не берут, все нужно доказывать, а большинству разработчиков не хочется бодаться с заказчиком, который с радостью сменит прогера на более сговорчивого. Вот и получаются таки монстры с 81k нарушений…


              1. Vjatcheslav3345
                29.09.2016 17:05

                У государства лопнет таки терпение и оно введёт таки спецгосорган для "шмона"-экспертизы кода, введёт штрафы и обязательное доказательное программирование — а за его содержание будут платить производители и потребители.


          1. npechenkin
            07.10.2016 13:06

            Но это все-таки автомобиль, а не ракета, производителю проще не дублировать защиту от такой ситуации механически.

            Но автомобили куда как опаснее для всех нас чем ракеты. Ясное дело, что все «фичи» и дублирования будут в конце-концов оплачивать потребители, но судя по тому, что крупные автопроизводители в своих маркетинговых компаниях часто делают упор именно на безопасность — покупатели готовы за это платить.


        1. yshurik
          29.09.2016 15:33

          Я писал выше - вы забываете что проблема неожиданного ускорения присутствует только в гибридных авто Тойоты. В них вместе с двигателем через планетарную передачу ещё подключен электродвигатель/генератор довольно хорошей мощности. Собственно когда педаль акселератора не нажата, двигатель не крутит на холостых а например передаёт мощность на генератор для зарядки батареи, или наоборот электродвигатель может хорошо добавлять мощности вместо того чтобы крутить двигатель на очень неэффективных режимах (вот в этом и экономичность), или (есть и такая опция в приус) ехать только на электромоторе, недолго пару км. Собственно софт управляет двумя двигателями в тандеме и ошибка в софте или неправильный учет особенностей этих двух очень разных двигателей (плюс там может гистерезис или что там) вполне может привести к неожиданному ускорению.


        1. WildRat
          29.09.2016 15:51

          «Компьютер» знает об воздействии на педаль только через датчики наклона этой педали (они обычно задублированы в авто с системой «электронный газ»). И ошибок, теоретически, может быть куча — неправильно прочитано значение датчика, изменено в результате ошибки, в конце-концов может быть неправильно прописано условие, когда не важно это значение вообще.


        1. mblp
          30.09.2016 10:10

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


        1. novice2001
          30.09.2016 10:10

          Круиз-контроль. Педаль полностью отпущена — машина едет с заданной скоростью.


    1. Duchus
      29.09.2016 11:41

      К сожалению жестко нельзя. Привод заслонки зависит не только от педали, но и, например, нагрузки (едем в горку, под горку и тд...). А современные модели еще многое другое думаю учитывают при открытии заслонки.


  1. lingvo
    29.09.2016 11:19
    +2

    Ситуация в принципе такая же, как и в статье о кардиостимуляторах пару месяцев назад — от качества кода все больше зависит жизнь человека, и если это не контролировать, получаем такие бяки.
    Вопрос — как это исправить? Наверное заставить всех открывать исходные коды, чтобы они могли проверяться независимыми организациями. Это ударит по производителям, но должно значительно повысить безопасность.


    1. alltiptop
      29.09.2016 11:22

      А чем это кардинально ударит по производителям? Для автоконцерна штат программистов для базовых систем мне кажется вообще статистической роли не играет. А так хотя бы перестанут отдавать на аутсорс.


    1. herr_kaizer
      29.09.2016 12:55

      Не нужно никого ничего заставлять. Если багов много и они действительно критичны — то и проблем с автомобилями будет больше, и люди голосовать будут кошельком.

      89 смертей за 10 лет — это даже не смешно.


      1. dzok
        29.09.2016 13:19

        Доказанных смертей? Про признанные я вообще молчу.


  1. Idot
    29.09.2016 11:47

    В коде Тойоты использовалась рекурсия, и каждая проблема с ней приводила к перезагрузке процессора (CPU reset).
    Хотелось бы услышать мнение и рекомендации сторонников Функционального Программирования о том как подобного избежать.


    1. mikelavr
      29.09.2016 11:49
      +5

      Как эмбеддчик (со стажем 17 лет), отвечу: не использовать рекурсию. И не использовать динамическое выделение памяти.

      А вот как решать проблемы с избыточной цикломатической сложностью кода — сам хотел бы узнать.


      1. FForth
        29.09.2016 12:35

        Полистать такую книгу из топика L.Broudi «Thinking Forth» (Способ мышления — Форт)
        http://fforum.winglion.ru/viewtopic.php?f=37&t=2011
        в чём то может оказаться полезной любому программисту. :)

        P.S. У Купмана тоже были материалы Форт тематики.


        1. mikelavr
          29.09.2016 12:48

          Форт — это как то жестко :). Последний раз я его использовал году так в 1985, в институте, на БК-0010 :)


    1. TargetSan
      29.09.2016 12:07
      +1

      В эмбеде — никак. Потому что подобный эмбед на 99.(9)% — голый C, как я понимаю. Который в принципе не умеет tail call optimization — и даже не понимает, что это такое.


      1. Source
        29.09.2016 12:22

        подобный эмбед на 99.(9)% — голый C

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


        1. TargetSan
          29.09.2016 12:51
          +2

          А альтернатив нету особо. Эмбед — ограниченные ресурсы, следовательно GC туда не сильно встаёт. Сейчас языков б/м известных языков без GC — 3 штуки. C, C++, Rust.


          С — старичок, относительно прост. Но в плане безопасности программирования почти ничем не отличается от ассемблера.


          С++ — на данный момент монструозен в плане поддержки стандарта; в плане отстрела себе ноги по самую шею не сильно далеко ушёл от С


          Rust — безопасен, но очень молод


          1. mikelavr
            29.09.2016 12:54

            Неплохо бы еще иметь реализации RTOS на выбранном языке. И тут Си просто таки выделяется.


            1. Halt
              29.09.2016 21:26

              Ну раз уж упомянули Rust, то давайте и упомянем embedded проекты на нем (навскидку):

              https://github.com/alexchandel/rust-rtos
              https://github.com/hackndev/zinc

              https://spin.atomicobject.com/2015/02/20/rust-language-c-embedded/

              и т.п.


              1. Halt
                29.09.2016 21:38

                Пардон, первая ссылка должна быть https://zinc.rs/, по ошибке вставил полудохлый проект.


          1. Idot
            29.09.2016 13:00

            А что можете сказать про C--?


            1. TargetSan
              29.09.2016 13:08

              А ничего особо. Помню только сам факт его наличия.


              Уточняю, что я не эмбедщик, и сужу поверхностно. Просто насколько я помню, ни одна попытка втащить управляемую среду на микроконтроллеры не увенчалась широким успехом — просто из-за толщины рантайма или ограничений по памяти, в которые не влезет никакой GC. А б/м известных языков с управлением ресурсами без рантайм-оверхеда у нас 3 штуки. Их я перечислил выше.


            1. FForth
              29.09.2016 16:12

              Сложнее придумать и обеспечить формальный контроль по MISRA правилам.


          1. Source
            29.09.2016 14:11
            -1

            Эмбед — ограниченные ресурсы

            Всё очень относительно… сейчас плата, умещающаяся на ладони, может быть в разы мощнее персонального компьютера 10-летней давности.
            Тут скорее надо определиться с восприятием, что такое эмбед? Это ограниченные ресурсы или ограниченный размер… Если второе, то ресурсов хватит практически на любой современный ЯП.


            1. Forget
              29.09.2016 14:35

              Дело не только в количестве ресурсов, дело в самом определении термина. Встраиваемые системы обычно не контактируют с человеком, работают при минимуме обслуживания, в случаях когда человек просто не в состоянии выполнить задачу (из-за времени реакции или по другим причинам). Именно по этому необходима большая аккуратность при проектировании таких систем.
              И сборщики мусора не могут гарантировать что вся не нужная память будет освобождена (достаточно вспомнить про ошибки потери указателя на событие в C# — если забыть отменить делегату подписку то он будет сидеть в списке до скончания времен. Как и вся зависимая от этого делегата память — ссылка-то сохранилась). + они добавляют непредсказуемости — не знаешь когда он запустится и на что он повлияет. Да, есть сборщики мусора реального времени, но когда они выйдут из исследовательских статей в массы одному root-у известно… А с другой стороны — есть ли в этом смысл? Ведь требования аккуратности и обработке ошибок никуда не пропадают.
              В общем «встраиваемость» — это раньше было про дефицит ресурсов. Сейчас, кажется, краеугольной частью «встраиваемости» является «необслуживаемость».


              1. lingvo
                29.09.2016 15:10
                +1

                Я думаю, что сейчас многие путают реальное время с эмбеддерством. Или отождествляют. Проблема в том, что это разные вещи, и указанные вещи, типа рекурсивности, динамического программирования — это как раз те вещи, которые нельзя применять в системах реального времени, а не эмбеддерстве.
                ECU современного авто — как раз система реального времени.


                1. mayorovp
                  29.09.2016 16:19

                  Что вы понимаете под "динамическим программированием"? Явно что-то отличное от правильного значения...


                  1. lingvo
                    29.09.2016 17:29

                    Сорри опечатался, имеется ввиду динамическое распределение памяти.


            1. hardegor
              30.09.2016 13:15
              +1

              Несомненно плата на ладони сейчас мощнее старого компьютера, но они оба работает в очень приятных условиях и никаких требованиях к надежности.
              Встраиваемые системы работают в гораздо более жестких условиях, -40..+85 Industrial, я уж не говорю про +125 Automotive и -60/-55/RadHard у космонавтов/военных — все эти платы на ладони «сдуваются» по параметрам на порядки, а цены растут в обратной пропорции.


      1. csbs
        29.09.2016 16:57

        На Java уже можно писать для эмбеда, например для AVR32, Cortex-M0/M0+/M3/M4/M7 и т.д. JVM портировали на MCU, при этом RTOS поддерживается.


        1. TargetSan
          29.09.2016 17:03

          Я не отрицаю, что это в принципе можно. Был же .NET Core Framework (или как он там назывался). Я только говорю, что оно пока не распространено широко.


          1. csbs
            29.09.2016 17:21

            Про .NET незнаю. Но вот AVR мало ресурсов имеют, по сегодняшним меркам конечно, модели от 16 до 512 КБ и 50-84 МГц. И там Java.


            1. FForth
              29.09.2016 17:43

              Где вы видели AVR с такими частотами и 512Кб памяти? (и рабочей Java)
              Может всё таки ARM архитектура.


              1. csbs
                29.09.2016 17:52

                Ну вот, например — http://www.atmel.com/devices/AT32UC3A364.aspx


                1. xztau
                  30.09.2016 11:48

                  Не путайте AVR и AVR32


                  1. csbs
                    30.09.2016 11:58

                    Вот мой комментарий https://habrahabr.ru/company/pvs-studio/blog/310862/#comment_9834020
                    никто и не путает. Речь шла про AVR32.


              1. csbs
                29.09.2016 17:55

                А вот Java для AVR32 и не только — https://www.micrium.com/rtos/microej/
                На базе rtos ядра.


        1. lingvo
          29.09.2016 17:35
          +3

          Ага.
          Попробуйте на Java и виртуальной машине запрограммировать алгоритм, который бы считал нужное время открытия топливной форсунки, основываясь на измерении от десятка датчиков, пары десятков таблиц и гарантированно выполнялся за 10мс — столько времени занимает поворот распредвала на 360° до следующего цикла впрыска.
          Это называется выполнение в реальном времени. Увидите, что только голый Си здесь помогает.


          1. csbs
            29.09.2016 17:54
            -1

            Ну так, Java понятно что не все критические участки закроет. Где-то С, а где то Java.


            1. FForth
              29.09.2016 19:04
              -1

              Для встраивания Java и с такими частотами, то скорее для большой части задач за глаза.
              10мс — это вообще огромный интервал времени для микроконтроллеров.
              10мс — это период 100 Гц в сравнении с даже тактовой 80 Мгц (80 000 000 Гц) и одно двух тактными
              командами ядра процессора можете посчитать сколько процессорных команд можно выполнить.
              (даже с java реализацией)


            1. UnixMaster
              29.09.2016 20:00

              На хабре есть куча статей про то, как java на числодробилках (а тут примерно такой же случай), отличается по скорости менее чем на 5%, а то и быстрее расчитает благодаря JIT, если на С криво написан код, то AOT его оптимизирует лишь на стадии компиляцийй, а JIT на JVM его может оптимизировать во время исполнения более эффективно. Вопрос тут в другом, какой там компилятор используется, какая реализация JIT, по какому принципу работает GB, как аллоцирется память и прочее. Так что тут проблема не платформы для реализации, а скорее криворукость, маленькие сроки на разработку и прочее. Выше и ниже все это описали.


        1. Idot
          30.09.2016 06:28
          +2

          А как в случае Эмбеда решается Проблема Сборки Мусора у Java?
          Сборка Мусора — вообще отключаема? И как быть с привычками тех кто привык, что мусор за ними всегда приберут?


          1. mayorovp
            30.09.2016 08:51

            Очень просто: запрещается создавать объекты кроме как во время инициализации.


            1. Idot
              30.09.2016 10:38

              В интерпретаторе (компиляторе?) Джавы можно запретить? Или программист сам должен помнить, и нечаянно (неявно?) не создать?


    1. Source
      29.09.2016 12:12

      По факту хвостовая рекурсия раскрывается в тот же ассемблерный код, что и обычный цикл.
      А в комментарии, видимо, имеется в виду проблема, когда стек заканчивается. Рекурсия, использующая стек, обычно применяется в императивных языках, т.к. там может не быть tail-call optimization. Ну либо в крайне редком подмножестве алгоритмов, где без древовидной рекурсии вообще никак не обойтись.


  1. Varkus
    29.09.2016 12:09
    +2

    Не пойму, что всем этим пострадавшим мешает зажать тормоз и выключить коробку?

    У меня пару раз рычаг АКПП из положения D «щёлкал» в положение N только от того, что случайно рукой зацепил.

    А на всех случаях из видео водители героически начинают объезжать всё, что видят лишь бы машина побольше скорость набрала.
    Как так?


    1. mikelavr
      29.09.2016 12:56
      +8

      Ошибка вида «дельфины всегда толкают людей к берегу».
      Те, кто нажал на тормоз, выключил коробку, выключил зажигание — не выкладывают это в интернет…


      1. Varkus
        30.09.2016 23:58

        Полностью с Вами согласен, жаль плюсовать не могу.


    1. olekl
      29.09.2016 13:00
      +1

      Популярный автомеханик именно это и писал в своем жж. Более того, он однажды столкнулся с тем, что коврик педаль до упора нажал. На автомате. И именно так, как вы говорите — нажал на тормоз, машина остановилась, перевел в N, мотор раскрутился до отсечки. Выключил зажигание. Все. А когда на видео в этом случае — визг и дворники включаются, то это больше похоже на «педали перепутать», а не на баг ПО.


    1. NickyX3
      29.09.2016 14:53

      Чтобы скинуть с любого положения подразумевающего движение (не паркинг) в N тормоз нажимать вообще не надо.


      1. mikelavr
        29.09.2016 14:56

        После начала неконтролируемого разгона и реакцией водителя проходит некоторое время — машина уже разогналась, и ее надо остановить.


        1. NickyX3
          29.09.2016 15:00

          Последовательность действий должна быть — скинуть в N, потом тормозить. Я прошел похожую ситуацию когда на скорости 70 км/ч у меня распредвал с шестерни сорвало — почти мгновенный останов мотора по ДПРВ


          1. mikelavr
            29.09.2016 15:07

            В теории да, но вы учтите стрессовую ситуацию для водителя. В этой ситуации важнее остановить машину, а с ее неисправностями можно разобраться потом. Свое здоровье важнее, железо можно и новое купить.


    1. lonelymyp
      29.09.2016 15:40
      +2

      Ничто не мешает, даже больше скажу, все они на 100% были уверены что жмут именно педаль тормоза!
      Они все абсолютно точно уверены что жмут именно тормоз и жмут его со всей дури, хотя по факту нога на 15 см правее тормоза.
      Нужно определённое время чтобы человек осознал свою ошибку и отпустил одну педаль и нажал другую. В панике осознать ошибку можно и не успеть.

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

      В состоянии паники сложно сосредоточиться и сделать разумное действие, а в данном случае надо сознательно отпустить педаль тормоза (мозг ведь думает что нажал тормоз) и нажать левее в пустоту(мозг ведь думает что раз нажал тормоз то слева будет пустота).


  1. olekl
    29.09.2016 12:56
    +4

    А на видео, на мой взгляд, минимум в половине случаев таки педали перепутали…


  1. ittakir
    29.09.2016 14:28
    -1

    Как-то слишком много пафоса в статье, секретный бункер, 100500 нарушений MISRA C.
    А по факту баг не нашли, из-за которого автомобиль может начать ускоряться.
    А ошибки MISRA — ну макросы там всякие используют или указатель без проверки разыменовали. Ну и что? Автомобильный ECU — это довольно простая коробка, она либо работает, либо не работает. Как там наговнокодили — макросами, шаблонной магией или еще чем-то, в сущности не важно. Алгоритмы работы инжекторного двигателя весьма простые и определенные. А вот когда в авто нейросети запихают, вот тогда начнется…


  1. inkvizitor68sl
    29.09.2016 14:49

    Проблема, думаю, не в разработчиках, а в менеджерах, у которых сроки, желание позвать разрабов на бесконечные встречи и прочие чудные идеи.


  1. benyamin
    29.09.2016 15:40

    Я вообще не пониманию, почему автопроизводители к примеру не запартнерятся с крупными компаниями, к примеру, многие уже устали от допотопных навигационных систем, ребята на рынке полно лидеров в этой области, берите их на работки и используйте.
    От года в год я наблюдаю ужаснейший не юзабельные интерфейсы ГУ, ребята очнитесь, вы слышали что-то о UI и UX.
    Почему на ГУ нельзя вывести элементарные статистические параметры авто, которые будут накапливаться и агрегироваться такие как, средний расход за поездку, пробег поездки и т.д.
    Почему нет возможности установить свое приложение на ГУ либо API
    Почему нет возможности дать ГУ интернет и не предусмотрено место под сим карту…
    А ребята все по прежнему лепят какой-то прошлый век, да еще и убивающий людей!!!


    1. k102
      29.09.2016 15:44
      +2

      Да при чем тут головное устройство то. Оно должно быть физически отделено от систем управления двигателем и прочих ответственных вещей.


      1. benyamin
        29.09.2016 15:50

        это в целом о наболевшем)


        1. k102
          29.09.2016 16:10

          Эх, у меня скорее обратная претензия. Хочу честный тросик, настоящий ручник, гур… А в современных моделях вместо этого более красивый интерфейс ГУ.


          1. aulandsdalen
            29.09.2016 19:59

            Ну так покупайте нормальную машину, а не какой-нибудь убогий риосолярис. Машина не становится хуже от того, что ее больше не выпускают.


            1. mikelavr
              30.09.2016 09:00
              +1

              К сожалению становится — железо не вечное.


              1. Nikobraz
                30.09.2016 09:28

                Да ладно? Своевременная и регулярная обработка продлевает его срок. А когда прогниет и переварить можно.


            1. k102
              30.09.2016 10:26

              Она становится хуже от того что за ней не следили. А к сожалению у нас многие вообще не особенно запариваются на ТО после того как гарантия кончилась. В новой таких проблем будет скорее всего поменьше


          1. Meklon
            30.09.2016 11:02

            У меня Nexia 2006. Тупая как кирпич. При желании, чинится гвоздями. Хотя от ГУР я бы не отказался. Из плюсов — ломаться особо нечему. А любые ремонты 150-3000 рублей обычно. Но корпус ржавеет, увы. Задние крылья.


    1. lingvo
      29.09.2016 16:00

      Ну, допустим, Вас услышали в каком-нибудь Рено и сделали супер-пупер-навигацию. Добавили кучу фишек и т.д.
      Вы из-за этого откажетесь от покупки Мерседеса и купите Рено? Только ради навигации?
      Не думаю. Вот и производители авто тоже так думают. Они понимают, что если вы выбрали Мерседес, вы не пересядете на Рено из-за того, что там навигация лучше. И можете позволить купить себе допотопную навигацию за 3к€ в придачу.


      1. mikka1
        29.09.2016 16:57

        Ну вообще не совсем так — сравнение автомобилей разного уровня/класса — дело довольно странное. С таким же успехом можно сравнить покупку нового Мерседеса и б/ушных Жигулей

        У меня, по крайней мере, было несколько иначе — мы с супругой решили купить / взять в лиз автомобиль по определенным ценовым параметрам (допустим, лизинговый платеж не более $300 / мес) + основным эстетическим и функциональным параметрам (седан, небольшой размер) — уже это позволило отсеять 90% автомобилей на рынке. На выходе, к примеру, у меня осталось штук 5 — Honda Civic, Hyundai Elantra, Chevy Cruze, Subaru Impreza и VW Jetta. Последние три после недолгого анализа тоже отпали по разным субъективным причинам (несговорчивые продавцы в дилершипах, плохая доступность нужных комплектаций и т.д.) — и на выходе остались именно цивик и элантра, которые буквально дышали друг другу в спину — разница в платеже по лизу — около 2-3 долларов в месяц (т.е. по сути нет разницы), функционально всё одинаковое, условия лизинга (мили, срок) одинаковые, разница в стоимости страховки минимальная и т.д.

        В итоге выбор в пользу Цивика был сделан супругой именно потому, что при прочих равных условиях ей "экранчик и меню больше понравились", при том, что к Хёндаю изначально подсознательно сердце лежало больше (уже был до этого успешный опыт владения другим Хёндаем) :-)

        Т.е. Вы, безусловно, правы, что при выборе между внедорожником Мерседес и малюсенькой Тойотой Ярис наличие любых фишек в последней вряд ли впечатлит будущего владельца чёрного танка, но вот переманить поклонника одного бренда при похожих конфигурациях авто благодаря удобству той же магнитолы / навигации / экранного меню — запросто. Мог бы плюсануть к benyamin, с удовольствием сделал бы это :)


        1. springimport
          29.09.2016 21:22

          В таком случае лучше Кэмри взять, имхо.


          1. MrShoor
            29.09.2016 21:30

            Чтобы было как на видео в посте? Чет не, не хочется.


            1. springimport
              29.09.2016 21:41

              Может с кодом и не очень у них (сомневаюсь что у других сильно лучше), но машина вполне добротная и уж точно лучше Цивика.


          1. mikka1
            30.09.2016 19:46

            Ну камрюха это ж уже повыше классом и сильно выше ценником, ее честнее сравнивать с аккордом и сонатой. Но Королла, к примеру, мне чем-то совершенно не понравилась, так что она даже не попала в «лонг-лист»…

            Аккорд, как ни странно, тоже был как вариант — но там выбор в этих ценовых пределах был «голый, совершенно голый аккорд» или «нафаршированный всем, чем только можно цивик».


            1. springimport
              30.09.2016 19:59

              Есть такое. Как вариант, взять немного БУ, ценник выйдет неплохо ниже.


      1. benyamin
        29.09.2016 17:26

        сделаю акцент, что на премиум авто, должно все это уже быть, на тех же Lexus, Mersedes, BMW, но к сожалению штатные балалайки существенно отстают от прогресса, каждый раз пытаясь изобрести велосипед заново, продавая за баснословный деньги опцию типа кругового обзора и т.д.

        P.S. мы живем все таки в реальном мире, я сомневаюсь, что рено раньше мерседеса выпустит какое-то классное ГУ.
        Вопрос в том, что рынок уже давно хочет этого, а автопроизводители все лепят какой-то смех


        1. k102
          29.09.2016 17:35

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


          1. dzok
            29.09.2016 18:13

            Это если сначала вместо самого авто, сначала разработать пользовательские прибамбасы, и в ходе дальнейшего проектирования их больше не пересматривать. Тут как по мне проблема в отношении. «Пипл хавает», а раз хавает, то смысл напрягаться.

            P.S. Оснащать любую тарантайку нормальной пользовательской электроникой и экранами сейчас нет проблем — её стоимость равна стоимости средней руки планшета или нетбука, в массовом производстве и того меньше. В общей стоимости машины — копейки. Ну и поскольку на неё не завязано ничего жизненно важного, то поменять её в ходе жизни одной модели авто можно сколько угодно раз.


            1. dro1d
              30.09.2016 12:17

              ну, судя по всему, тойота так и делает — очень быстро выкатывает обновления электроники (и пользовательской, и системной), к сожалению, без должной степени проверки качества


              1. dzok
                30.09.2016 15:45

                Моя мечта — унифицированные блоки подключения пользовательской электроники как это было с магнитолами и выбор из сотен моделей разных производителей или нормальная электроника позволяющая менять ос как тебе удобно. Но автопромышленники удавятся.


                1. dro1d
                  30.09.2016 15:56

                  Я думаю, такое будет не скоро. Если представить: поставил новую «железку», а новая ОСь ее не поддерживает. Или начинает безбожно глючить, в итоге водитель больше отвлекается — растет число аварий.


        1. lingvo
          29.09.2016 17:42

          Зря сомневаетесь, ГУ моей Тойоты намного более удобное чем ГУ Лэнд Ровера, выпущенного 3-мя годами позже. Начиная с реакции на нажатие кнопок — у Лендровера все тормозило, а у Тойоты нет, и заканчивая раскладкой клавиатуры — например на Лендровере какой-то умник догадался поставить все буквы от А до К на одной странийе, а остальные — на другой. При этом оба ГУ с винчестером, как положено. Про то, что в Лэндровере просто невозможно просмотреть обзор маршрута я уже умолчу.
          С этой точки зрения я уверен, что ГУ какого-нибудь хюндая будет лучше Лендроверовского и рено тоже будет лучше — так как они конкурируют в своих нишах, а вот тот, кто нацелен купить Лэндровер — он в пролете.


    1. dymanoid
      29.09.2016 18:27

      Всё, что вы описали, есть в моей машине 2010 года выпуска. И интернет, и приложения, и борткомпьютер, и красивый GUI, и ещё миллион вещей. Но цикл разработки в автомотиве, действительно, долгий. Два-три года. За три года мобильная отрасль, например, убегает вперёд очень быстро.


      1. benyamin
        30.09.2016 11:15

        о каком авто идет речь?


        1. dymanoid
          30.09.2016 12:35

          BMW 5 F10


          1. benyamin
            30.09.2016 12:57

            в NBT нет возможности проложить маршрут, точность карт явно уступает яндексу, нет информации о пробках и ДТП например. Спрашивается какой толк в штатной навигации, если обыденных и востребованных функций там просто нет…


            1. dymanoid
              01.10.2016 15:03

              Это в России так, возможно. Я живу в Германии, и у меня и пробки, и ДТП и прочая информация (животные на дороге, например) отображаются. Что значит — нет возможности проложить маршрут? А чем навигация тогда вообще занимается? Точность карт зависит от вендора карт, а не от системы. О чём мы вообще спорим?


  1. LennyB
    29.09.2016 16:57
    +3

    У меня вот в микроконтроллере стек uIP крутится, там есть функция uip_process — 1118 строк + 69 goto, а тут какие-то жалкие тойотовские 740 строк.


    1. csbs
      29.09.2016 17:25
      +2

      Светильником управляешь?


  1. Louter
    29.09.2016 18:17
    +1

    Было ба очень круто еслибы подобную проверку прошли _все_ автопроизводители. И публично, с открытыми для изучения публики индексами качества кода (пусть даже не исходниками, ценим ноу-хау и авторские права). Автопроизводители до последнего ничего не признают. А Джон, серийный программист, сидит и пишет дальше бажный код.


    1. springimport
      29.09.2016 21:24

      Не выгодно так делать, поэтому и не делают.


  1. RussianNeuroMancer
    29.09.2016 19:15

    Возможно, старт производства Toyota Mirai — не самая лучшая идея.


  1. IlyaChusov
    29.09.2016 19:58
    +2

    Тот случай, когда анекдот про серийного программиста отчасти становится правдой…


  1. noodles
    30.09.2016 10:09
    +1

    На видео, мягко выражаясь, обычные люди, которые с автомобилем на «вы». Почти уверен что просто перепутали педали, я на таких людей насмотрелся в своё время, их просто огромное количество на самом деле; им не то что автомобиль, им велосипед доверить нельзя.
    Проблему на самом деле можно решить на корню — ввести обязательную базовую контраварийную подготовку и только потом выдавать права. Человек с такой подготовкой на три головы выше чем шофёр даже с 30-летним стажем (час на курсах = одному году опыта вождения, приблизительно конечно).
    понапридумывают всякие гиковские теслы, что у людей складывается отношение к авто как к смартфонам… с ужасом осознаю что мой ребёнок/внук уже может не застать того кайфа бензинового двигателя, механики и заднего привода)


  1. dzikar
    30.09.2016 10:09

    Неконтролируемый разгон машины, должен пресекаться самими системами автомашины. То есть многие параметры должны считываться. Та же педаль газа (электронная), в некоторых машинах связана со своим контроллером который следит за конечными значениями и при выходе за параметры просто глушит движок (либо просто напоминает о неисправности (в ауди дизеле например двигатель начинает «порыкивыть»)). При этом любители крутить руль ногтём мизинца, резко обнаруживают что даже мизинцем трудно провернуть руль (на низких скоростях, на высоких разницу не увидите), а педаль тормоза станет не пуховой подушкой, а из конского волоса, что не ухудшает безопасность однако. Например в электрокаре. Проверяется потребляемый ток, скорость в широкой временной выборкой, ускорение, и многие другие параметры (даже системы типа ESR и ABS оснащаются понять что педаль то не нажата датчиками ускорения), которые обнаружат самопроизвольный разгон если педаль не нажата (в самом простом случае в педали два переменных резистора и их хватает с лихвой). Защитится же от зависания, также позволяют силовые микросхемы с шиной данных и другая мишура.
    Например завис центральный процессор, микросхемы не получая обновлений, просто сбросятся в начальное положение. Однако когда в машине множество управляющих блоков, связать их трудно, те же данные сигнала положения педали из блока 1 по пути в блок 2 могут наполниться мусором, либо ещё что. и не важно, есть проверка или нет на валидность. Сам лично видел как пару машин заглохли когда в трёх метрах от них жахнула молния, ну а траллик дальше никуда так и не поехал, хотя новые иномарки уехали, хоть и не сразу. Траллику помогло только отключение питания, после чего техпомощь уехала по своим делам а траллик в парк укатил своим ходом.


  1. rakozawr
    30.09.2016 10:10

    Дважды встречал подобное на Toyota Auris 2008 года, думал педаль подклинило, а оно вот как оказывается. Видимо не такой уж и редкий баг.


  1. ainoneko
    30.09.2016 11:48
    +2

    Слайд 14: там ещё и чёрный ящик может врать про то, что водитель нажимал. Прелестно.


  1. FatalStrike
    30.09.2016 11:48
    -1

    Программисты разрушат мир.


  1. dro1d
    30.09.2016 12:10

    Просмотрев видео в посте возник вопрос: некоторые проезжали целые кварталы на полном ускорении, прежде чем сталкивались. Неужели никто из них не мог догадаться выключить зажигание?)


  1. fetis26
    30.09.2016 12:38

    Кто пояснит в чем проблема с одинаковыми именами переменных в разных скоупах?


    1. lingvo
      30.09.2016 13:51

      Тут немного преувеличили, сказав, что 81514 нарушений — это ошибки в коде. На самом деле это потенциальные баги, которые, например, при компилировании определенным компилятором могут привести к неправильному исполнению этого кода на конкретной платформе.
      Вот и со скоупом переменных — теоретически это не баг, но возможно какой-нибудь компилятор при какой-нибудь опции захочет это дело как-то оптимизировать.


      1. fetis26
        30.09.2016 14:42

        Я слабо себе представляю компилятор, котор начхает на скоуп.


        1. lingvo
          30.09.2016 15:58
          +1

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


  1. DigMan
    30.09.2016 13:14

    Глубоко убеждён, что 90% этих аварий можно было избежать имей водитель больше опыта,
    тормоза способны остановить машину даже на полном газу, даже при полном отключении системы усиления тормозов, вообще давно напрашивается введение в программу подготовки водителей нештатных ситуаций,
    а может даже и сдача обязательного экзамена по ним, как например, отказ одной из систем авто, вождение на льду, и.т.д. ведь теория не в состоянии подготовить водителя к этому, многие действия должны быть отработаны рефлекторно, я лично на себе пробовал, первые 2-3 попытки при заносе нога рефлекторно жмёт тормоз… хотя и прекрасно знал, что нужно делать, только после нескольких попыток получается сделать занос управляемым, впоследствии в реальной жизни дважды уходил от столкновения благодаря этому опыту.


    1. ArmorDarks
      01.10.2016 04:35

      Писали выше. Проблема в том, что педаль тормоза в это время, скорее всего, не работала, либо не реагировала должным образом.


  1. zhylin
    03.10.2016 12:09

    «Рич Кук, писатель-фантаст»
    что он написал?


  1. imater
    04.10.2016 20:20
    +1

    Господа, прошлый исполнитель подвёл, нужно за пару недель написать систему защиты реактора, кто возьмётся?


    1. MacIn
      05.10.2016 15:45
      +1

      Если на VBScript, то я могу.


      1. vbif
        05.10.2016 16:46
        +1

        Без разницы на чём, хоть на брейнфаке, лишь бы к дцатому числу было готово.


  1. Keroro
    06.10.2016 08:56

    Во всей этой истории мне нравится единственный момент-всё же история получила огласку, привлекли независимых (и известных эмбеддед-публике) экспертов, обнародовали выводы. А у нас, упадёт какой-нибудь Фобос-Грунт, всё спишут на космические лучи, и на этом всё.