Skip to content

ASC CAN log format

Text log format used in Vector-style CAN logging and widely supported by CAN tools.

Status Examples Runtime example Source posture
field-note synthetic/passive available capture provenance plus atlas/tooling context

Identity

Text log format used in Vector-style CAN logging and widely supported by CAN tools.

What This Protocol Teaches

  • Text logs are readable until timestamp semantics and channel metadata start to matter.
  • It teaches how to inspect timestamp, channel, identifier without mistaking field extraction for meaning.
  • It keeps observer inference separate from system truth.

Operational Context

ASC-style text records appear in CAN tool ecosystems and are modeled in the atlas at the capture-format layer. The binder treats one line as passive file evidence: timestamp text, channel label, identifier, direction token, DLC, and payload bytes. It does not teach hardware setup, bus-operation behavior, or complete ASC format coverage.

Draft status

field-note: this page has limited runnable support for one-line Classical CAN data records. It is not a complete ASC parser and is not yet a final-copy binder page.

A Concrete Artifact

# synthetic ASC-style line
0.010000 1 123 Rx d 8 00 40 1f 40 1f 00 00 00

Synthetic

Synthetic offline sample for explanation; not a real operational trace or live-system instruction.

Worked Decode

  1. Read the line as one offline ASC-style record, not as an instruction to open a bus interface.
  2. 0.010000 is file timestamp evidence and 1 is a channel label, not hardware proof.
  3. 123 Rx d 8 records CAN identifier, observed direction token, data marker, and DLC.
  4. The eight data bytes are capture evidence only until a description source such as DBC names signals.

Field Layout / Anatomy

Element Observed value Inspection meaning
timestamp text 0.010000 File timestamp evidence; not proof of clock truth or freshness.
channel label 1 File label; not proof of physical interface identity.
direction token Rx Recorded direction marker, not an instruction to act on a bus.
identifier 0x123 Recorded CAN-frame identifier.
DLC 8 Classical CAN data length for this teaching record.
payload 00 40 1f 40 1f 00 00 00 Recorded CAN-frame bytes.
semantic authority external DBC, PGN/SPN definition, or another source must define signal meaning.
timing context external File order and timestamps are evidence, not complete freshness authority.

Visual Model

flowchart LR record["Observed ASC text record"] --> frame["Recorded CAN-frame fields"] record --> metadata["Timestamp, channel,<br/>and direction-token evidence"] frame --> authority["External semantic authority"] authority --> hypothesis["Cautious observer hypothesis"]

Timing And Authority

Timing and authority depend on the log-record role. A file timestamp is evidence from the artifact, not proof of physical bus timing or current machine state. Semantic authority is external: a DBC, PGN/SPN definition, or integration profile is needed before payload bytes become named engineering values.

Semantic authority

Bytes rarely explain themselves. Name the source that defines meaning before naming engineering values: standard metadata, label table, DBC, PGN/SPN definition, object dictionary, register map, DID catalog, LDF, ARXML, channel metadata, or vendor profile.

Failure And Ambiguity

  • A channel label is file evidence, not hardware proof.
  • Direction tokens can reflect logger perspective instead of bus truth.
  • Text conversion can preserve bytes while losing capture-provenance detail.

Observer Lesson

A passive observer can usually infer artifact boundaries, repeated structure, cadence, missingness, and candidate state transitions. The observer usually cannot prove physical truth, application intent, complete system state, or engineering-unit meaning without semantic authority and timing provenance.

Python Model

schoolbus exposes a limited text-record model for one synthetic Classical CAN data line:

"""Runnable ASC text-record example for the schoolbus binder."""

from schoolbus.formats.capture import AscCanLogRecord

record = AscCanLogRecord.from_line("0.010000 1 123 Rx d 8 00 40 1f 40 1f 00 00 00")
frame = record.to_can_frame()

print(record.show_fields())
print(record.explain())
print(frame.show_fields())

to_can_frame() preserves only recorded CAN-frame fields. Timestamp, channel label, direction token, and semantic authority remain on the log record.

Local Teaching Notes

Simplification

The artifact and diagrams are synthetic teaching material. The page intentionally omits conformance timing tables, electrical design detail, proprietary configuration, and exhaustive standard behavior.

The matching sample pack is samples/capture-description-workbook/. It is a synthetic passive workbook for file-backed inspection, not an operational capture procedure.

Source Confidence

Source confidence is medium for scope and terminology, with semantic claims limited to public metadata, public source notes, and synthetic teaching artifacts.

Source Notes

Field Value
Governance tier Field Note
Canonical source status yes
Public explainer status no
Open-source tool status yes
Sample-data status none listed; use synthetic teaching artifacts
Confidence medium
Citation specificity url-level
Canonical source(s) ASC log format context (Vector / tool ecosystems; ASC log format; public-web/tool-doc; metadata-only)
Public explainer/tooling source(s) none listed in atlas
Source role de facto/proprietary format context
Open-source tool references python-can: CAN log inspection context
cantools: description-file parsing and signal inspection

References

Public Sources

  • Vector / tool ecosystems
  • ASC log format context — tooling documentation.
  • Tooling references
  • python-can — CAN log inspection and offline lab context.
  • cantools — description-file parsing and signal inspection.