Воспроизведение данных в TSMaster по умолчанию поддерживает формат BLF (поддержка других форматов добавляется). Для анализа log-файлов других форматов их нужно предварительно сконвертировать в BLF через конвертер файлов. В статье — офлайн- и онлайн-воспроизведение, маппинг каналов, практический кейс фильтрации и разбор типовых проблем.
Ключевые слова: воспроизведение сообщений, BLF, онлайн-воспроизведение, маппинг каналов, Trace.
1. Офлайн-воспроизведение
Офлайн-воспроизведение — это просмотр записанных сообщений. Оно полностью имитирует процесс приёма сообщений: записи можно смотреть прямо в окне Trace, и все свойства окна Trace, включая фильтрацию, остаются действующими.
- Шаг 1. Базовая последовательность: выберите «Воспроизведение шины» → «Офлайн-воспроизведение» → файл воспроизведения → временной диапазон → нажмите «Запустить воспроизведение» (рис. 1-1).
- Шаг 2. Добавьте файл воспроизведения — из окна воспроизведения (рис. 1-2) или просто перетащив Log-файл с рабочего стола в область окна TSMaster: отпустите кнопку мыши, и TSMaster автоматически воспроизведёт сообщения и добавит файл в окно управления воспроизведением.
- Шаг 3. Выберите диапазон сообщений. Окно Trace отображает не более 9999 кадров за раз, поэтому при анализе файла записи диапазон нужно выбирать разумно (рис. 1-3). В новых версиях в модуль воспроизведения добавлен скриптовый модуль для более гибкого анализа.



2. Онлайн-воспроизведение
Онлайн-воспроизведение часто называют «обратной заливкой данных на шину». Для максимальной гибкости предусмотрен следующий интерфейс конфигурации (рис. 2-1):

Основные параметры конфигурации:
1) Автозапуск онлайн-воспроизведения (рис. 2-2). AutoStart — воспроизведение сообщений запускается автоматически после подключения устройства. Do not auto start — после подключения воспроизведение не запускается, пользователь стартует его сам в окне воспроизведения.

2) Число повторов вывода (рис. 2-3). Output only once — воспроизвести один раз. Repetitive output mode — циклическое воспроизведение записи.

3) Режим вывода (рис. 2-4):
- Default — TimeStamp As Log File: воспроизведение по меткам времени из Log-файла.
- Step — Pause after one message is sent: пошаговый режим — по клику пользователя отправляется один кадр из Log-файла.
- Animated — Apply delay after one message is sent: не по меткам времени Log-файла, а с заданным пользователем интервалом между сообщениями (рис. 2-5 — интервал 10 мс).


4) Режим времени старта (рис. 2-6):
- Immediately — Direct send the first message: воспроизведение начинается сразу после команды пользователя.
- As Log File — Send the first message on its timestamp: старт определяется меткой времени Log-файла. Например, если метка первого кадра — 15 с, то после подключения устройства воспроизведение начнётся только после 15 с.
- Delayed — send the first message after timeout: пользователь задаёт задержку; после подключения устройства воспроизведение начинается по истечении заданного интервала (рис. 2-7 — задержка 100 мс).


5) Горячие клавиши запуска/паузы (рис. 2-8): например, клавиша S запускает воспроизведение, клавиша P — приостанавливает.

6) Выбор воспроизводимых сообщений TX/RX (рис. 2-9). Send Tx messages — воспроизведение включает сообщения с направлением «отправка». Do not send Tx messages — сообщения направления «отправка» не воспроизводятся.

7) Выбор каналов воспроизведения. Для гибкости модуль воспроизведения TSMaster поддерживает маппинг каналов. Он решает такие задачи:
Задача 1. Физические каналы уже подключены, но нужно гибко переключать каналы (рис. 2-10). В Log-файле есть данные канала 1 и канала 2; проще всего, когда данные канала 1 воспроизводятся на соответствующем канале инструмента. Если данные канала 2 нужно воспроизвести на канале 1 CAN-инструмента, а данные канала 1 — на канале 2, применяется маппинг (рис. 2-11).


Задача 2. Не хватает физических каналов: в исходном Log-файле задействованы каналы 1–5, а доступно только 2 канала (рис. 2-12). В этом случае данные каналов 3, 4, 5 воспроизвести некуда. Через маппинг каналов данные любого канала можно направить на любой канал CAN-инструмента (рис. 2-13): каналы 2, 3, 4 — на канал 2 инструмента, каналы 1 и 5 — на канал 1. Интерфейс настройки маппинга — на рис. 2-14.



