Pull to refresh

Comments 126

UFO just landed and posted this here
Если учесть, что это Газель, то лучше всего подошел бы Carmageddon
Не факт, что это наши программисты — софт для приборных панелей могут писать совсем другие фирмы.
Ну, а как тогда «наш человек» смог найти способ ее запустить? Знакомые за рубежом у водителя ГазЕли… как-то маловероятно. В то, что он сам нашел эту комбинацию я не верю.
Наши могли конфигурировать готовую прошивку приборной панели под Газель и обнаружили это. Хотя, да, может, и наши.
Так очень просто: нашему программисту (или не программисту, но к IT человеку близкому) рассказал об этой штуке зарубежный знакомый. У программиста не было своей газели, но у одного из знакомых — нашлась. Вот он знакомого и позабавил забавной фичей. В такую комбинацию вы верите?
я верю что нормальные програмисты если б и делали вход в игруху то на заглушенном моторе!
Гм… то есть данную прошивку делали ненормальный программисты, а значит — российские? Я правильно понял ваш комментарий? Или что вы пытаетесь сказать?
Я верю что в россии тоже есть нормальные программисты. как и в то что за рубежом на аутсорсе — попадаются вот такие распиздяи но как правило распиздяи выигрывают тендеры на разработки только у нас в стране а вот зарубежным распиздяям намного сложнее пробить стену взяток от внутренних распиздяев. вот так вот ;)
ГАЗ не госкомпания. Не, не скажу, что совка и распиздяйства там нет (хоть я там и не работаю, но живу в НН и могу представить), но все-таки в коммерческих конторах градус неадеквата при закупках все-таки ниже.
но как правило распиздяи выигрывают тендеры на разработки только у нас в стране а вот зарубежным распиздяям намного сложнее пробить стену взяток от внутренних распиздяев. вот так вот ;)

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

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

заведенный двигатель повышает или понижает уровень потенциальной опастности аварии? Если б двигатель был заглушен — потенциальных опасных ситуаций с пытающимися включить тетрис было бы больше или меньше? понижение кол-ва смертельных случаев на 2% для вас мелочь или нет? не стоит пренебрегать «требованием» для запуска любой фенечки — заведенным двигателем. ещё бы передача чтоб была включена — вообще шикардос был бы.
Ну, всегда можно придумать более безопасный вариант чего-то — нет предела совершенству. Но в данном случае ваши 2% явно высосаны из пальца.
Давайте еще вспомним историю про хакера, добавляющего в солонку цианистый калий. Не надо доводить до абсурда.
я о том что когда двигатель заведен, водила не должен касаться органов управлений коробкой передач. трогание сцепления, набор оборотов… ну короче это дурость.
Если бы я хотел чтото запрятать в виде пасхалки — максимум требования что я смог бы себе позволить — включенное зажигание, обороты ноль, тормоз нажат. ну а дальше уже по вкусу
А как же вы забыли включенный ручник и пристегнутый ремень? Это же НЕБЕЗАПАСНО!!!!111 Вы хотите, чтобы люди пострадали?!!! А еще уровень заряда аккумулятора, ведь может заиграться водитель и не сможет завестись и уехать из заснеженной тундры и замерзнет!

Еще раз — всегда можно придумать «еще безопаснее». Но зачем доводить до абсурда? Пасхалка не обязательна для эксплуатации авто. Вроде как пишут, что вырубается при начале движения. Водитель, который ради игры в тетрис начнет движение и не заметит этого достоит премии Дарвина. Хотя я сомневаюсь, что хоть один кандидат появится.
собственно измени условие с заведен двигатель на остановлен двигатель и все в порядке. одно дело тесловская система автоторможения а другое — заводка грузовика отверткой в стартер. есть пределы необходимого минимума и есть «было бы лучше в 1 на 100000 случаев»
если вы не чувствуете между этим разницы — мне вас жаль.
Т.е. все-таки вы за то, чтобы в столовых открытые солонки не стояли. Понятно.
да я за то чтоб в мою солонку на столе никто свои яйца не макал! Я за то чтоб там стояли закрытые солонки с дырочками чтоб если кому и надо соли — потрясли дырочками над своими яйцами и вуаля — соленые яйца готовы! а соль как была чистой так и осталась!

