Maxon1989

Maxon1989

На Пикабу
поставил 32 плюса и 2 минуса
Награды:
5 лет на Пикабу
759 рейтинг 53 подписчика 48 подписок 10 постов 4 в горячем

Записки диагноста-теоретика. Пишу ПО для автодиагностики на Android. Часть 2. Читаем данные с датчиков ЭБУ

Здравствуйте

В прошлой версии я сделал подключение к ЭБУ двигателя с автоматически подбором протокола обмена с ЭБУ двигателя для чтения и сброса ошибок по протоколам стандарта OBD2 (iso15031-5).

Записки диагноста-теоретика. Пишу ПО для автодиагностики на Android. Часть 2. Читаем данные с датчиков ЭБУ Автодиагностика, Android разработка, ELM327, Приложение на Android, Авто, Разработка, Длиннопост

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

Записки диагноста-теоретика. Пишу ПО для автодиагностики на Android. Часть 2. Читаем данные с датчиков ЭБУ Автодиагностика, Android разработка, ELM327, Приложение на Android, Авто, Разработка, Длиннопост

Так вот, при успешном сбросе ошибок ЭБУ, показывается межстраничное объявление. Судя по соотношению запросов показов объявления в чтении кодов ошибок и запросов показа объявлений при успешном сбросе ошибок, около 75% пользователей, читающих ошибки,  успешно сбрасывают CheckEngine. Значит можно с определенной уверенностью считать, что протокол подбирается приемлемо, но ещё есть куда стремиться (напишите мне, пожалуйста, если у вас не получилось считать или сбросить коды ошибок, с указанием марки и года выпуска авто, я постараюсь узнать, какой протокол обмена должен быть, чтобы успешно выполнить операцию).

Теперь я добрался до чтения параметров с датчиков ЭБУ двигателя.

Давайте сначала немного окунемся в теорию для понимания процессов диагностики по OBD2.

Если рассматривать компьютерную диагностику, как набор так называемых «сервисов диагностики», можно выделить нужные нам для чтения ошибок, их сброса и получения расчетных значений параметров. Эти «сервисы» можно в свою очередь упрощенно разделить на связанные с выбросами в атмосферу (OBD2) и не связанные с ними (UDS).

Сервисы OBD2 для чтения ошибок:

0x03 — запрос кодов ошибок, состояние которых подтвержденно в течение определенного времени при определенных условиях;

0x07 — запрос кодов ошибок, состояние которых еще не подтверждено (нужно для проверки устранения неисправности после сброса ошибок, здесь код появляется почти сразу и обычно не отдаёт команду на включение сигнализатора CheckEngine, пока не перейдет в разряд подтвержденных);

0x0A (поддерживается не во всех реализациях протокола OBD2) — запрос кодов ошибок, которые сохранены в постоянной памяти. Их невозможно стереть из памяти с помощью сервиса сброса ошибок. Только алгоритмы блока управления могут определить, что неисправность устранена и автоматически удалить ошибки из постоянной памяти.


Сервис OBD2 для стирания ошибок — 0x04.


Сервисы UDS для чтения ошибок:

0x19 – сервис для чтения информации об ошибках любого вида, уточнение характеристик читаемых ошибок происходит во втором и третьем байте посылки. Например 1902FF считает все ошибки, даже те, которые просто еще не прошли проверку и не подтвердятся после всех внутренних тестов ЭБУ.

0x17 и 0x18 сервисы тоже читают ошибки (не буду вдаваться в подробности, но там есть отличия между способами чтения). Например,  в реализации протокола KWP2000 в ЭБУ Январь 5 на ВАЗах ошибки читаются сервисом 0x18.


Сервис UDS для стирания ошибок – 0x14.

Также в некоторых случаях для этой цели используется сервис выполнения функций 0x31.


Аналогично есть сервисы для чтения параметров.


В OBD2:

Сервис 0x01 - предназначен для чтения данных, связанных с токсичностью отработавших газов. Во втором байте запроса передаётся идентификатор параметра (PID), который указывает системе бортовой диагностики в ЭБУ об информации, которую нужно передать диагностическому оборудованию. Идентификаторы запросов для этого сервиса в большинстве случаев стандартны и только некоторые отданы производителям для нестандартных параметров.


В UDS:

Сервисы 21 и 22 позволяют считать данные по однобайтовому или двухбайтовому идентификатору. Идентификаторы в большинстве определяются производителями и только некоторые вроде чтения VIN или параметров версий прошивок стандартизированы.

Итак, сервисы UDS конечно хороши, но для их использования нужно знать адреса блоков и идентификаторы. А эту информацию я пока не нашёл. В OBD2 же адресация блоков управления стандартизирована.