Source Channel — канал данных в Log-файле. Destination Channel — канал CAN-инструмента в TSMaster. Конфигурация выше означает: данные каналов 1 и 2 из Log-файла воспроизводятся на канале 1 CAN-инструмента, данные канала 3 — на канале 2.
3. Практический кейс: фильтрация сообщений при автоматическом воспроизведении
Автоматическое воспроизведение предоставляет выбор канала, воспроизведение RX/TX и т. д. Но на практике часто нужно воспроизводить лишь часть сообщений или выборочно блокировать часть сообщений. Сообщений может быть очень много, поэтому фильтрация по ID в модуль онлайн-воспроизведения пока не встроена — однако с помощью C-скриптов TSMaster ту же блокировку по ID можно реализовать самостоятельно.
Базовая идея: отправлять сообщения с блокируемыми ID на виртуальный канал — тогда они не попадут на физический канал.
- Шаг 1. В конфигурации аппаратного обеспечения TSMaster добавьте канал и выберите его как виртуальный (рис. 3-1).
- Шаг 2. Создайте скриптовый модуль с именем OnlineRelayFilter (рис. 3-2).
- Шаг 3. Создайте событие PreTX для CAN-сообщения (вызывается до отправки сообщения на шину). Чтобы заблокировать сообщение с ID = 0x1B00000E, создайте событие PreTX для этого сообщения (рис. 3-3).
- Шаг 4. Выберите событие и измените канал отправки данного сообщения на канал с номером 2 (нумерация 0, 1, 2), то есть канал 3 (рис. 3-4).
- Шаг 5. Запустите скрипт (рис. 3-5).
- Шаг 6. Теперь при запуске онлайн-воспроизведения сообщение 0x1B00000E отправляется на виртуальный канал 3, а остальные сообщения — на физические каналы 1 и 2. Так реализуется фильтрация онлайн-воспроизведения. Аналогично, добавляя события Pre_TX для других сообщений, можно отфильтровать любые нужные ID.





4. Разбор типовых вопросов
4.1. BLF-файл (с пробелом в имени) не загружается
При загрузке BLF в модуль воспроизведения (офлайн/онлайн) возникает ошибка (рис. 4-1). Причина: в имени BLF-файла не должно быть пробелов. Переименуйте файл, например в TSMaster.blf, — загрузка пройдёт успешно (рис. 4-2).


4.2. Как воспроизводить сообщения по времени записи
Для воспроизведения по меткам времени записи выбирайте онлайн-воспроизведение. Офлайн-воспроизведение предназначено для просмотра сообщений — там требование обратное: чем быстрее, тем лучше. Настройки см. в разделе об онлайн-воспроизведении.
4.3. Почему кнопка воспроизведения шины серая (неактивна)
При активном подключении к шине воспроизведение записей недоступно. Нажмите кнопку Stop, остановив работу, — BusReplay станет активной, и можно будет добавлять сообщения для воспроизведения (рис. 4-3, 4-4).


4.4. Почему TSMaster сразу после подключения отправляет сообщения на шину
TSMaster поддерживает онлайн-воспроизведение данных; для сценария «подключил к шине — сразу воспроизводи» в настройках воспроизведения есть функция автозапуска при подключении. Сначала откройте интерфейс конфигурации онлайн-воспроизведения (рис. 4-5), затем выберите, запускать ли воспроизведение автоматически в момент подключения устройства (рис. 4-6). Если выбрать do not auto start, сообщения при подключении воспроизводиться не будут.


4.5. Ошибка канала при воспроизведении
При онлайн-воспроизведении через некоторое время появляется ошибка «channel error» (рис. 4-7). Причина — ошибка маппинга каналов: канал данных из Log-файла не сопоставлен каналу CAN-инструмента. Например, в Log-файле используется канал 2, он смаппирован на канал 2 CAN-инструмента, но в TSMaster канал 2 не сконфигурирован — отправка завершается ошибкой. О маппинге см. выше: «Онлайн-воспроизведение → Выбор каналов». Решение: в интерфейсе конфигурации настройте маппинг (рис. 4-8) — поскольку канала 2 в Destination Channel не существует, Source Channel = 2 также направляется на Destination Channel = 1. После повторного запуска ошибка не возникает.


4.6. Кадры ошибок при онлайн-воспроизведении
Если при воспроизведении на шине сразу идут кадры ошибок, вероятная причина: в Log-файле на разных каналах есть сообщения с одинаковым ID. При воспроизведении они выводятся на одну CAN-шину через разные каналы, возникает конфликт ID кадров, отсюда кадры ошибок и невозможность нормального воспроизведения.
4.7. Зависание онлайн-воспроизведения
Если онлайн-воспроизведение зависает, проверьте, не используется ли виртуальный канал. На некоторых компьютерах поддержка виртуальных каналов работает с проблемами — в этом случае избегайте виртуальных каналов или подключите реальный канал для онлайн-воспроизведения.
4.8. Данные воспроизведения не совпадают со сторонним инструментом
Ситуация: при онлайн-воспроизведении и мониторинге сигналов значение сигнала A на шине не совпадает со значением, разобранным сторонним инструментом (например OE): в TSMaster A = 0.0, в OE A = 0.3. Анализ показал: воспроизводимый BLF-файл содержит данные двух каналов (Channel1 и Channel2), на обоих есть сообщения с одинаковым ID (в том числе с сигналом A), а все значения сообщений канала 2 равны 0. Поэтому при воспроизведении сигнал A, разобранный из канала 2, всегда 0 — и пользователь ошибочно сравнивает значение канала 2 со значением стороннего инструмента. Решение: поскольку значения канала 2 недействительны, заблокируйте воспроизведение канала 2 (рис. 4-9). Совет: при анализе сигналов обращайте внимание на канал и метку времени сообщения — только так данные сопоставимы.

4.9. CAN-канал готов, но онлайн-воспроизведение завершается ошибкой
Ситуация: BLF-файл загружен, в сообщениях только канал 1, но воспроизведение не удаётся (рис. 4-10). Причина: онлайн-воспроизведение возвращает записанные сообщения обратно на физическую шину. В данном случае BLF содержит сообщения CAN FD, а аппаратура — классический CAN, поэтому воспроизведение невозможно. Решение: используйте аппаратуру с поддержкой CAN FD; если аппаратура её поддерживает, переключите рабочий режим устройства в CAN FD и повторите воспроизведение.