Увы непонимание этих примитивных норм гигиены и приводит к отравлениям и порою целых детсадиков. Вот будут у Вас дети, будут они лежать в дольнице с жутчайшей кишечной инфекциейц — вот тогда и поговорим о том что понятно вам а что мне :)
Чтобы одно из условий было достижение скорости 100км/ч? )
Не. 88 миль в час, если вы понимаете о чем я)
Тогда будет пасхалка «перемещение ко времени создания тетриса» :D
… изобретённая в СССР Алексеем Пажитновым и представленная общественности 6 июня 1984 года.

Вы знаете, таки чуть-чуть не сошлось, всего год разницы :D
Еще вчера думал что разговор про дату создания тетриса и то что вы ошиблись, но случайно вечером посмотрел «Назад в будущее», и там, для того чтоб заработал генератор потока, надо разогнаться до 88 миль, и тут сразу стало на свои места. Совпадение… (с)
UFO just landed and posted this here
Перемещать и вращать фигурки не рычажком а сразу рулём. На скорости да.
Возможно, где-нибудь в бескрайних степях Монголии или саваннах Африки даже найдутся люди, которые скажут спасибо за такую фичу.
UFO just landed and posted this here
классический пример. это обычное ограничение — выделили два байта по привычке написав unsigned int вот только для арм проца это 4 байтное целое 4294836225 а для всяких атмег и прочих 8-16 битных процов — это 2 байта. тоесть 65535 максимум.

На них люди быстро привыкают писать uint16_t или U16 (почему-то эмбеддеры любят определять типы U8, U16, U32).

Keil uVision 5.24.2
MDK ARM
stdint.h
#define __ARMCLIB_VERSION 5060034
/* exact-width unsigned integer types */
typedef unsigned char uint8_t;
typedef unsigned int uint16_t;
typedef unsigned int uint32_t;
typedef unsigned __INT64 uint64_t;

как видим — разницы между uint16_t uint32_t нет :) быдет всеравно 32 бита
Это вредительство какое-то. Типы uintXX_t по назначению (и даже по комменту в коде выше) exact-width unsigned integer types.
uint16_t должен иметь длину 16 бит, в отличии от менее ограничивающих типов uint_fast16_t uint_least16_t.
собственно дальше то же самое :)

 /* 7.18.1.3 */

    /* fastest minimum-width signed integer types */
typedef   signed           int int_fast8_t;
typedef   signed           int int_fast16_t;
typedef   signed           int int_fast32_t;
typedef   signed       __INT64 int_fast64_t;

    /* fastest minimum-width unsigned integer types */
typedef unsigned           int uint_fast8_t;
typedef unsigned           int uint_fast16_t;
typedef unsigned           int uint_fast32_t;
typedef unsigned       __INT64 uint_fast64_t;
А по поводу fast int типов могу предположить, что использование 32-битного числа на 32-битном микроконтроллере просто быстрее (потому и fast называются). И здесь умышленно все типы, кроме int_fast64_t и uint_fast64_t, имеют размер 32 бита.

К сожалению, любые комментарии к этому коду попадают под 282 статью.
Что ж за день-то такой? В соседней теме #define sprintf printf в хедерах, вы это выкопали...

да я сам в шоке был когда оптимизировал работу на медленном stm32f100 при работе на внешнюю срам — оказалось что побоку как обьявить переменную адреса 16-тибитную. что uint32 что uint16 что int — работало одинаково тормозно. когда раскопал — сам офигел… ну а приписка short — прекрасно компилятором понимается и удалось с 3.2 мегабайт в секунду поднять скорость до 4-х!!! это неипический ап :) нашару… просто потому что ктото чтото написал в хедерах…

Когда просто быстродействие — ещё туда-сюда, но это ж может сломать передаваемые данные.

это может сломать всю логику если уверен что у тебя 8 бит а туда может влезть больше :) например на кольцевых буфферах я часто делаю 8 битную переменную и не проверяю на конец… я точно знаю что после 255 +1 будет 0 а не 256 257 и т.д. и уже вылет за пределы массива :) Весело в общем ага.
Сейчас посмотрел на двух версиях (5060019 и 6060003) данной библиотеки для Keil MDK ARM.
И в этих версиях написано следующее:
typedef unsigned          char uint8_t;
typedef unsigned short     int uint16_t;
typedef unsigned           int uint32_t;
typedef unsigned       __INT64 uint64_t;