Но и по протоколу OBD2 можно прочитать много параметров через сервис 01, правда поддерживаются они на каждом автомобиле в разном составе, и пока я реализовал чтение основных датчиков, которые были в реализации библиотеки obd-java-api. Это такие параметры, как скорость автомобиля, обороты двигателя, температура охлаждающей жидкости, положение педали акселератора, температура на впуске и т.п. Проверка доступных на проверяемых авто датчиков пока не реализована, но в следующих версиях планирую добавить. Это позволит не выводить датчики, которых нет в реализации протокола ЭБУ.

Записки диагноста-теоретика. Пишу ПО для автодиагностики на Android. Часть 2. Читаем данные с датчиков ЭБУ Автодиагностика, Android разработка, ELM327, Приложение на Android, Авто, Разработка, Длиннопост

Мне очень важно, чтобы на этом этапе было гарантированное считывание хотя бы скорости, оборотов и температуры охлаждающей жидкости, так как, если они будут на большинстве автомобилей, то можно на их основе сделать виртуальную панель приборов на OpengGL. Наработки в этой части уже есть на Linux, теперь нужно перенести на Android и вперед. Картинки не мои, но хочу примерно так же)

Записки диагноста-теоретика. Пишу ПО для автодиагностики на Android. Часть 2. Читаем данные с датчиков ЭБУ Автодиагностика, Android разработка, ELM327, Приложение на Android, Авто, Разработка, Длиннопост
Записки диагноста-теоретика. Пишу ПО для автодиагностики на Android. Часть 2. Читаем данные с датчиков ЭБУ Автодиагностика, Android разработка, ELM327, Приложение на Android, Авто, Разработка, Длиннопост

Можно конечно идти по пути Torque, CarScanner или ObdMary и делать кастомизируемые наборы стрелочных или цифровых приборов, но мне пока проще сделать не настраиваемую приборную панель, потому что её я уже делал раньше.


Пишите в комментариях, пользуетесь ли вы наборами цифровых или стрелочных приборов в программах диагностики или чаще просто графики смотрите или просто читаете и стираете ошибки?


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


Чтобы вам не мешала реклама и ограничения бесплатной версии, отдаю 50 промокодов для тех, кто хочет поэкспериментировать:


1) XEMJF1CRC58X2JUU5SPF6K8

2) THPTPYPUPVAAAMWVUG6T013

3) G70DNH65YT53P2EYAPRL9GD

4) ERYEVGV8DK8LXS5WBGZ0ZDJ

5) YZX5X6A091X5GLK4QN31TEV

6) XSM32WUHVVD8CTQHLKBYMJV

7) HC4Q2Y31DCVM3WXA15K8C6S

8) TMLX0V9M7VXVG9YA6PZ2ZUD

9) KCLACCJSKS5GDAJZHF3BMZS

10) P53MMB19EKXAD92C54RZ759

11) KQ2CMV53NN3QQGRV2D1PNXZ

12) RXZGKPQF1C27W4SJ8TY0UXX

13) UL0DW74F0LJ195A86TNHYZW

14) LSJV04R64V5ZNR87YKX0126

15) VT7SHKKS1A4HG89H1QY5ERN

16) 7GTV74B6CUR2V3AR9L3V14P

17) XH3TVY3T3W4KDRA220K53JS

18) BGJQNUC9H1CLD74S7SXW5MD

19) AYB3GWX5039U8R9HLZY8E01

20) RAYUGZY9W7UT85M8HZVRBA1

21) ZJ7GV49UCD98GLY3LF5H891

22) 67PM2ALY8JS8GY0KZU4WP74

23) TN3MNQFWVELHCV4HNRVTJCL

24) Z79XSNZRV3R6NFSCT9FMT7U

25) YHZE3XTX5RYQ7L209L89LRZ

26) VNG0CHB0PPQZL1MR8ZUUPJY

27) 0BBAHX4H1SXF127PAZU5CDF

28) DVUDJR9MKMDLABYTPUEL8XB

29) E3GYWZ7SCD2E77A33V6V7ST

30) PMUL8SMBNV5X7ETRCNYCTK2

31) UGY0TER6DY9YYKABNJ9FC2N

32) WZVRLMYXPV9WP1FH7CTDSFF

33) ARAF8NS4GCKPRQ7A2D0PH64

34) KCF2RYSWRX7N6L8A3FNNT9A

35) F7MT0VBL1D7ELE9EK0NQWYX

36) M905DK2RFDAY2WR0HDZK302

37) UGSLS7APDZZ5RT7MVKFGZSM

38) C44FS650P9FLYBGC1FPL3MA

