Пример использования метода спуфинга вариантного кодирования, который используется в программе DAP4CS на примере TCU MB5 (722.6)
Информация по кодовым строкам для трансмиссии 722.6 есть на форуме
Там показано на каком месте в кодовой строке находятся числа, которые кодируют размер колес и передаточное число (diff ratio)
Порядок байтов у чисел – Little-endian, например, EE 0C это 0x0CEE (hex) или 3310 (dec), 3310/1000 = 3.31 (передаточное число – diff ratio)
В программе Auto-i для Кайрона, Ректона и Родиуса при подключении к TCU MB5 (722.6) можно выполнить процедуру вариантного кодирования. В меню выбирается вариант, который соответствует текущей конфигурации, например, вариант "KYRON C2I D20DT 4WD", при этом программа Auto-i отправляет в блок команду кодирования, которая в данных содержит определенную кодовую строку.
Например, для "KYRON C2I D20DT 4WD" кодовая строка:
65 6B 30 38 0A 00 00 05 00 03 11 2B 3C 3F 00 08 00 00 0A 00 00 01 00 02 00 02 00 01 AD 05 D4 0D E8 03 B3 09 1B 09 25 00 02 47 00 00 00 00
По умолчанию параметры в этой кодовой строке менять нельзя, можно только выбрать подходящий вариант. Но можно использовать метод спуфинга вар. кодирования, который есть в программе DAP4CS.
Порядок использованию метода спуфинга вар. кодирования на примере TCU MB5 (722.6)
Открыть текстовый редактор (блокнот) с правами "Администратор" (в Win7 и выше);
Открыть файл config.ini (C:\Program Files (x86)\DAP4CS\App\config.ini);
Найти раздел "ECU variant coding correction method";
Найти пример для кодирования (MB 5TH);
Раскомментировать (убрать #) с переменных CodingData, CodingMask, CodingType;
Подставить в кодовую строку свои данные, которые нужно заменить при кодировании, или заменить всю кодовую строку на ту, которая вам нужна;
Сохранить изменения в файле config.ini;
Запустить DAP4CS, Auto-i и подключится к блоку TCU MB5 (Кайрон, например).
Выполнить процедуру вар. кодирования. При этом в блок будет отправлена модифицированная строка вар. кодирования;
После процедуры закрыть Auto-i, DAP4CS и снова закомментировать переменные CodingData, CodingMask, CodingType в config.ini
Переменная CodingType определяет тип данных. Например, для TCU MB5 на SsangYong это "SY_AT_MB5TH".
Переменная CodingData определяет данные, которые будут отправлены в блок вместо данных, которые отправляет программа (Auto-i).
Переменная CodingMask определяет маску изменения данных, т.е. если бит в маске равен "1", то значение, отсылаемое в блок будет взято из CodingData, если "0", то значение в блок будет отправлено то, которое отправляет программа (Auto-i), т.е. данные из программы меняться не будут. Например, FFFF - это 11111111 11111111 (в бинарном представлении).
Например, для кодирования TCU MB5 можно заменить всю строку кодирования, тогда:
CodingData = 65 6B 30 38 0A 00 00 05 00 03 11 2B 3C 3F 00 08 00 00 0A 00 00 01 00 02 00 02 00 01 AD 05 D4 0D E8 03 B3 09 1B 09 25 00 02 47 00 00 00 00 CodingMask = FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
Если нужно заменить только отдельные байты (или даже биты), то CodingMask:
CodingMask = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 00 00 00 00 00 00 00 FF FF 00 00 00 00 - здесь будет замена байтов, которые кодируют передаточное число (diff ratio) и CRC16, т.е. вместо D4 0D нужно подставить в CodingData своё число и рассчитать CRC16.
Прим.- в строке последние 4 байта всегда нули, 5 и 6 байты (справа) - контрольная сумма (02 47 в примере). CRC16 можно рассчитать онлайн
Алгоритм используется CRC-16/ARC. Для кодовой строки, приведенной выше CRC-16/ARC будет 0x4702 (hex), т.е. 02 47 (Little-endian).