изменений адаптаций на MQB платформе
Posted: 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?
Буду признателен вашему объяснению, а если удастся показать на конкретном примере, это будет очень наглядно. Заранее спасибо.
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?
Буду признателен вашему объяснению, а если удастся показать на конкретном примере, это будет очень наглядно. Заранее спасибо.