39) XQX1C9SV9916Z5CBGW9L85J

40) PKW5E7GMGNVD869WZXXS543

41) 2RMY7ZM9UNRV81C0164XKQE

42) JXW55HJTCBMMK33W023D6N3

43) 61NX60PJBS9827XY0Y1MMTP

44) BDTJMETFKC64GBPD7QFU990

45) F79QHFR91RCXV0Q5EDX4Y4G

46) SRHDK6WGXYTHBY241QML54X

47) 7FCBPJX1L8ZU5F4C53S0968

48) TSKMK2C1HBTG0HACRH5VPSH

49) 6NSPP6CG55FRC1H9UAM2UXQ

50) JYG0YGHULQC34TMX98XGWU1


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


Ссылка на приложение: https://play.google.com/store/apps/details?id=ru.wheelsoft.f...


Мой телеграм: https://t.me/Maxon205

Показать полностью 5

Записки диагноста-теоретика. Пишу ПО для автодиагностики на Android. Часть 1. Чтение и сброс ошибок

Здравствуйте


Как некоторые из вас знают, я уже второй год пишу программу для диагностики автомобилей для Android. В первой версии в программе были только расшифровки стандартных кодов, начинающихся с "P0" и "P2" и базовые неисправности автомобилей. Например:

Записки диагноста-теоретика. Пишу ПО для автодиагностики на Android. Часть 1. Чтение и сброс ошибок Автодиагностика, Android разработка, ELM327, Приложение на Android, Авто, Длиннопост

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

Записки диагноста-теоретика. Пишу ПО для автодиагностики на Android. Часть 1. Чтение и сброс ошибок Автодиагностика, Android разработка, ELM327, Приложение на Android, Авто, Длиннопост
Записки диагноста-теоретика. Пишу ПО для автодиагностики на Android. Часть 1. Чтение и сброс ошибок Автодиагностика, Android разработка, ELM327, Приложение на Android, Авто, Длиннопост

В конце ноября выпустил версию с чтением кодов ошибок с расшифровкой и их сбросом через Elm327 по Bluetooth. Но проверить в реальных условиях на большом спектре автомобилей не получилось, в итоге чтение ошибок оказалось работающим только для некоторых автомобилей. В основном только для тех, где протокол диагностики CAN (и то с лишними кодами C0300 C0700, которые в действительности отсутствовали в ЭБУ (моя оплошность, признаю)). Остальные читаться отказывались.

Но сегодня я выпустил новую версию, где реализовал поиск протокола подключения к блоку управления двигателем среди заданных 25, собранных из сотен вариантов строк инициализации для Elm327, которые удалось найти в интернете. Теперь "подключаемость" к ЭБУ должна быть намного выше.

Записки диагноста-теоретика. Пишу ПО для автодиагностики на Android. Часть 1. Чтение и сброс ошибок Автодиагностика, Android разработка, ELM327, Приложение на Android, Авто, Длиннопост

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

Сейчас я собираю информацию о том, работает ли новый алгоритм поиска протокола подключения в реальных условиях на автомобилях с нестандартными протоколами подключения, чтобы продолжать улучшать приложение. Поэтому мне нужна помощь автомобилистов - чтобы те, у кого протокол не нашелся, сообщили мне марку, модель и год выпуска автомобиля (по почте wheelsoftlab.tech@gmail.com или в комментариях к посту). А те,  у кого протокол нашелся указали в ответе дополнительно номер протокола из строки "Подключение установлено. (Протокол ...)" и удалось ли считать ошибки. Заранее спасибо!


Промокоды на ПРО-версию (без нее тоже можно читать и сбрасывать ошибки, просто с ней это будет без рекламы):

1)MU6QRXFWCFCN1DFC3GD1A9G

2)R7WPF80QMCSE168KLGFVFDV

3)9WTYLNT40V7FLAXBWZG1YNB

4)A2P4A6BSKXX7M3MSFCXQ07Z

5)JZHZN9NF12B62YMNZMKF00S

6)7R616L80WUV0KV2W0CP91TF

7)836S1ZCK0QDYZX0UUFUP2N4

8)FXD2J5AHQGFENKPTSF2BWXU

9)JX2EPJLGKKA0THWPHXXSYHY

10)4RCA5CTFY1L52L06Y6JJP0Q

11)7566ZYJHMLWWPJ13KC7LBK1

12)MHDH9E29AB9AKL6QBRPS6V6

13)NQ6EY7BY2WZ45GBDYSVKNPR

14)73CNMCGX4K0F6LRX3KNCX4R

15)WKLDS03NZD2D6V32NHBYPFD

