Dear new users!

All messages from new users are moderated by administrator. Keep patience if You first message is not published, You will see it as soon as it will be accepted. Additional, new users have restriction in using of private message system.

изменений адаптаций на MQB платформе

Discussion of VCP Scripter Tool and VCP Scripter API

Moderator: pirat

Post Reply
standy
Posts: 2
Joined: 14 Jun 2020 22:08

изменений адаптаций на MQB платформе

Post by standy » 15 Jun 2020 09:13

Добрый день. Спасибо за отличный материал по VCP Scripter на русском языке. Начал осваивать написание скриптов, экспериментирую на MQB платформе, но информации так мало, что сложно без помощи понять. Подскажите, пожалуйста, как происходит изменение адаптаций на MQB платформе. На примере адаптации по изменению количества комфортных морганий поворотником:

Block 09 -> Адаптации -> Aussenlicht_Blinker (ID 2654) -> Komfortblinken Blinkzyklen -> 3 на 5 поменять

Удалось подключиться к блоку по UDS, ввести код безопасного доступа, считать hex кодировку из адаптации по ID следующей командой:
variable:=ReadDataByID(2654) ;

Я получил вот такую строчку hex "3C000000050000000000", но не понимаю пока, как мне понять правила кодирования в ней 28 адаптацией, которые находятся внутри группы Aussenlicht_Blinker (ID 2654). Например, некоторые из этих 28 адаптаций просто содержат либо 0, либо 1 в бите, некоторые значения, как например эта адаптация, которая в 1 бите по счету и может содержать значение 1-5. Подскажите правило, по которому я могу правильно идентифицировать нужный мне байт и бит для изменения в конкретном случае с Komfortblinken Blinkzyklen адаптацией. И как мне понять, какое правильное значение нужно записывать в нужный бит, если мне нужно не просто 0 или 1, а вот такое значение 5.

Для простого изменения битов я видел вот такой метод, но пока не до конца понимаю принцип его работы.

function SetBitInHexString(HexString : string ; ByteNo,BitNo : integer) : string;
function ClearBitInHexString(HexString : string ; ByteNo,BitNo : integer) : string;

Которые соответственно устанавливают в 1 или 0 нужный бит в байте. А как быть в случае изменения значения 3 на 5 для Komfortblinken Blinkzyklen?

Буду признателен вашему объяснению, а если удастся показать на конкретном примере, это будет очень наглядно. Заранее спасибо.

skodapilot
Site Admin
Posts: 427
Joined: 13 Jan 2014 06:18

Re: изменений адаптаций на MQB платформе

Post by skodapilot » 16 Jun 2020 12:35

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

Для того чтобы найти что менять в канале адаптации, достаточно найти маску кодирования. Задача с одной стороны несложная, с другой требует последовательного считывания всех вариантов для исследуемого параметра (временные затраты), а далее XOR всех вариантов. Для упрощения этой процедуры я планирую добавить на osoTEC.com онлайн инструмент (кодовое название VCP Scripter Tool).

Для примера возьму гейт.
Канал 1187 (Список блоков). Допустим, нас интересует "Дополнительный автономный отопитель". Устанавливаем последовательно "Закодирован", считываем значение канала, потом меняем на "Не закодирован", еще раз читаем канал. Имея оба варианта уже можно найти маску через XOR, но чтобы упростить этот можно воспользоваться программным механизмом (на скриншотах отладочная версия VCP Scripter Tool), который все сделает сам...
2020-06-16_12-03-57.png
В итоге имеем что "Дополнительный автономный отопитель" кодируется в 13 байте в 2 бите и для кодирования используется всего 1 бит. Остается только обернуть эти данные в API VCP Scripter

Code: Select all

SetBitInHexString(variable, 13 , 1);
ClearBitInHexString(variable, 13 , 1);
Другой вариант.
Канал 2344 (Деактивация функции старт-стоп).
2020-06-16_12-12-57.png
Тут используется группа из 5 бит начиная с 0. Готовых функций API для такого случая нет, т.к. нужно поменять в variable только 5 бит в 0 байте, поэтому здесь или написать свою функцию или упростить и менять целиком байт.

Забегая вперед, можно заметить, что дальнейшее упрощение это организация таблицы (базы) вида блок - канал - расшифровка, но тут у меня есть сомнения относительно востребованности в подобной базе, большинство испольует свои локальные наработки.
You do not have the required permissions to view the files attached to this post.

standy
Posts: 2
Joined: 14 Jun 2020 22:08

Re: изменений адаптаций на MQB платформе

Post by standy » 16 Jun 2020 22:14

Огромное спасибо за разъяснения, так еще такие подробные, с примерами ) Да, я сам программист, но не ожидал, что это будет так трудозатратно. Теперь я лучше понимаю, сколько работы стоит за 1 click функциями того же VCP и OBD11 )

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

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest