network tool bmw для чего
Вторая часть инструкции по установке Rheingold, в части установки ISTA P
Для сканеров BMW ENET и ICOM потребуется другая настройка ISTA D и ISTA P. Об этом будет дополнительная инструкция позже.
Данная инструкция по установке ISTA P предназначена для покупателей нашего интернет-магазина. Всякая консультация по вопросам установки комплекса программ Rheingold осуществляется на платной основе.
Далее заходим в папку Tools и устанавливаем приложение NetworkTool.
2. Далее распаковываем файл ISTA-P 3.67.0.000 из папки BMW. Путь для разархивации рекомендую D:\BMW.
3. После переходим в ранее скачанную папку BMW, затем в папку Tools. Далее в папку ISTA-P Loader и затем папку ISTA-P Loader 6.1 копируем на локальный диск C в папку Program Files.
4. Заходим в скопированную папку ISTA-P Loader 6.1 и запускаем приложение BMW ISTA-P Loader. Появиться окно, требующее ввести активационный код.
5. В папке по пути C:\Program Files\ISTA-P Loader 6.1 Вы найдете текстовый документ с названием Activation Key. Откройте данный документ и скопируйте из него код.
6. Вставьте скопированный код в окно и нажмите кнопку «Continue». После этого программа для сканера БМВ ISTA P закроется.
7. Запускаем BMW ISTA P Loader заново. И нажимаем кнопку «Manual Search».
8. Далее выбираем путь к распакованной папке ISTA-P. Он будет выглядеть так – D:\BMW\ISTA-P и нажимаем кнопку «ОК».
9. В раскрывшемся окне выбираем язык, расширение экрана и ставим птичку в строке «Expert Mode» после жмем кнопку «SAVE».
10. Продолжаем установку ISTA P и в новом окне нас предупреждают о проблеме с масштабированием текста. В Windows 8, 8.1 и 10 масштабирование равно 125%, а мы ставим птичку в строке «Always ignore this message» тем самым выставляем масштабирование равное 100% и жмем кнопку «Continue».
11. В следующем окне жмем кнопку «SAVE». Данные можно и заполнить на Ваше усмотрение.
12. Далее запускаем эмулятор для сканера БМВ INPA K+DCAN USB.
Если у Вас появляются окна с названием «Оповещение безопасности Windows» смело нажимайте кнопку «Разрешить доступ». Программа вносит изменения в работу Брандмауэра.
Немного информации о настройках программы для сканера БМВ после установки ISTA P.
Нажав кнопку «i» и далее выбрав строку «Reset Settings» программа закроется и Вы сможете изменить настройки, в части смены языка, разрешения экрана и информацию дилера.
BMW ISTA-D Rheingold. Как установить программу
Rheingold является диагностическим софтом, пришедшим на замену ISTA-D. Сегодня ее взяли на вооружение все официальные дилерские сервисы, но при этом и от прежних версий не спешат отказываться.
Rheingold является диагностическим софтом, пришедшим на замену ISTA-D. Сегодня ее взяли на вооружение все официальные дилерские сервисы, но при этом и от прежних версий не спешат отказываться. После того, как новая версия данного софта будет полностью доработана, старая не будет поддерживаться.
Для работы с более старыми версиями машин BMW привлекают дилерский софт BMW DIS, который так же справляется с диагностированием и кодированием моделей, сошедших с конвейера в период с 1995 по 2009 гг. Эти задачи так же под силу софту BMW INPA EdiaBas.
Основное отличие новой версии заключается в ускоренной работе быстрых тестов. Наличие в новом Rheingold технологии FASTA, дает возможность выявить полную конфигурацию машины и не обходить для этого все блоки. Определение данных производится по VIN-номеру, и этого вполне достаточно, чтобы узнать все о комплектации. Благодаря тому, что не надо проверять каждый блок на предмет ошибок, тест выполняется очень оперативно. Претерпел изменения и процесс стирания ошибок: софтом теперь выполняется автоматическое отключение и включение зажигания.
Rheingold не очень требователен в системных параметрах: ему будет достаточно Windows 7, подойдет и любая более поздняя версия, чтобы софт работал корректно, а оперативную память он практические не «ест». Хотя более новые версии лучше устанавливать на свежий Windows 10 Pro x64. Разработки велись в MS Visual Studio, и главный акцент был поставлен на минимальное использование Java для ускорения производительности системы, ведь прежняя версия разрабатывалась конкретно на Java.
Чтобы выполнять работу с Rheingold подойдут различные диагностические интерфейсы: E-NET, D-CAN, ICOM, Omitec USB, а также j2534 приборы. Старыми версиями софта поддерживался только ICOM.
Этот софт поможет узнать абсолютно все показатели машины: уведомит о точной температуре масла, о кол-ве горючего в баке, сообщит, сколько в общем проработал мотор, сколько было выбросов CO2 и пр. Кроме того, есть доступ к сервисному функционалу, позволяющему калибровать раздаточную коробку, сбрасывать адаптации АКПП, разжать суппорт для ТО и много чего еще.
Устанавливаем Rheingold
Сначала скачиваем Rheingold (ссылку можно найти внизу страницы). Для диагностирования можно скачать всё остальное, кроме архивов BLP, SDP, а также ISTA-P (если присутствует в раздаче). Необходимость в этих архивах будет тогда, если у вас есть в наличии ICOM. А Rheingold – это ISTA-D. Для того, чтобы разбираться что есть что, следует обращать внимание на префикс в конце: D — означает Diagnostics, P — означает Programming.
Чтобы иметь возможность программировать, нужно использовать ISTA-P, но настройка полна своих нюансов.
Когда файлы будут скачаны, нужно будет открыть папку Tools. Переходим к установке доп. программ:
Устанавливаем EDIABAS
Нужно зайти в папку Tools, найти установщик Patched_EDIABAS_7.3.0.msi (вероятно, он будет носить другое название) и установить его:
Нужно выбрать этот путь
Никаких сложностей в установке нет, нужно постоянно нажимать Далее.
Как установить Java
Нужно зайти на официальный сайт Java, скачать и установить последнюю версию.
Процесс установки Vcredist
Нужно зайти в папку Tools\vcredist. При использовании 32-битной системы понадобится установка всех дистрибутивов из папки x86, а если вы пользуетесь 64-битной операционкой — то нужно всё из двух папок: x86 и x64. В случае, если какие-то из них уже есть у вас в наличии (об этом появится соответствующее сообщение) — нужно просто пропустить их, отменяя установку.
Устанавливаем vs90_piaredist.exe
Нужно запустить файл из папки Tools и дождаться окончания установки.
Процесс установки Net Framework
Распаковываем ISTA-D архив
Следует распаковать ISTA-D x.xx.xx.7z в любую из папок, например –F:\BMW\Rheingold. Чтобы распаковать, понадобится 7-Zip последней версии.
Устанавливаем базы данных для Rheingold
Следует распаковать архивы (RU/EN/DE x.xx.xx.7z) из папки SQLiteDBs в папку F:\BMW\Rheingold, итоговый результат должен быть таким, если Вам требуется только наличие русского языка:
Наличие файлов OTHER необходимо, чтобы работала вкладка Основные признаки. В случае, если понадобятся какие-либо другие языки — так же по аналогии
Как активировать Rheingold
Перед тем, как запустить программу, нужно зайти в папку Tools и открыть файл RCleanerV4.4.exe, затем следует выполнить запуск ISTA-D Reg Fix x64.reg либо ISTA-D Reg Fix x86.reg, в зависимости от того, какая разрядность операционки (32-битная — x86, 64-битная — x64).
Выполните запуск файла F:\BMW\Rheingold\TesterGUI\bin\Release\ISTAGUI.exe
Затем нужно прописать цифру 1 в поле Name и в поле E-Mail
Затем в поле License следует ввести ключ, который располагается в файле Tools\License.txt
Теперь нужно ввести цифру 1 в поле ISIS
После того, как появится уведомление, нужно просто нажать OK, после чего активация будет завершена.
Обратите внимание! Начиная с версии 4.20 может возникать сбой активации, когда не работает кнопка Next. Чтобы завершить активацию, следует нажать Cancel и заново открыть программу.
Настраиваем Rheingold
Затем нажимаем на вкладку Сервисный разъем, пункты нужно выбрать те же, что и указаны на скриншоте, затем применяем путем нажатия кнопки OK.
Кром того, потребуется перенастроить адаптер сетевой карты. Чтобы это сделать, нужно войти в Панель управления и найти Центр управления сетями и общим доступом:
Далее следует выбрать пункт Изменение параметров адаптера в меню слева:
Затем найдите ярлык Подключение по локальной сети, где изображен штекер кабеля. Если он там будет не один (как в данном случае), нужно будет отыскать тот, где есть название сетевой платы. Далее нужно выбрать Свойства:
После нужно выбрать пункт Протокол Интернета версии 4 (TCP/IPv4) и нажать Свойства:
Жмем Использовать следующий IP-адрес, после чего надо ввести IP-адрес 169.254.1.1. Маска подсети будет подставлена автоматом после того, как вы выполните нажатие на вторую строку в любую ячейку:
Затем жмем ОК для сохранения результатов. Другие окна можно закрывать.
Софт настроен и готов к использованию! В случае возникновения вопросов, или если вы воспользовались другим кабелем, нужно открыть файл Tools\FAQ-RU.pdf либо задать свой вопрос в комментариях.
Всегда скачивайте актуальную (последнюю) версию Rheingold, потому как в ней содержатся последние дополнения и улучшения.
Инструкция по установке Rheingold (ISTA D версия 4.20.31) для сканеров БМВ (BMW INPA K Dcan)
В данной инструкции подробно расписаны шаги, которые необходимо выполнить при установке программного обеспечение Rheingold. В частности, программ ISTA D или ISTA + версии 4.20.31, а также INPA 5.0.6, NCS-Expert tool, WinKFP, Tool32, BMW Coding Tool, NcsDummy.
Примечание! Rheingold, ISTA D или ISTA+ и ISTA P условно одна и та же программа, но имевшее различные названия в зависимости от времени. В настоящее время Rheingold разделена на ISTA D и ISTA P.
В данной инструкции описана установка Rheingold для сканера БМВ INPA K Dcan с переключателем.
Также инструкция по установке Rheingold разработана для наших покупателей с минимальными знаниями персонального компьютера. И исходя из этой информации настоятельно просим не обращаться к нашим специалистам за помощью если вы приобретали сканер БМВ INPA K Dcan в другом магазине. В Вашем случае рекомендуем Вам заказать установку Rheingold у наших специалистов на платной основе или приобрести флешку с настроенной виртуальной машиной.
Перед началом установки отключите все антивирусные программы и защитник Windows. Вы должны знать, как открыть диспетчер устройств, как открыть заархивированную папку и как скачать с Rheingold с помощью торрента и остальные простые действия с персональным компьютером.
И так начнем установку Rheingold для сканера БМВ INPA K Dcan.
1. Скачать по ссылке комплекс программного обеспечения Rheingold, содержащий в себе ISTA +, ISTA P, INPA и многое другое. https://rutracker.org/forum/viewtopic.php?t=5808407
Для скачивания вам понадобиться торрент-клиент https://www.utorrent.com/intl/ru/desktop и зарегистрироваться на rutracker.org.
2. Переходим в скачанную папку BMW, далее в папку Tools и в последующем в папку EDIABAS. Из папки EDIABAS запускаем приложение Patched_EDIABAS_7.3.0.
2.1. В появившемся окне жмем кнопку «Next». И в следующем окне также нажимаем «Next».
2.2. Далее жмем «Install» и ждем завершения установки. После чего жмем кнопку «Finish».
3. Возвращаемся в папку Tools и переходим в папку Java. Из нее устанавливаем приложение Java соответствующее вашей разрядности Windows. Если используете Windows 32-х битной разрядности, то запускаем jre-8u231-windows-i586. Если Windows 64-х битная, то запускаем jre-8u231-windows-x64. Если не знаете, как узнать разрядность Вашей Windows ставьте jre-8u231-windows—i586.
3.1. Нажимаем кнопку «Install» и ждем установки.
3.2. Далее жмем кнопку «Close». Процесс установки Java завершен.
Для опытных пользователем персональным компьютером я оставляю ссылку на свежую версию Java https://java.com/ru/download/
4. Возвращаемся в папку Tools и входим в папку vcredist. Из данной папки устанавливаем все программы: VCRedist 2005-2019 x64 и VCRedist 2005-2019 x86. Установка начнётся и завершиться автоматически без Вашего участия.
5.1. Далее из папки Net Framework, которая расположена в папке Tools, устанавливаем все содержимое. Для установки версии Net Framework 4.7.2 и ndp48-x86-x64-allos—enu потребуется подключение к сети Интернет. Также при появлении окна как на фото ниже не стоит паниковать. Данное предупреждение означает, что данные версии Net Framework уже установлены на Ваш компьютер ранее.
Подготовка к установке комплекса программ Rheingold завершена и переходим к установке ISTA D.
6. Открываем скачанную папку BMW и распаковываем архив ISTA-D 4.20.31 на Ваш локальный диск. Например, D:\BMW (прописываете данный путь в строке «Путь для извлечения (если не существует, то будет создан)) и жмем «ОК».
Распаковать архив с помощью программ-архиваторов таких, как 7-Zip или WinRAR. Если используете WinRAR, то перед распаковкой разблокируйте архив. Если у Вас не сходятся контрольные суммы, то обновите Вашу программу-архиватор.
Подсказка. По архиву кликаем правой кнопкой мыши и выбираем пункт «Извлечь файлы…».
7. В папке BMW переходим в папку SQLiteDBs и распаковываем два архива: RU 4.20.30 (для того что бы ПО было на русском языке) и OTHER 4.20.30 (для того что бы работала вкладка «Основные признаки»).
Архивы DE 4.20.30 и EN 4.20.30 распаковывайте если Вам требуется немецкий и английский язык.
8. Возвращаемся в папку Tools и запускаем приложение RCleanerV4.4. Далее жмем «ОК».
9. В этой же папке запускаем ярлыки ISTA-D_Reg_Fix_x64 для Windows 64-х разрядной и ISTA-D_Reg_Fix_x86 – если у Вас 32-х битная Windows. Жмем «Да» и далее «ОК».
10. Переходим на локальный диск D: в папку BMW, далее папка Rheingold, далее папка TesterGUI, далее папка bin, следующая папка Release и в ней находим приложение ISTAGUI. И двойным нажатием левой кнопки мыши запускаем данное приложение.
Запускаться приложение будет долго. А если у Вас компьютер в нехорошем состоянии, то очень долго.
11. В появившемся окне жмем «Next».
12. В полях «Name» и «E-Mail:» вставляем цифру 1 и жмем кнопку «Next».
13. В следующем окне от Вас потребуют вставить ключ лицензии в поле «License:». Данный ключ вы возьмете, перейдя в скачанную папку BMW и далее в папку Tools, там Вы найдете текстовый документ под названием License. Открыв его, вы скопируете все содержимое и вставите в поле «License:». И нажмете кнопку «Next».
14. В новом окне в поле «ISIS» вводим цифру 1 и жмем кнопку «Finish». В следующем окне нажимаем кнопку «ОК». Установка завершена.
15. Возвращаемся в папку D:\BMW\Rheingold\TesterGUI\bin\Release и в ней находим приложение ISTAGUI. Кликаем по нему правой кнопкой мыши, выбираем строку «Отправить» и далее переводим курсор на строку «Рабочий стол (создать ярлык)» и кликаем левой кнопкой мыши.
16. Уже с рабочего стола компьютера запускаем ярлык ISTAGUI (для удобства его можно переименовать в ISTA D).
Зачастую из-за несовпадения разрешения экрана у Вас будет не полностью раскрыт окно ISTA D. Двойным кликом мыши на верхней шапке окна вы раскрываете его полностью.
17. Переходите в настройки ISTAGUI нажав кнопку с гаечным ключом.
18. В следующем окне ставим точку с нужным Вам языком и жмем кнопку «ОК». И далее закрываем программу.
Также программное обеспечение ISTA D дает возможность использовать режим FASTA. Данный режим отвечает за ускорение работы при проведении коротких тестов. Для определения комплектации автомобиля не требуется устанавливать связь со всеми блоками автомобиля. Все данные определяются по VIN номеру автомобиля. Определив комплектацию автомобиля программное обеспечение не тратит время на опрос неустановленных блоков, и тем самым уменьшает время при поиске неисправностей в электронных блоках управления.
А также в режиме FASTA в ISTA D при стирании кодов неисправностей (кодов ошибок) не требуется выключать, а затем включать зажигание автомобиля.
Важно! В новой редакции файлы не нужно переименовывать. Скорее всего режим FASTA включен по умолчанию. После того как выясню наверняка будет дополнено!
Для старой редакции. Для включения режима FASTA переходим по следующему пути – D:\BMW\Rheingold\TesterGUI\bin\Release и находим файл с названием RheingoldSessionController.dll. Кликаем правой кнопкой мыши по данному файлу, выбираем строку «Переименовать» и вписываем следующее название RheingoldSessionController.dll.NoFASTA. А файл с названием RheingoldSessionController.dll.original переименовываем в RheingoldSessionController.dll.
А сейчас перейдем непосредственной к настройке ISTA D для работы с автосканером Inpa K Dcan.
20. Запускаем программу Rheingold, разворачиваем ее на весь экран, как указано в п. 16, и нажимаем на гаечный ключ, как делали в п. 17. Далее переходим во вкладку «Сервисный разъем» и ставим точку в строке «Стандартные настройки Ediabas (ediabas.ini)». И далее жмем кнопку «ОК» в правом нижнем углу окна.
Установка и настройка ISTA D (Rheingold) версии 4.20.31, INPA 5.0.6, NCS-Expert tool, WinKFP, Tool32, BMW Coding Tool, NcsDummy завершена и готова к использованию.
Кодирование со смыслом, часть 4. BMW 6 series
Завсегдатай
В этой части речь пойдёт о ещё более глубоком погружении в тонкости кодирования автомобилей BMW. Как и прежде, речь ведётся конкретно о семействе кузовов E60 (соответственно это также E61 и E63/E64). Теоретически всё нижеописанное подходит и для остальных кузовов, разве что E65/E66 стоят несколько особняком. У них там своя атмосфера.
Все посты на тему кодирования не содержат списков конкретных действий типа «Нажмите сюда, потом туда, введите то, введите это и получите результат». Цель этих постов — научить читателя думать и понимать, чтобы он мог решать конкретные задачи самостоятельно без инструкций.
Сегодня мы поговорим о приборной панели. Каждую панель на заводе адаптируют под конкретный автомобиль, вставляют нужные шкалы, калибруют и кодируют. Функциональность приборной панели задаётся на заводе и последующему изменению формально не подлежит. Такими функциями «с завода», например, является бегунок круиз-контроля и работа стрелки под тахометром либо в качестве датчика мгновенного расхода топлива, либо указатель температуры масла на автомобилях с претензией на спорт или являющиеся таковыми.
Бегунок круиз-контроля (зелёный)
С круизом более-менее понятно: если машина вообще не оборудована круиз-контролем, то бегунок отключен. На кузовах серии E89 (т. е. все «трёшки» и подобные) так и вовсе существует два варианта приборных панелей: HIGH и LOW. В варианте LOW бегунок круиза, не берусь утверждать на 100%, вообще физически отсутствует.
С E60 попроще, там бегунок в приборке, как правило есть. Хотя, несмотря на то, что в ETK есть всего один вариант приборной панели без привязки к опции круиха, таки существуют панели, в которых бегунок физически отсутствует. В этом случае кодирование бесполезно.
В иных вариантах он есть, но может быть просто неактивен. Активен он у вас или нет, можно узнать с помощью так называемого «KI TEST». На данном видео бегунок активен:
Если бегунок у вас есть, значит круиз в принципе активен. Если же нет, то нужно экспериментировать.
Допустим, вы всё-таки захотели оснастить свой автомобиль этим самым круиз-контролем, в варианте либо «S540A Система поддержания заданной скорости» (дорестайл), либо «S544A Система поддержания заданной скорости с функцией подтормаживания» (рестайл). Это довольно бюджетное дооснащение и в принципе нужно приобрести только ручку и пару кожухов рулевой колонки.
Проблемой же является то, что бегунок на приборной панели не появляется, даже после правильного кодирования панели, с активизацией всех параметров, связанных с круиз-контролем. Т. е. функция работает, есть индикация на дисплее, но она показывается только на некоторое время при изменении заданной скорости. А при отсутствии проекции становится невозможно понять, работает ли сейчас круиз или нет.
Неработоспособность бегунка (если он физически всё-таки есть) связана с тем, что параметр, отвечающий за его функционирование, находится в той области памяти, которая не подлежит изменению. Вернее, не подлежит изменению с помощью кодировочных индексов. И это не часть прошивки, это область с так называемой заводской кодировкой, поэтому заниматься перепрошивкой приборной панели в надежде, что заработает ползунок, нет никакого смысла. В заводской кодировке хранятся параметры относительно физических характеристик приборной панели (и не только), т. е. диапазоны отображения числа оборотов двигателя, скорости на спидометре и т. д. Всё это не может быть изменено прошивкой.
Вы наверняка слышали о кудесниках, которые за определённую мзду включали каждому желающему этот бегунок. Порядок цен не знаю, но думаю услуга по стоимости близка к стоимости самих запчастей для круиза. Так вот, я не знаю точно, как именно стало известно, как включить бегунок. Скорее всего изначально методом реверс-инжиниринга, путём сравнения дампов памяти (Википедия) приборных панелей с круизом и без него. Далее уже варианты, либо правился сам дамп, а потом заливался обратно в чип памяти, либо программным способом. Второй куда проще в плане того, что демонтировать приборную панель не надо, ничего разбирать, припаивать и отпаивать для чтения памяти тоже.
В публичном доступе информация о том, как самостоятельно выполнить такие изменения, я полагаю, впервые появилась здесь, её разместил житель Финляндии с ником ptikkala на Bimmerforums. Причём там же он привёл неизвестные строчки кода, которые описывают область памяти с заводскими настройками. Нечто подобное можно получить в NCS Dummy, выполнив дизассемблирование кодировочного индекса, но именно таких строчек в полученном текстовом файле вы не увидите. Просто потому что там нет такой информации.
Далее инструкция расползлась уже по сети, переведена на языки (например, здесь на русском) и т. д. Недостаток этой инструкции в том, что она описывает просто по шагам, что нужно делать. Но мы не знаем, что именно делаем и зачем. К примеру, контрольную сумму предлагается просто увеличить на единицу, но в общем случае так поступать нельзя. Работает это всё исключительно благодаря тому, что меняем мы как раз самый младший бит всей последовательности, который и влияет на контрольную сумму таким вот образом. Я попробую пояснить, что именно там происходит и как можно упростить этот процесс, а также попробуем минимизировать возможность допущения ошибки.
Эту программу большинство обходит стороной и правильно делают, т. к. неразумные действия при работе с ней могут привести к непредсказуемым последствиям. Tool32 — программа для низкоуровневого взаимодействия с блоками управления автомобиля. Сама она идёт в составе комплекса EDIABAS, а с ним знакомы все, кто хотя бы занимается диагностикой BMW. Комплекс является связующим звеном (интерфейсом) между машиной и диагностическим ПО.
Для работы в Tool32 требуются так называемые SGBD-файлы (SGBD =Steuergerätebeschreibungsdatei, ох уж эти чёртовы немцы). Это файлы, которые описывают доступные функции и параметры этих функций в конкретных блоках управления (собственно, SGBD-файл). Изначально Tool32 была придумана как отладочная программа для разработчиков диагностического ПО.
С помощью Tool32 можно открыть SGBD-файл, увидеть список доступных функций (или методов, в терминологии программирования), вызвать их, передав необходимые параметры (если есть) и получить результат выполнения. Точно такие же результаты, но оформленные в более читаемом виде, вы получаете при использовании любого диагностического ПО. Проще говоря, диагностировать что-либо можно даже с помощью одного только Tool32, если вы Рэмбо.
Сегодня мы работаем с приборной панелью, а значит блок управления у нас имеет название KOMBI. Осталось выяснить, какой именно SGBD-файл работает именно с комбинацией приборов. Определить это труда не составляет, ведь в Daten-файлах заложен кладезь информации на этот счёт. Если в первой части я рассказывал про файл E60AT.000, то теперь нам нужен другой файл, называется он E60SGFAM.DAT из той же папки daten, что и E60AT.000:
В этой таблице перечислены имена блоков управления и соответствующие им имена CABD- и C_SGBD-файлов. CABD = Codierablaufbeschreibungsdatei, скрипт того же формата (IPO), что применяется в INPA, но предназначен для процедуры кодирования блока управления (они часто используются одни и те же, ввиду одинаковости процедуры), а C_SGBD — SGBD-файл для с функциями кодирования блока. Вот эти самые C_SGBD нас и интересуют и мы сразу видим во второй строчке наш KOMBI и соответствующий ему KOMB60.
Сам по себе этот E60SGFAM.DAT не совсем точен, т. к. предполагает только один вариант CABD-/C_SGBD-файлов на конкретное имя блока, тогда как с выпуском новой прошивки могут потребоваться другие. Это не касается непосредственно KOMBI (у него в любом варианте на сегодняшний день используется KOMB60), но касается других блоков. Рассматривать эту тему я сейчас не буду, т. к. это уже выходит за рамки сегодняшней темы. В будущем, возможно, пролью свет на структуру daten-файлов более подробно.
Если вы видите эту кучу окошек со списком функций, значит связь с машиной в порядке. Если нет, тогда проверяйте настройки вашего EDIABAS.
Из всех открывшихся окошек нас интересуют лишь три: Select Job: название модуля (список функций), Job-Info (подсказка по функции/её параметрам), ну и конечно же Results. Остальные окошки можно свернуть. Прежде всего ещё раз предупреждаю, что необдуманные действия могут привести к реальной порче техники, которую потом будет сложно и дорого восстанавливать, поэтому никогда не делайте ничего такого, чего вы до конца не понимаете.
Можно повыбирать разные функции в списке и посмотреть, какую информацию по ним показывает в Job-Info. Ни в коем случае не выбирайте функции двойным кликом, т. к. это приведёт к её запуску. Двойным кликом запускать функции могут только снайперы без тремора в руках, поэтому всё же рекомендую для запуска использовать клавишу F5, но сейчас ничего запускать не надо. Конкретно нас будет интересовать функция c_c_lesen, вот её и выберем.
Итак, что же это за магическая строка, которую мы передаём в качестве аргумента в функциюc_c_lesen? Любознательный гражданин найдёт ответ не где-нибудь, а непосредственно в той же Tool32, в окошечке Job-Info:
Вообще, это крайне полезное окошечко, на которое можно и нужно обращать внимание, ведь именно в нём содержится информация о функции, её параметрах, формате данных и результатах, которые мы получим в результате выполнения данной функции. А наперевес с Google-переводчиком можно устранить недопонимания.
По c_c_lesen, как видим, описан формат единственного аргумента (параметра) функции. Называется аргумент BINAER_BUFFER (причём имеет тип Data, т. е. надо ставить соответствующую галочку в поле ввода), а в комментарии расписано, из чего он состоит:
Байт 0: Тип данных (01: Данные, 02: Маска данных)
Байт 1: (не используется) Разрядность (01: Byte, 02: Word, 3: Dword)
Байт 2: (не используется) Порядок байт (00: LSB, 01: MSB)
Байт 3: Адресация (00: Свободная, 01: Блочная)
Байты 4-12: (не используется)
Байты 13,14: Длина последовательности (младший/старший)
Байты 15,16: (не используется)
Байты 17,18,19,20: Адрес (младший/старший байт, младшее/старшее слово)
Байты 21,…: Последовательность
Байт 21 + длина посл.: ETX (03) (замыкающий байт)
Значения байтов, которые не используются, можно смело забивать нулями, а вот с остальными параметрами разберёмся. Хотя некоторую ремарку к описанию я бы сделал, относительно байта 2: в описании к нему несколько некорректное смешивание порядка бит (те самые LSB и MSB ипорядка байт), либо само описание неверно, либо описание значений. Впрочем, этот байт всё равно не используется.
Теперь взглянем по новому на те заклинания из инструкции на Bimmerforums, но для упрощения распилим первое заклинание на две части: до последовательности из FFh и всё остальное.
01 01 01 01 00 00 00 00 00 00 00 00 00 17 00 00 00 00 01 31 00
Здесь у нас приведены байты с 0 по 20 включительно. Жирным выделены как раз те байты, которые будут использованы функцией c_c_lesen. Единички в байтах 1 и 2 никакой роли не играют, туда смело можно было писать 00h. Зато остальное нам задаёт следующее:
Тип данных: 01 (Данные)
Адресация: 01 (Блочная)
Длина последовательности: 17 00
Адрес: 00 01 31 00
Не могу точно сказать, что именно подразумевается под типом «маска данных» (который 02h), возможно это какие скрытые данные, резервная копия или что-то в этом духе. В приборной панели работает исключительно тип 01h. Возможно, при записи неверных данных (с неправильной контрольной суммой, например), предварительно создаётся копия, которую можно потом прочитать. Не знаю, не разбирался.
Далее у нас идёт адресация. В режиме свободной (00h) адресации мне не удалось получить какой-нибудь вразумительный ответ. Зато режим блочной адресации работает прекрасно.
Длина последовательности. С ней надо слегка разобраться, как и с адресом. И что означают эти «младший» и «старший» в описании. Чтобы записать какое-то число в память, нужно определиться, в каком порядке вы будете записывать байты (если число занимает больше одного байта). Например:
Число: 48 860
hex-вид: BE DC
Как мы видим, число занимает два байта, младший из которых справа, точно также, как и младшие разряды самого числа. В память можно записать эти два байта либо как BE DC (так называемый Big-Endian порядок), либо DC BE (Little-Endian). В скобочках в описании к байту у нас как раз и написано, где младший, а где старший, стало быть запись «младший/старший» означает, что первым идёт младший бит или байт. Таким образом 17 00 в строке следует интерпретировать как 00 17 и это значит, что мы хотим прочитать 17h (23) байт.
Осталось разобраться с адресом, с ним чуть посложнее. Термин «слово» применительно к компьютерной архитектуре изначально означал величину в битах или байтах, равную разрядности процессора (см. Википедию), но последние лет 25-30 «слово» (word) означает 16-битное число, т. е. число, которое имеет значение от 0 (00 00) до 65 535 (FF FF) и оно занимает всегда два байта. Синонимом word-а является тип ushort (безнаковый short).
В пояснении к байтам с адресом написано, что порядок задаётся от младшего к старшему биту и от младшего слова к старшему. Т. е. если адрес в нормальном виде выглядит вот так:
То младшее слово будет CCDD, старшее — AABB. Согласно заданному порядку, нам нужно развернуть как байты в словах (младший/старший байт), так и сами слова (младшее/старшее слово) относительно друг друга. В результате мы получим вот такую запись:
Стало быть то, что записано в тарабарщине заклинания как 00 01 31 00 нужно интерпретировать вот так:
Сначала я поменял местами сами слова, получив соответственно 01 00 и 00 31, а потом развернул и сами байты. Наглядно:
Конвертация нормального адреса в адрес для использования в c_c_lesen. Сам рисовал
Сейчас эти преобразования запоминать не особо нужно, т. к. для работы с приборной панелью они в общем-то не нужны (в следующей части станет понятно почему), но могут пригодиться для работы с другими блоками.
Вторая часть заклинания:
FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 03
Можно не пересчитывать количество байт вида FFh, их ровно 23 штуки. Как раз столько, сколько мы хотим прочитать по заданному адресу. Я честно не знаю, зачем такой удивительный механизм придуман для чтения кодировочных данных, но вот он такой: передав N штук этих самых FFh и закончив последовательность замыкающим байтом 03h (он всегда равен этому значению), мы получим какой-то ответ. Замыкающий байт означает, что последовательность закончилась. К слову говоря, байты самой последовательности могут быть равны чему угодно (кроме 03h, разумеется), это не имеет значения.
Теперь заклинание полностью и без пробелов между байтами (так проще копировать и вставлять в строку аргументов):
(ширина DRIVE2 не позволяет это всё в одну строчку отобразить)
Оно всего-навсего просит прочитать 23 байта по адресу 00310100h и выдать результат. Обратите внимание на адрес, в кодировочном индексе нет параметров именно с таким адресом или рядом с ним.
Напоминаю, что параметр BINAER_BUFFER функции c_c_lesen сам по себе имеет тип «data», исходя из описания. Поэтому не забываем поставить галочку Data. Пробуем (выполнение запускается однократным нажатием кнопки F5):
c_c_lesen Results (кодировочные данные выделены в редакторе картинок)
Получили результат! Или если не получили (ERROR_BIN_BUFFER в качестве ответа или другая ошибка), то всё проверяем, считаем байтики, пробуем ещё раз. Итого у нас в окне результатов есть строка CODIER_DATEN, содержащая всю ту писанину, что мы туда отправили, но вместо последовательности из FFh какие-то вполне конкретные байтики приехали:
CODIER_DATEN = 45 Bytes
0000 : 01 01 01 01 00 00 00 00 00 00 00 00 00 17 00 00
0010 : 00 00 01 31 00 E0 69 01 00 A0 00 18 01 90 01 08
0020 : 02 26 01 36 14 98 22 FB 30 5D 3F BC 03
ACHTUNG, POZOR, ВНИМАНИЕ: Обязательно сохраните в надёжном месте полученные исходные данные!
Выделим отдельно полученные данные:
E0 69 01 00 A0 00 18 01 90 01 08 02 26 01 36 14 98 22 FB 30 5D 3F BC
Первый байт (E0h) является контрольной суммой для оставшихся 22. Теперь подглядим в тот кусочек исходного кода с Bimmerforums:
//3101’16 ACC_ZEIGER_VERBAUT 00000001b // Fuer ACC/Tempomat, ob der ACC-Zeiger vorhanden
// nicht_aktiv 0b // Basisvarinate, ACC-Zeiger nicht verbaut, kein ACC Betrieb
// aktiv 1b // Highvarinate, ACC-Zeiger verbaut
Ага, адрес байта 3101’16, а бит, отвечающий за ползунок круиза, в нём самый младший (крайний справа). По адресу 00310116h у нас как раз выходит последний байт BCh! Т. е. мы вычитали как раз тот блок с кодировочными данными, который и содержит необходимый байт.
Разложим BCh побитово:
BCh = 188 = 10111100b
Как видим, самый младший бит равен нулю — ползунок выключен. В инструкции нам предлагают увеличить число на единицу, но это реально будет работать только в том случае, если бит действительно равен нулю (т. е. число в десятичном виде чётное). Если же бит у вас установлен, число нечётное, то увеличение на единицу приведёт к непредсказуемым последствиям. Поэтому правильнее всего работать именно в двоичном режиме и проверять, установлен бит (равен единице) или нет.
Помимо этого бита за работу круиза отвечают ещё несколько (этого вам никто ещё не рассказывал):
Бит 0: ползунок вкл/выкл;
Бит 1: единицы измерения шкалы (0: километры, 1: мили);
Бит 2: установлен ли диод круиза (0: нет, 1: да). Актуально только для панелей с индексом 07;
Биты 3-5: не используются (все равны 1);
Биты 6-7: Квадрант нулевого положения.
Напомню, что биты считаются справа налево.
С километрами/милями более-менее понятно, если машина американка или англичанка, бит должен быть установлен.
Бит за номером 2 в кодировочном индексе C07 (в более старых он всегда равен 1 и не используется) по идее должен активировать вот такую иконку:
Это интересно, но я никогда такого символа на приборных панелях E6x не видел. У меня этот бит установлен с завода (приборная панель уже была с индексом 07). Однако по имеющимся у меня дампам с приборных панелей разных E60, этот бит ставят не всегда, например стабильно на российских E60 он равен 0. Отключение лампы никакого эффекта на отображение круиза не произвело, поэтому если хотите, можете бит установить, а можете оставить. Только нужно помнить, что если у вас он не был установлен (как и бит ползунка), то при установке двух битов контрольная сумму нужно специальным образом считать. Как это сделать я опишу ниже.
Не совсем ясна ситуация с квадрантом нулевого положения. Квадрант — это четверть круга. Двумя битами можно указать на любой из 4: 00b (1), 01b (2), 10b (3), 11b (4). В моём случае указан квадрант номер 3 (10b), у машины из инструкции — 4. В целом, по имеющимся у меня дампам приборных панелей различных кузовов, как с круизом, так и без, можно сделать вывод, что квадрант задан на заводе в любом случае и менять его не нужно.
Переходим к контрольной сумме. Как я уже говорил, в общем случае просто увеличивать на единицу нельзя. Чтобы правильно посчитать сумму, необходимо воспользоваться функциейc_checksumme, но для неё сначала надо составить аналогичное заклинание, но уже содержащее кодировочные данные вместо колбасы из FFh. Т. е. вот так:
Т. е. я заменил все FFh на полученные с помощью c_c_lesen кодировочные данные, заменив последний байт BCh на BDh, но не изменял контрольную сумму, она по-прежнему равна E0h.
Теперь это заклинание нужно отправить в функцию c_checksumme:
Не забываем поставить галочку Data
В поле OUT_BUFFER функция отобразила последовательность с правильной контрольной суммой, она поменялась с E0h на E1h, т. е. действительно увеличилась на единицу, но исключительно благодаря тому, что я изменил только самый крайний бит последовательности.
Осталось исправить контрольную сумму в нашем заклинании:
Всё, теперь можно записывать! Для этого есть функция c_c_schreiben:
Если в поле JOB_STATUS мы видим слово OKAY, значит всё прошло успешно. Скажу сразу, эта функция не проверяет контрольную сумму, она запишет всё, что вы ей передали, как есть.
Осталось выполнить перезапуск приборной панели. Для этого есть функция steuergeraete_reset, но она ещё сбрасывает установленное время. Чтобы этого избежать, можно выполнить другую функцию, sg_reset_ohne_uhr_datum:
Дело сделано! Теперь надо протестировать? Кулхацкеры тестируют вот так:
Запускаем процедуру (зажигание должно быть выключено) steuern_selbsttest_ein, передав в качестве аргумента число 0 (выключить тест), 1 (однократно), 2 (бесконечно). Выключить тест можно также запуском процедуры steuern_selbsttest_aus. Перед запуском убедитесь, что галочка Data снята.
Результат получен, щастье наступило.
На этой ноте я вынужден прерваться, т. к. оказалось, что пост целиком не влез. Нетерпеливые могут сразу поэкспериментировать, а оптимизаторы — дождаться следущего поста, который выйдет на днях.