16)PP7QF3NYJ3NMFJ6ZLXBR4TA

17)C970CQB46Y93YNYQ1BAGBA6

18)80UE4Z4RSLZ1TPMCQR6LLPV

19)CV9BVDCP926GB4VLLDFR38Y

20)KHY42UCWLHDJ9DYQ5VLUUA3

21)KDYMFHBWNT1Y0K5LUKW24WS

22)Y6B1JMUERHBFRJ8S4UGZG7X

23)YM2G3LPEXMXNRJ7RFY80971

24)27E4Q0WJC3DHX919H9CZBJY

25)ZSYYDUGMC7GX0109TR2XT64

26)4YPJZ7N3VQKDY9CSQA9JKN1

27)LL69Y13ZKF4U7FB04XADFDR

28)MEECL15X79XAWPHAJD4J00H

29)1SDTW8GGU9VLCEK4YTRJA51

30)BHPPTQ93JQASQAYA02TNX4E

31)HGJVT66HYU14XAKM5LZY3EA

32)FG735BHRG2Q8C29RFH444VM

33)RLA6D0A9TASSWEZGAS7NSTW

34)0QXSDGT60RM73BSV8KW18TK

35)2W1VB3ZFQHA3BJH8XVTR4FK

36)U2Y7QE8XYQDAMZGFQAPKXKG

37)Y9KARCW38KBRYZFKUW942J6

38)WZE3V3SPRTM3186ZCMGLVZU

39)V7T8DPWJV52S0T0XZL1VF05

40)9JNE74KYQ78XWEZCWQ37T0E

41)43DHVAZ9UKTGZC8NP9YUU9F

42)ZCYSN5GDLQ7ND8MQ12N4QQN

43)35BNSPP45YSN14BNTTBL3QF

44)Z9W4WRRCWTUT0GZ0AKWHWT6

45)RNB7HETHJ03LF6RUE5XCM9D

46)JH8L9J0KYM3YKBYXWJ82HRC

47)U67CH845KM2CH22NKU50T4U

48)6H2YDTCHD92R88M5J7P63U0

49)N68BESSWRYXJC8DF77AU923

50)2S9KNBG1BQSCRD6BHP84WM1


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

Если будут проблемы с активацией промокодов пишите на почту wheelsoftlab.tech@gmail.com

Для заинтересовавшихся вот ссылка на приложение: https://play.google.com/store/apps/details?id=ru.wheelsoft.faultsearcher

Показать полностью 4

Написание программы для диагностики авто как практика программирования на Java. Результаты года и планы

Здравствуйте.

Я разрабатываю приложение для поиска неисправностей автомобиля и расшифровки кодов ошибок его ЭБУ через elm327 (на данном этапе только по стандарту OBD2) на Android для развития навыков программирования на Java и здесь раскажу об итогах года и планах развития работы c elm327 в моем приложении.


После релиза я обещал выложить пост о продвижении приложения, ведь мало его создать, нужно еще и продвинуть как-то, чтобы его начали скачивать. После публикации на Пикабу в первый день было 30 скачиваний, затем некоторый провал на пару недель по два три скачивания в день и уже начали опускаться руки, от того, что никому это приложение не нужно, но потом после обработки алгоритмами GooglePlay приложение начало индексироваться и искаться в поиске по запросу "Расшифровка кодов ошибок". Сейчас приложение стало уже выходить на первых позициях в поиске по этому и подобным запросам. Денег на рекламу и мотивированные установки я пока не тратил ни копейки.

Написание программы для диагностики авто как практика программирования на Java. Результаты года и планы Автодиагностика, Android разработка, ELM327, Приложение на Android, Авто, Длиннопост

За год удалось заработать 100 долларов, мало конечно, но для начала достаточно.

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

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


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


И нашел! Библиотека obd-java-api (разработчик Pires) позволяет работать с bluetooth адаптером elm327 для взаимодействия с ЭБУ автомобиля. Интегрировав эту библиотеку в мое приложение, я получил возможность читать коды ошибок OBD2(система бортовой диагностики для систем, связанных с токсичностью выхлопных газов) попутно расшифровывая считанные коды ошибок, а также сбрасывать ошибки, связанные с токсичностью выхлопов и гасить лампу CheckEngine.


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

Написание программы для диагностики авто как практика программирования на Java. Результаты года и планы Автодиагностика, Android разработка, ELM327, Приложение на Android, Авто, Длиннопост

Что же дальше?


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