Я бы поостерегся давать оценку нормальности-ненормальности программисту, который не знает, какого размера int на платформе, под которую он пишет.

теоретически может быть что угодно, но более очевидно, что "наши" как минимум, участвовали в разработке. зачем искать лишние сущности :)

UFO just landed and posted this here
Но факт, что наши программисты могли искать возможность «скрутить» пробег и найти интересный код. Машины уже появились на вторичном рынке.
Наши. Я знаю человека, который это написал.
Спросите у него а реально ли нужно поднимать обороты за 2000? может и не надо заводить мотор?
Можешь сам спросить, он ниже пишет.
Ну, вообще-то софт делался целиком в России, в г. Владимире. И алгоритм запуска игрушки проще. Для запуска нужно выполнить только пункты 6 и 7. Это я как автор «пасхалки» подтверждаю.
А выход их неё предусмотрен?
И вообще, странно это. Получается, что если во время езды по трассе, например, зажать влево, то включиться тетрис? Это вполне можно сделать и не специально.
При наличии сигнала скорости либо выключении зажигания игрушка закрывается. Так что в движении в нее не войти.
UFO just landed and posted this here
Отчасти. В процессе разработки драйвера дисплея нужно было его хорошенько потестить. А как заставить кого-то смотреть на дисплей с цифрами не отвлекаясь? А потом как-то жалко стало выкидывать этот кусок кода и проверочный тест стал «пасхалкой».
О! Спасибо! Я в Вас верил до последнего… даж минус схватил от защищающих вас :) Тоесть поднять обороты выше 2-х это необходимое условие? :) логичнее было бы заменить на реально 4 раза подряд правый поворотник.смущает меня что двиг должен быть заведен :)

И Вы таки из России? :) А кто одометр на инте сделал до 65535 километров не вкурсе? Не закинете ему кейс на пофиксить? делов-то на минуту со вспоминанием имен переменных :)
Таки из России :)
Когда я пришел это всё писать, предыдущий разработчик уже отсутствовал. Человека, который полностью разбирался в проекте не было и связаться с ним было невозможно. Проект в итоге был полностью переписан, ибо в первичной архитектуре уже было наставлено много костылей и масштабировалась она с трудом.
По поводу инта повторюсь. У меня одометр 32-разрядный, но в серию эта прошивка пошла где-то 2-3 года назад и не сразу на все модификации. предыдущие прошивки — это совершенно другой проект, который, скорее всего уже умер. Точно сказать не могу, потому что я там уже года полтора не работаю.
Кстати, поменять даже один байт в прошивке на таких крупносерийных производствах — это не так просто, как кажется.
Это то понятно теперь становится… текучка кадров… угу…

Помнится был такой анегдот про три конверта… ххы… как никогда актуально
UFO just landed and posted this here
Или машина просто не рассчитана на такой пробег?

Использовали uint16_t — переполняется :)

UFO just landed and posted this here

Скорее по причине просто int, а процессор "внезапно" оказался 16-битным.

Вот она, хвалёная сишная кроссплатформенность. А писали б на Java, такой фигни бы не было.
Тогда бы было 32767 — int знаковый тип.

int в Java всегда от -2^31 до 2^31-1 вне зависимости от процессора или архитектуры.

А при чем тут Java?

