Files
allwpilib/datalog/doc/wpilog.ksy

131 lines
2.8 KiB
Plaintext
Raw Normal View History

meta:
id: wpilog
title: WPILib Data Log
file-extension: wpilog
ks-version: "0.10"
encoding: UTF-8
endian: le
bit-endian: le
seq:
- id: header
type: header
- id: records
type: record
repeat: eos
types:
version_number:
seq:
- id: minor
type: u1
- id: major
type: u1
header:
seq:
- id: magic
contents: WPILOG
- id: version
type: version_number
- id: extra_header_length
type: u4
- id: extra_header
size: extra_header_length
type: str
record:
seq:
- id: header_length
type: record_header_length
- id: entry_id
type:
switch-on: header_length.len_entry_id
cases:
0: u1
1: u2
2: b24
3: u4
- id: len_payload
type:
switch-on: header_length.len_payload_size
cases:
0: u1
1: u2
2: b24
3: u4
- id: timestamp
type:
switch-on: header_length.len_timestamp
cases:
0: u1
1: u2
2: b24
3: u4
4: b40
5: b48
6: b56
7: u8
- id: payload
size: len_payload
type:
switch-on: entry_id
cases:
# ID 0 is reserved for control records
0: control_record_payload
record_header_length:
seq:
- id: len_entry_id
type: b2
- id: len_payload_size
type: b2
- id: len_timestamp
type: b3
- id: spare_bit
type: b1
control_record_payload:
seq:
- id: type
type: u1
enum: control_record_type
- id: data
type:
switch-on: type
cases:
"control_record_type::start": control_record_start_data
"control_record_type::finish": control_record_finish_data
"control_record_type::set_metadata": control_record_set_metadata_data
control_record_start_data:
seq:
- id: entry_id
type: u4
- id: len_entry_name
type: u4
- id: entry_name
size: len_entry_name
type: str
- id: len_entry_type
type: u4
- id: entry_type
size: len_entry_type
type: str
- id: len_entry_metadata
type: u4
- id: entry_metadata
size: len_entry_metadata
type: str
control_record_finish_data:
seq:
- id: entry_id
type: u4
control_record_set_metadata_data:
seq:
- id: entry_id
type: u4
- id: len_entry_metadata
type: u4
- id: entry_metadata
size: len_entry_metadata
type: str
enums:
control_record_type:
0: start
1: finish
2: set_metadata