Во-вторых мне нужно добавить пользовательские строки инициализации Elm327, чтобы обеспечить чтение автомобилей с переходными протоколами, на смену которым пришел стандартизированный OBD2. Эти строки конечно уже есть во многих программах диагностики авто на Android, но мне интересно разобраться в этом на практике. В основном отличия в адресах ЭБУ двигателя и тестера, и обмене на уровне адресов блоков, а не функциональном адресе OBD2 по умолчанию в Elm327;


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


Первый вариант - чтение кодов ошибок как можно большего количества блоков управления (доступных для чтения при стандартной распиновке модуля elm327) по протоколу UDS, а также сброс этих ошибок.

Для этого нужно каким-то образом найти адресацию запросов и ответов специфичных ЭБУ (для Renault я нашел много информации для размышления в Ddt4All, а вот на другие марки пока не получается найти (есть противоречивая информация по адресации блоков для BMW и VAG));


Второй вариант - чтение стандартных и нестандартных параметров (так называемых PID) с построением графиков. Правда добавлять кастомные csv файлы с PID как в Torque мне пока не по зубам, но запрограммировать максимальное количество наборов PID для разных моделей авто попробовать можно.


Сейчас у меня 75% пользователей, установивших мое приложение, почему-то удаляет его обратно, надеюсь этот показатель изменится в лучшую сторону после внедрения нового функционала..


В честь начала декабря и приближающегося нового года раздаю 31 промокод на ПРО-версию без рекламы и с возможностью делиться результатами расшифровки группы ошибок и поиска кодов ошибок через Elm327:

1) ZTD6GVFC7CGJQVVUW613LXV

2) SCF2180DG7FU5RTUTCKM0FV

3) 5KLL4PEJZVGJW9ZQSAEHER5

4) T4DXA32Y22NUHZQ3ET5145S

5) CTFC8JDGSZ4B6F667CC3QUA

6) 5D5S2YQ09XQK9LD7QR6HTUR

7) 2MQ9F7NZ85HBA44B4AQNPAM

8) 21LKGHQRFN7W0CP97SAQZGJ

9) 361EHRR1U7RUTMH0UDT18ZY

10) K3SD9AK4B7BE3A9NQEQ5GWY

11) 11FJ3YZQBZZW7LN4CPWT6Q7

12) H95TXKLX9RJP72W0S38G7LX

13) RHKSF35HBH4J36UTRDF0FW5

14) AF2CFTPK2ZYGF3Z61251DQP

15) HLUPZ4G7SJH2UJG452BSX29

16) 9HA0WCXXWMUKTMSVCT3RJV0

17) CSDZAZZD2WYDCS0MNNK63ZT

18) 91EASHV9WD9JPJPL8YMMAAF

19) 53L1RYKWWQV36PWEYG4BZA2

20) TGTY9HAALMXQT8SEC27R2SE

21) S57GQ9U8G8QC2WA5FSYKJYM

22) S21JT8ZEVZNPCRNTTZDEU2A

23) 2PBVJE2UYR1JM02R3LUM0YP

24) WP5V2R3TNP3TVVG24T2LALU

25) JF4Q77VXEZKUXR51W8EXUEA

26) 58XCRAJRW0Z5PYVH9J29M3A

27) BRT34K0C5G1KKKB00NPWT3V

28) 1A0KP8HVWFP7K6G95XC19NL

29) X8PBXVAG3GB2GM1UEJKNP85

30) GB5RR0RAXL64DG9KS86SBEW

31) TSTC0710SG9MMLWJU8N2CJ6


Просьба отписываться в комментариях о том, какой номер промокода вы использовали.


Если будут проблемы с активацией промокодов пишите на почту wheelsoftlab.tech@gmail.com


Для заинтересовавшихся вот ссылка на приложение: https://play.google.com/store/apps/details?id=ru.wheelsoft.f...

Показать полностью 2

Как вы ищете неисправности в вашем авто и пользуетесь ли программами любительской диагностики OBD2?

Здравствуйте.

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

Мне интересно узнать:

1) С помощью каких приложений вы расшифровываете коды ошибок OBD2 и все ли в этих приложениях вас устраивает?

2) С помощью каких приложений считываете коды ошибок?

3) Пользуетесь ли программами диагностики с помощью ELM327?

4) Если пользуетесь, то смотрите ли на графики параметров или просто считываете коды ошибок и после их исправления сбрасываете?

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

Реклама компьютеров из журнала "LAN" за 1996 год

Реклама компьютеров из журнала "LAN" за 1996 год Реклама, 90-е, Windows 95
Показать полностью 1

Если бы программисты строили дом

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



1.03. Ура! Нам предложили крупный контракт на постройку 12-этажного жилого дома. У всех бурный энтузиазм. Выпили на радостях 2 ящика пива.