Одометр или счётчик пробега? Я всегда считал, что одометр — это дополнительный счётчик пробега, который можно сбросить в любой момент кнопкой на панели. И нужен он для измерения пути на одной заправке, за поездку итд. У меня на механическом спидометре вообще у одометра 3 разряда под километры и один под сотни метров. Итого максимальный пробег, который может быть это 999,9 км.
Одометр — прибор для измерения количества оборотов колеса.
А уж как вы эти показания обрабатывать будете это уже другая история и другие названия.
Что одно что другое в вашем случае это показания одометра,
но манипулируете вы с ними по разному, одни оказания бережно храните, другие сбрасываете в удобный момент.
Почитал темы у газелистов — таки да. Сбрасывается как раз тот, который не должен -т.е. счётчик суммарного пробега. Причём не у всех. Прошивка исправленная уже есть год как минимум и люди, которые пробег сматывают, могут и перепрошить. (тонкости вроде того, что пробег ещё и в ЭБУ хранится тоже решаемы)
Возможно, речь идет о суточном одометре либо о старой версии ПО. Его значение и автосброс прописано в ТЗ. Под основной одометр используется uint32_t и считает он в десятых долях километра.
Любопытная пасхалка. Бюрократическая модель на колесах.
чтобы запустить тетрис на «ГАЗели», следует выполнить следующую последовательность действий
Один из пользователей жалуется, что не может выйти из режима тетриса

Fatality!
Мне вот интересно, сколько этот Тетрис памяти занимает? Т.е. у разработчиков панели приборов оказалось очень много незадействованной памяти и они решили туда Тетрис вкорячить?
Еще слышал, что при начале движения Тетрис выключается. Тут возник вопрос: он на паузу ставится? Продолжить игру после остановки можно?
Данный код может занимать совсем немного от общего объёма памяти.
Я когда-то написал Тетрис (даже с заставкой) для МК-85 с килобайтом памяти. Правда, там программа была на бейсике, при этом каждый оператор кодировался одним байтом.
Да мало он занимает. Если уж в электронные сигареты суют (в кастомные прошивки) одновременно с Flappy Bird.
Я как-то тетрис в MBR встроил, получилось забавно, но места под код поиска загрузочного раздела уже не хватило.
Мультиплеер реализован, интересно? Для пробок.
Так и представляю, как в пробке один водитель маршрутки кидает в окно другому OBD-II кабель и кричит: «А без читов обыграть слабо?»
исправить ошибку на электронном одометре, который обнуляется каждый раз при достижении числа в 65535 км
одометр-мечта перекупа однако :-)
Это не баг, это фича :)
Не обольщайтесь, это глюк приборки, а не мозгов внутри. В мозгах все равно будет спрятан нормальный пробег.
При продаже машины где-нибудь на авторынке в мозги всё-равно никто не полезет.
Надо чтобы включался сам, когда бензин закончился, как в хроме когда интернета нет, появляется динозавр.
Это лучше на троллейбусы ставить, чтобы запускалось, когда штанги опущены, а «газ» нажат.
«У меня тут газель какую-то хрень на приборной панели показывается и не заводится..»
Это обучающая программа для грузчиков. Чтобы поплотнее груз паковали.
Только я один вижу на видео, как вначале на месте тетриса отверстие, а при в включении оно заполняется неким экраном? Или это все настолько очевидно, что про это даже никто не пишет?
Это настолько очевидно, что никто не отвечает, но всё-же:
это просто блики освещения на выключенном эране.
UFO just landed and posted this here
моя вазовская четверка так на луну улетела, вот только комбинацию забыл

На ней надо миллион очков набрать, тогда мультик покажут!

Вот вы тут шутите, а у меня от этого брат умер мне, между прочим, пару лет назад предлагали за 20 или 25к грн (я тогда загорелся идеей купить корыто, "шоб не жалко" поучиться ездить и гонять на нем по магазинам да на рыбалку) довольно таки уколхоженный Ланос, еще не запорожец, а то ли лях, то ли кореец. Дык мне честно сказали, что там одометр миллион взял и на второй круг пошел)
А на четырке, если память мне не изменяет, миллион очков не взять ибо там счетчик пятизначный.

Слишком большая последовательность. Есть короче.

Вспоминается "Тетрис", который кто-то из моих однокурсников видел на военных сборах — на оборудовании, имевшем отношение к обслуживанию "Тополей". Надеюсь, этим комментом я не нарушаю подписку о неразглашении, всё-таки больше 20 лет прошло :)

  • Включить зажигание;
  • Завести автомобиль;
  • Трижды включить сигнал правого поворота;
  • Два раза включить дальний свет;
  • Пять раз выжать сцепление;
  • Увеличить объем оборотов двигателя до 2000.
  • Когда измеритель скорости вращения покажет нужную цифру, зажать стрелку налево.


  • Объяснить подошедшему гаишнику, что за странные действия вы производите
  • Попытаться отогнать его от игры
