Skip to content

Поля фильтра CAN ​

Каталог доступен на уровне Physical в профилях CANopen и Automotive VAG. Здесь фильтруются исходные кадры. На старших уровнях используются другие каталоги.

Поля исходной записи ​

ПолеТипЗначение и ограничение
trace.timeЦелоеМетка времени в тактах часов источника. Это не строка даты, не миллисекунды и не Unix-время; для обычных задач удобнее столбец Time
trace.deltaЦелоеИнтервал от предыдущего исходного CAN-кадра в целых миллисекундах; дробная часть отбрасывается. Не от предыдущей видимой строки и не от предыдущего кадра того же ID
trace.directionСтрокаНаблюдаемое направление: in, out, unknown
trace.flowСтрокаИзвестная смысловая роль: request, response, broadcast, unknown
trace.lengthЦелоеДлина данных кадра в байтах
trace.labelСтрокаПользовательская метка записи; отсутствует у записи без метки

Направление и роль независимы. Запрос внешнего ведущего тоже может иметь trace.direction == in. Не используйте направление приёма как доказательство того, что сообщение является ответом.

trace.delta показывает промежуток между исходными записями общего потока. Фильтр по ID не превращает его в период этого ID. Для периода повторяющегося идентификатора используйте Monitor.

Поля CAN ​

ПолеТипЗначение
can.idЦелоеЧисловой CAN-идентификатор
can.dlcЦелоеДлина данных в байтах в модели Tracer. Для CAN FD это уже длина 0–64, а не четырёхбитный код DLC
can.frameTypeСтрокаstd — стандартный идентификатор, ext — расширенный
can.rtrЛогическоеПризнак удалённого запроса RTR
can.fdЛогическоеПризнак CAN FD
can.brsЛогическоеПризнак переключения скорости BRS
can.esiЛогическоеПризнак состояния ошибки ESI
can.dataБайтыДанные исходного CAN-кадра; доступны contains и индексирование

std / ext описывают ширину идентификатора. Они не заменяют признак can.fd. Наличие полей CAN FD не означает поддержку этого режима любым адаптером.

Примеры ​

Один идентификатор стандартного формата:

text
can.id == 0x185 and can.frameType == std

Несколько идентификаторов:

text
can.id in (0x185, 0x585, 0x605, 0x705)

CAN FD с переключением скорости:

text
can.fd == true and can.brs == true

Первый байт равен 0x01:

text
can.id == 0x185 and can.data[0] == 0x01

Фрагмент данных в одном исходном кадре:

text
can.data contains [0x22, 0xF1, 0x90]

Поиск метки:

text
exists(trace.label) and trace.label contains "Проверка"

Промежутки не менее 20 целых миллисекунд между соседними исходными кадрами:

text
trace.delta >= 20

Последний пример выделяет запись после промежутка. Он не устанавливает причину паузы и не измеряет время ответа конкретного устройства.