2.03. Заказчику не нравится выражение «как только, так сразу». Требует назвать конкретные сроки. Темный, ничего не смыслит в высоких технологиях.


3.03. Обсуждали сроки. Выпили 3 ящика пива. Петрович говорит, что тут всей работы на 4 месяца. Значит, на самом деле 8. В итоге в контракте записали 12, хотя раньше, чем за 16, вряд ли управимся.


6.03. Петрович пошел сдавать бутылки.


8.03. Отмечаем 8 Марта. Женщин у нас в фирме нет, так что праздник никто не портит.


2.04. Петрович говорит, что пора начинать работать. Сговорились они, что ли? Обнесли площадку забором и повесили красивые плакаты «Строительство ведет компания «Аllstrоу» (www.аllstrоу.ru)». С чувством выполненного долга играем в Quаkе.


20.04. Пришел заказчик, интересовался, как дела. Посадили его за Quаkе и позволили нас всех обыграть.


21.04. Обсуждали проект. Сидоров предлагает крупноблочную архитектуру. Петрович настаивает, что все надо строить по старинке, из кирпича, не по-ламерски. Самый радикальный проект предложил Алекс: построить несколько десятков деревянных коттеджей и потом соединить их подземными туннелями. На Западе сейчас так модно. Напомнили ему, что заказчик требует именно 12-этажный дом. Пытались решить вопрос дуэлью в Quаkе. Алекса с его коттеджами завалили сразу, но между Петровичем и Сидоровым вышла ничья. В итоге каждый будет строить по своему плану, а потом попытаемся все это соединить, чтоб не рухнуло.


30.04. Первый этаж готов! Показали его заказчику. Он интересовался, почему в разных комнатах разная высота потолков, почему из стен вываливаются кирпичи и почему в доме нет подъезда, а влезать приходится через окно. Объяснили ему, что это специальные ограничения демо-версии. Уходим на праздники, гордые собой.


10.05. Петрович протрезвел первым и долго ругался. Мы думали, что Алекс выпил все пиво. Оказалось хуже: мы забыли про фундамент. В проекте он, конечно, описан, но ведь документацию читают только ламеры.


11.05. Ломали первый этаж. Обидно, блин.


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


17.07. Алекс строит чердак и крышу. На земле. Потом поднимем краном.


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


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


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


1.09. Стройкомбинат выпустил новую версию панелей, улучшенной прочности и утепленности, со встроенными стенными шкафами. Правда, ни по форме, ни по размеру они не совместимы с предыдущими и в три раза тяжелее. На какую архитектуру они вообще рассчитывают, эти комбинатские?


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


2.10. Петрович добрался до пятого этажа. Горд собой. Обратили его внимание на тот факт, что его стена наклонена под углом 40 градусов. Он ругался, кричал, что мы ламеры и ничего не понимаем. Потом обещал подумать.


3.10. Приходил заказчик. Спросил, почему стена наклонена под углом 40 градусов. Объясняли ему про силу Кориолиса. Он все выслушал, потом сказал, что он, конечно, в строительном деле ничего не смыслит, но у него по соседству точно такой же дом, и там стена прямая. Блин. Потом этот идиот Алекс ляпнул при нем про свои изменяемые окна. Заказчик, естественно, загорелся и настаивает, чтоб делали именно так. Дважды блин.


4.10. Спросили Алекса, придется ли все разбирать ради его окон. Он уверяет, что нет — будто бы и у стандартных панелей есть такая недокументированная функция.


5.10. Петрович признал, что со стеной действительно имеется проблема. Говорит, что неправильно положил какой-то кирпич. Но чтобы понять, какой именно, надо перебрать их все. Проще все снести и построить заново.


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


8.10. Ломали кирпичную часть. Попутно повредили панельную. Вся постройка скрипит и угрожающе шатается. Укрепили деревянными подпорками и пошли играть в Quаkе.


17.10. Петрович вышел из запоя. Работаем.


7.11. Празднуем 7 Ноября — или как оно там теперь называется? Коммунистов у нас в фирме нет, так что праздник никто не портит.


15.11. Вспомнили, что у нас кран достает только до 8 этажа. Послали Сидорова доставать новый кран. Играем в Quаkе. Алекс замочил Петровича. Растет смена!


24.11. Вернулся Сидоров. Кран не достал, зато достал крутой экскаватор. Предлагает вырыть глубокую шахту и построить дом не в высоту, а в глубину. Говорит, что нигде в контракте не сказано, что 12 этажей должны быть над поверхностью. Еле отговорили.


25.11. Устроили мозговой штурм по проблеме крана. На последней бутылке пива нашли решение. Бросили основное строительство. Строим рядом 4-этажный дом. Потом втащим наш кран ему на крышу.