Теперь можно в пробках залипать не только в телефоне
Не верю!
Такую последовательность случайно не обнаружить, а если вдруг, случайно один раз запустить, вероятность повторить минимальна, а уж записать обнаруженную последовательность это из ряда фантастики…
Интересно, а есть ли датчик какой на сцеплении, есть ли смысл его нажимать. Если датчик есть — то для чего знать выжато ли сцепление?
С большой вероятностью на сцеплении стоит концевик. Если машина заглушена на передаче, то выжав сцепление бортовой компьютер разрешит запуск двигателя.
Также возможно, что на первой передаче при выжатом сцеплении теоретиечски можно немного обогатить смесь для более легкого старта движения.
Например при выжиме сцепления — отключать круиз контроль(на BMW e46 так работает)
Также небольшой тюнинг в работы ЭБУ двигателя. В частности обрубает подачу топлива при езде накатом, но не обрубает при выжатом сцеплении(иначе мотор заглохнет)
Помощь не опытным водителям при начале движения(подкидывает обороты при определенных условиях)
Ох сколько в одно время было срача по поводу «обрубает подачу топлива при езде накатом», причем рьяно убеждали что движение накатом с включенной передачей не экономит топливо.
На автомате тоже работает если выше 1500об/мин, правда это бывает довольно редко.
я тут тоже пару раз сталкивался с подобным спором. Люди приходили в ужас когда я показывал нули на бортовом компьютере при езде накатом
И на такое находили аргументацию «опытные мотористы», якобы нигде в топливных картах не прописаны нулевые значения. Как всегда, некоторым доказывать бесполезно)
Там защита от дурака, без выжатой педали сцепления или положения МКПП в нейтрале, двигатель не заведётся.
Специально проверил:) точно не для этого.
А для чего? Каюсь, у меня не ГАЗель, а Ниссан, там для этого. Можно смело поворачивать ключ, старт движка будет только при выжатой сцепе, можно даже сначала повернуть ключ, а потом педалировать.
У меня даже казус был с этим. Я сам все машины на выжатой сцепе завожу, поэтому пригнал из салона, хвалюсь другу. Он сел — не жужжит, ё-моё, сломалась, сажусь — заводится, он опять садиться — тишина. Потом допёрли, в чём дело.
Пока я нашел только влияние на отмену круиз-контроля при выжиме сцепления
Как тогда заводить накатом\толкачом?)
Скорее всего, блокируется только включение стартера. Иначе может быть проблема, как отличить это от торможения двигателем.
Ага нашли, слил кто-то. Эмбеддерам респект.
UFO just landed and posted this here
На очень многих машинах есть так называемый блок комфорта в который сведены управление всеми лампами, сигналами, дворниками и т.п. И если раньше при выходе из строя реле поворотников достаточно было заменить просто реле, то теперь дилеры меняют целиком блок, который стоит совсем других денег
Сейчас дешевле CAN-устройств на микроконтроллерах распихать по всей машине, чем тащить километр проводов :)
>> зачем там усложнение с бортовым компом?

Например, для того, чтобы попищать, если вы фары не выключили. Ну или там, чтобы автоматически включать головной свет при запуске двигателя.
Ну и отображение. Если у вас панель приборов подключена по цифровой шине (думаю, с вероятностью 99,9% так и есть), то, чтобы зажечь на ней индикацию сигнала поворота или включения фар, БК должен знать о факте их включения. Вообще этих связей очень много может быть, так что завести все через компьютер — наоборот, проще. Плюс, для разных комплектаций можно ставить одинаковый жгут из небольшого количества проводов.

Катушки релюшек — просто нагрузка для выводов компьютера, чтобы не коммутировать внутри него большие токи. Так что они все равно будут щелкать
лучше исправить ошибку на электронном одометре, который обнуляется каждый раз при достижении числа в 65535 км
— Увы, чтобы поместился тетрис, пришлось слегка уменьшить размер используемых переменных…
Здорово! Осталось дождаться когда на газель портируют скайрим.
Sign up to leave a comment.

Other news