В блоге:

2016-01-23

Отношение к подделкам 2.1 (и т.п.)

Китайцы со своими поддельными версиями ELM327 v2.1 (и тому подобным) начинают здорово раздражать. Из-за этого я меняю свое отношение к взаимодействию с ELM327-адаптерам.

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

Но китайцы обманной продажей тухлых ELM327 создают проблемы и пользователям, и мне как разработчику. Поэтому со следующих версий SZ Viewer поведение меняется. Теперь считаю, что используемый адаптер должен выполнять ВСЕ команды, что ему подаются программой. Этот набор не такой большой и любой адаптер, который заявляется совместимым как минимум с версией 1.4 оригинального ELM327, обязан уметь их выполнять. Например, старые китайские 1.5 их выполняют.

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

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

Если используется поддельный адаптер, то чудес не будет - подключиться через него сузуковским протоколом нельзя физически. Сузуковский протокол более сложный для взаимодействие через ELM327 по сравнению со стандартным OBD-II. И если другие программы работают через OBD-II с поддельным адаптером, то это не означает. что сузуковский протокол тоже обязан работать. А поддержку стандартного протокола OBD-II в SZ Viewer я не планирую делать. Для этого есть много других программ.

9 comments:

  1. Пожалуйста, дайте ссылку на нормальный ELM327, или же другой адаптер, более подходящий.

    Спасибо!

    ReplyDelete
  2. Ну вот и появились новые китайские чудо-адаптеры ELM327 2.1, которые выдают себя за 1.5, но также не могут работать полноценно. Теперь они так отзываются на следующие команды:
    ATZ / ATI -> ELM327 v1.5
    Раньше:
    ATZ / ATI -> ELM327 v2.1

    ATIB96 -> KBusBaud=9600 OK (при этом скорость на 9600 бод для протокола KWP не меняется)
    Раньше:
    ATIB96 -> ELM327 v2.1 (ответ как на ATI из-за кривого парсера)

    ATIIA13 -> OK
    Раньше:
    ATIIA13 -> ELM327 v2.1 (также ответ как на ATI из-за кривого парсера)

    ATAL -> OK
    Раньше:
    ALAL -> ?

    ATSH8113F0 -> OK
    Раньше:
    ATSH8113F0 -> ?

    Также для инициализации CAN шины обычно посылается 3E, ответ на который должен быть 7E, но приходит ответ, например, 41 00 BF 9F A8 93, соответственно адаптер вместо 3E посылает 0100.

    Адаптеры кривые полностью, никак не могут работать по протоколу KWP со скоростью, отличной от 10400 бод, не обрабатывают команду ATSHxxxxxx, не умеют посылать нестандартные запросы, имеют крайне ограниченный размер оперативной памяти, что также препятствует нормальной работе по CAN протоколу. К сожалению, программно определять неисправные адаптеры становится с каждым днём всё сложнее.

    ReplyDelete
    Replies
    1. Печально, но ожидаемо. Спасибо за информацию.
      А может быть есть ссылка на Алиэкспресс, где можно купить такой совсем урезанный и неполноценный адаптер? Хочу поизучать новые способы программного определения подделок.

      Delete
    2. Уточнил у нескольких человек. Вот, например, у этого продавца были такие адаптеры:
      Ссылка на продавца: https://ru.aliexpress.com/store/414728?spm=a2g0v.10010108.0.0.5dc634eaEN8t5j
      Ссылка на адаптер: https://ru.aliexpress.com/store/product/New-Auto-OBDII-Code-Reader-V1-5-ELM327-WIFI-Wireless-Supports-All-OBD2-Protocols-wifi-elm/414728_32630070209.html?spm=a2g0v.12010612.8148356.5.2340744dCZZRNj
      Но не факт, что все адаптеры одинаковые.
      Кстати, интересно также проверить, какую информацию различные адаптеры выдают на:
      AT#1
      AT#3
      AT#RSN
      AT@1
      AT@2

      Delete
    3. Он еще и Wi-Fi, а у меня была надежда, что Wi-Fi в целом поприличнее...

      Delete
    4. К сожалению, от интерфейса адаптера ничего не зависит. Всё напрямую зависит от того, какой стоит контроллер и какая туда залита прошивка. Если версия 1.5 ещё была копией оригинальной прошивки, то 2.1 — это уже чудо китайских разработчиков. Сейчас ещё, скорее всего, пойдёт куча клонов AllPro адаптеров, поскольку у них открыт исходный код. Кстати, AllPro также не умеет работать на 9600 бод, в исходниках это прекрасно видно.
      С WiFi адаптерами для Android ситуация ещё хуже, чем с Bluetooth. Большинство адаптеров работает только в режиме Ad hoc, с которым у подавляющего большинства Android устройств до сих пор проблемы. Тем не менее, адаптер из предыдущей ссылки работает в режиме точки доступа.

      Delete
    5. Кстати, AllPro отзывается на следующие запросы так:
      ATZ / ATI -> ELM327 v2.1

      AT#1 -> Copyright (c) 2009-2017 ObdDiag.Net
      This is free software; see the source for copying conditions. There is NO
      warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

      AT#RSN -> Возвращает серийный номер LPC15XX CPU ID.

      AT@1 -> 1.13

      Delete
    6. Спасибо за ссылку на этот поддельный Wi-Fi адаптер. Мне он пришел. Действительно, китайцы сделали фейковые ответы на команды. Естественно, адаптер не работает с сузуковскими протоколами. Подробнее напишу отдельной заметной.

      Delete
  3. Возможно, оттуда ноги и растут к китайским ELM327. Надо как-то проверить на них данные запросы.

    ReplyDelete

Blog Archive