25.12. Празднуем католическое Рождество. Католиков у нас в фирме нет, так что праздник никто не портит.


14.01. Ничего не помню. Голова болит. Мужики, какой сейчас год?


2.02. Ну, кажется, наконец-то достраиваем 12-й этаж. Завтра будем прилаживать сверху чердак и крышу, что соорудил Алекс.


3.02. Алекс — ламер. Крыша регулярно съезжает. Пока подперли краном. Думаем, что делать дальше.


4.02. Алекс доказывает, что он не виноват. Просто 12 этажей Сидорова на 4 метра выше и на 5 метров шире, чем 12 этажей Петровича. Выяснилось, что они строили из разных панелей. Но Алекс все равно ламер, поскольку его крыша не подходит по размеру ни одному из вариантов. Его шахта лифта, кстати, тоже.


5.02. Латали, укрепляли и наращивали крышу. Петрович говорит, что будет держаться, если снег не пойдет.


7.02. Снег пошел.


10.02. Соорудили крышу из фанеры, покрасили под жесть. Будем надеяться, заказчик не заметит.


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


12.02. А вообще-то лифт ездит крайне медленно. Петрович ругает всех ламерами и собирается заняться оптимизацией.


13.02. Петрович оптимизировал лифт. Тот разогнался, пробил крышу и улетел в неизвестном направлении. Хорошо, что крыша фанерная, и чинить будет легко. После этого шахта лифта рухнула. Вспомнили, что так и не заменили деревянные подпорки на что-нибудь более прочное. Ничего. Ходить пешком полезно.


15.02. Идут отделочные работы. Почему-то куда-то исчезают маляры и штукатуры. Договорились, чтоб прислали еще.


17.02. Выяснилось, что из-за ошибки Сидорова двери на этажах со второго по шестой открываются только на вход. В результате на этих этажах скопилось множество маляров и штукатуров, которые не могут выйти обратно. Сидоров обещал все поправить. Пока кормим маляров и штукатуров через форточки.


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


21.02. Приходил заказчик. Спрашивал, нельзя ли внести в проект небольшие изменения. В частности, вместо 12-этажного дома построить поселок из деревянных коттеджей, соединенных туннелями. Он прочитал, что на Западе сейчас так модно. Нейтрализовали Алекса прежде, чем тот успел открыть рот, и вежливо, но твердо объяснили заказчику, что он не прав.


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


23.02. Праздновали 23 февраля. Военных у нас в фирме нет, так что праздник никто не портил. Женщин тоже нет, так что подарков нам никто не дарил. Обидно.


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


27.02. Вспомнили, что так и забыли сделать подъезд. Размышляли, не рухнет ли дом, если прорубить его сейчас. Сидоров сказал, что лучше не рисковать. Петрович обозвал его ламером и согласился. Не забыть описать в документации вход через окно как особенность дизайна.


1.03. К-как первое марта?! Откуда?! Вчера же еще… Блин. Кто ж знал, что в этом ламерском феврале 28 дней! Выходит, сдача объекта — не через неделю, а послезавтра?!


2.03. Аврал. Работаем 24 часа в сутки, не просыпаясь.


3.03. Убедили заказчика, что нам нужен еще день для финального тестирования. М-да, ну мы вчера и наработали… А в общем, не все так страшно. Ну что с того, что некоторые двери находятся в полу или в потолке, либо ведут с десятого этажа прямиком на улицу, в некоторые квартиры в принципе невозможно попасть, санузел кое-где совмещен с кухней, в половине дома нет воды, в другой половине — электричества, канализация обрывается на шестом этаже, а лестницу между восьмым и девятым пришлось сделать веревочной? Главное — провести заказчика правильным маршрутом. И еще — успеть до завтра развесить на месте исчезнувших окон картинки с изображением заоконных пейзажей…


4.03. Yes! Yes! Мы сделали это! Отмечаем сдачу объекта. Я пью мало, мне надо еще успеть уволиться, прежде чем эта хренотень рухнет к чертовой матери…


автор: Юрий Нестеренко aka YuN

Показать полностью

Система OBD2 и лампа “CheckEngine”

Здравствуйте. Я занимаюсь разработкой программы для Android для расшифровки кодов ошибок OBD2, и в процессе работы над приложением обрабатываю много информации из различных источников о работе бортовой системы диагностики. Решил структурировать ее. Может кому-то будет интересно узнать о работе бортовой системы диагностики OBD2, ведь наверное каждый автолюбитель сталкивался с включением лампы «Check Engine» на приборной панели. Давайте разберемся, чем грозит появление ее на приборке.

