Формат трейса (версия 3)¶
Строка 1: <Format, always TEXT>
<Version, always 3> <System, 32 or 64>
<Devices count, always 0> <RowCount>
<Time in ms> <Time hh:mm:ss.zzz>
Строка 2: # Meta information
Строка N: # Meta information
Строка M: <TimeStamp>TAB<Channel>TAB<Flags>TAB<MsgID>TAB<DLC>TAB<Data>TAB<CRC>TAB<ASCII>TAB<Comment>
Теперь рассмотрим детально поля.
Строка 1:@ TEXT
@ 3 @ 64
@ 0 @ 3008
@ 82453 @ 00:01:22.453
@
Поле | Описание | Значение из лога |
---|---|---|
Format | Формат данных представленных в логе. На данный момент оставлен только TEXT | TEXT |
Version | Версия формата лога. Текущая 3 | 3 |
System | В какой системе сделан лог, 32-битной или 64-битной. Просто информационное поле | 64 |
Device count | Количество устройств, участвовавших в формировании лога. Игнорируется | 0 |
RowCount | Количество строк с данными.Игнорируется | 3008 |
Time in ms | Информационное поле, в котором отмечен интервал времени в мс, за который снят лог. Игнорируется, можно задать 0 | 82453 |
Time | Информационное поле, в котором отмечен интервал времени, за который снят лог. Игнорируется, можно задать 00:00:00 | 00:01:22.453 |
Строка 2..N: # $LocalTime=12:05:10.123
На данный момент в метаинформации поддерживается только задание локального времени, во сколько начата запись лога.
Строки N:
26,678369 1 80000004 001 8 00 00 00 00 00 00 00 00 00000000
Столбцы в данных должны быть разделены символом табуляции.
Поле | Описание |
---|---|
TimeStamp | Временная метка, полученная от CAN-Hacker. Разделена на 2 части, разделенные символом "," (запятая). Первая часть, значение в секундах. Вторая часть, значение в мс или мкс |
Channel | Логический номер канала |
Flags | Битовые флаги с видом данных |
MsgID | Шестнадцатеричный идентификатор сообщения |
DLC | Длина сообщения. Зависит от типа сообщения |
Data | Шестнадцатеричное представление байтов данных с разбивкой пробелами. Для больших данных пробелы могут игнорироваться. |
CRC | Контрольная сумма. Используется для данных из LIN-шины |
ASCII | Текстовое представление данных. В разборе данных не участвует. |
Comment | Комментарий к записи в логе |
Доступные флаги¶
#define ciFlag29bit 0x00000001U
#define ciFlagError 0x00000002U
#define ciFlagCAN 0x00000004U
#define ciFlagRTR 0x00000008U
#define ciFlagCAN_FD 0x00000010U
#define ciFlagBRS 0x00000020U
#define ciFlagLIN 0x00000100U
#define ciFlagCRC_fail 0x00000200U
#define ciFlagCRC_ok 0x00000400U
#define ciFlagMaster 0x00000800U
#define ciFlagSlave 0x00001000U
#define ciFlagClassicCRC 0x00002000U
#define ciFlagEnhancedCRC 0x00004000U
#define ciFlagESI 0x00020000U
#define ciFlagTX_ALS 0x00100000U
#define ciFlagTX_ERR 0x00200000U
#define ciFlagTX_ABR 0x00400000U
#define ciFlagJ1939 0x08000000U
#define ciFlagCRC_1b 0x10000000U
#define ciFlagTX 0x80000000U