В предыдущих главах мы рассказали о базовых настройках диагностических функций TSMaster и подробно разобрали шаги работы. Но при использовании TSMaster неизбежно возникает множество других вопросов — ниже мы выбрали несколько самых популярных и даём на них ответы.
Ключевые слова: TSMaster, UDS-диагностика, стирание памяти, Seed&Key, системные переменные, hex, FAQ.
1. Настройка адреса стирания
1.1. Фиксированные адрес и длина
Если адрес стирания фиксирован, обработка проще всего: настройте сервис с содержимым типа Normal и внесите в него исходные данные напрямую. Например, адрес стирания — 0x00801234, длина стирания — 0x0000C000. Тогда фиксированные значения заполняются так, как показано ниже:

То есть отправляемые значения и ожидаемые значения ответа вносятся прямо в очередь сервисов.
1.2. Переменные адрес и длина
Адрес зависит от загруженного hex-файла: соответствующие адрес и длина данных переменны. В этом случае нужно использовать системные переменные. Рассмотрим на примере hex-файла. Каждый раз, когда диагностический модуль загружает hex-файл, он автоматически извлекает из него характеристическую информацию и регистрирует её в системе как системные переменные (на данный момент регистрируются только адрес + длина; если нужно больше — направьте запрос в TOSUN на оценку). Как показано на рисунке:

Затем выполните настройку в BasicConfig, как показано ниже:

Наконец, сошлитесь на эту конфигурацию в автоматизированном процессе, как показано ниже:

Во время автоматического выполнения система автоматически считывает текущие значения системных переменных и подставляет их в отправляемый сервис — так реализуется динамическая загрузка параметров.
2. Значения Seed&Key
Если значение Seed&Key фиксировано, просто выберите режим Normal и введите фиксированное значение. В этом разделе разбирается динамическое вычисление Key на основе Seed. Основные шаги:
Шаг 1. При настройке параметров транспортного уровня загрузите соответствующую DLL с алгоритмом. Эта DLL общая для всех операций диагностического модуля, где задействован алгоритм Seed&Key. Поэтому пользователю нужно поместить в эту библиотеку функции вычисления Key для всех уровней доступа (level).

Шаг 2 (способ 1). В шагах автоматизированного процесса добавьте шаг выполнения типа Seed&Key и выберите уровень (Level) для GetSeed, как показано ниже:

Шаг 3 (способ 2). В BasicConfig добавьте сервисы 0x27 GetSeed и SendKey (внимание: эти два сервиса обязательно настраиваются парой), как показано ниже:


В автоматизированном тестовом процессе добавьте шаг SelectConfig и выберите в нём ранее настроенный сервис 0x27, как показано ниже:

3. Считанная строка перевёрнута?
Пользователь ожидал прочитать строку ReadDemo, а считалась строка omeDdeaR — полностью перевёрнутая, как показано ниже:

Причина в том, что настроенный порядок разбора строки не совпадает с фактическим порядком хранения символов, поэтому разобранная строка тоже оказывается перевёрнутой.
Наше решение: измените порядок разбора строки — например, если раньше был Motorola, измените на Intel. После изменения считанная строка совпадает с ожидаемой.