Система OBD2 и лампа “CheckEngine” Авто, Obd, Check Engine, Автодиагностика, Длиннопост, Двигатель

Как вы наверное знаете, сейчас от автопроизводителей требуют соответствия требованиям нормативов по уровню токсичности отработавших газов. Одним из стандартных элементов среди мер, предпринятых для соответствия нормативам стало внедрение бортовой системы диагностики (OBD - On Board Diagnostic). Эта система оснащена стандартизированным интерфейсом для подключения диагностического оборудования и лампой токсичности отработавших газов, также называемой “Check Engine”. Причиной увеличения токсичности отработавших газов могут стать неисправные узлы двигателя и других систем автомобиля. Именно за этими узлами и следит бортовая система диагностики с помощью блока управления двигателем.

Система бортовой диагностики проверяет: каталитический нейтрализатор, лямбда-зонды, систему зажигания на пропуски зажигания, систему рециркуляции отработавших газов, систему продувки топливного бака, систему распределения топлива, шину данных CAN, воздействие со стороны автоматической коробки передач, электронную систему управления двигателем и многие другие параметры и датчики.
При обнаружении неисправности, которая приводит к ухудшению состава отработавших газов, в памяти неисправностей регистрируется соответствующий код по стандарту OBD2 (Diagnostic Trouble Code) и данные о состоянии автомобиля в момент появления неисправности (Freeze Frame), а сигнальная лампа токсичности отработавших газов загорается и не гаснет.

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

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

Система OBD2 и лампа “CheckEngine” Авто, Obd, Check Engine, Автодиагностика, Длиннопост, Двигатель

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

Рассмотрим некоторые из узлов, которые система бортовой диагностики диагностирует по-другому:

Диагностика работы каталитического нейтрализатора(катализатора):

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

Диагностика обогрева подогреваемого лямбда-зонда:

Блок управления двигателя определяет исправность функции обогрева лямбда-зонда посредством измерения сопротивления нагревателя датчика.

Диагностика работы лямбда-зондов:

При запуске двигателя лямбда-зонды не могут правильно отдавать информацию о составе выхлопных газов пока они не прогреются до 300 градусов Цельсия. Поэтому после запуска двигателя и до прогрева зондов блок управления двигателем работает по алгоритму «OpenLoop» и не корректиррует состав топливо-воздушной смеси (не учитывает показания лямбда-зондов и работает по таблицам в памяти блока управления), а следовательно повышается расход топлива. Как только температура выхлопных газов достигает нужного значения, включается алгоритм «ClosedLoop» и блок управления начинает корректировать состав смеси в соответствии с сигналами от лямбда-зонда до катализатора. Зонд после катализатора нужен для оценки качества работы катализатора. Блок управления двигателем постоянно следит за отклонениями от правильной работы лямбда-зондов по определенным алгоритмам для определения их неисправности.

Диагностика системы вентиляции топливного бака:

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

Обнаружение пропусков зажигания:

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

Диагностика рециркуляции отработавших газов:

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

Коды неисправности, зарегистрированные в процессе работы двигателя, можно считать с помощью диагностического оборудования (даже той же самой ELM327). Им же их можно и стереть, но следует помнить, что блок управления сотрет из памяти ошибку, но продолжит диагностировать узлы, и если неисправность вновь проявится после определенного стандартом OBD2 цикла работы систем в автомобиле, он вновь зажгет лампу "CheckEngine".

Показать полностью 2

Неисправности автомобиля и коды ошибок OBD2 на Android от идеи к реализации. Часть 3. Релиз.

Предыдущая часть: https://pikabu.ru/story/neispravnosti_avtomobilya_na_android...


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

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

Неисправности автомобиля и коды ошибок OBD2 на Android от идеи к реализации. Часть 3. Релиз. Диагностика, Авто, Ремонт авто, Android, Приложение, Google Play, Android разработка

В ближайших планах:

- Добавить потенциальные причины появления кода ошибки OBD2 по крайней мере для основных кодов вида P0XXX;

- Сделать пакетный поиск по кодам ошибок, чтобы было удобнее искать причину ошибки при большом количестве зависимых друг от друга кодов;

- Сделать возможность поделиться результатами единичного или группового поиска по кодам ошибок OBD2;

- Расширить базы данных по кодам ошибок для определенных марок вида P1XXX;

- Добавить поиск по симптому сразу по всем неисправностям автомобиля;

- Работать по поступающим замечаниям пользователей;

- Добавить версию без рекламы.


Сккчать приложение можно здесь: https://play.google.com/store/apps/details?id=ru.wheelsoft.f...

Показать полностью 1
Отличная работа, все прочитано!