Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 22:56
aae49ca

Date: 2026-10-29
Previous release: v0.1.1

Built on go-canopen v0.3.0 (was v0.2.0): LSS, MPDO, CiA 302 network
management and CANopen FD.

  • lss: an LSS master (CiA 305). switch (global), select
    (selective, by LSS address), inquire (address and node-ID),
    configure (node-ID, bit rate from the CiA 301 table, store), activate
    (bit timing switch), identify (non-configured devices, or an address
    range), fastscan (the addresses of every unconfigured device) and
    assign-all (a node-ID for each, with --avoid and --store). A
    refusal is exit 12 (lss_refused), no answer exit 5 (no_response).
  • mpdo: configure makes a TPDO or RPDO an MPDO in source or
    destination address mode, scanner and dispatcher write the object
    scanner and dispatcher lists, watch decodes MPDOs (passive).
  • boot: the CiA 302-2 network boot-up as a manager — slaves with their
    DCF or concise DCF, expected identities, mandatory and optional slaves,
    --lss for the LSS step that gives unconfigured devices the node-ID of
    the slave whose identity they have, --store, --no-start. The result
    lists each slave's CiA 302 boot status; a failed slave is exit 1.
  • cdcf convert, show, apply: concise DCFs (0x1F22) from DCFs
    (PDOs in the CiA 301 sequence), listed, and written entry by entry.
  • store and restore (0x1010/0x1011, --group, restore --reset); program download (CiA 302-3: stop, clear, image, flash
    status, identification, start), program control and program status.
  • CANopen FD: --fd (and --brs) on sdo read/write/dump (USDO
    client, --block for bulk downloads, --client-id), scan, nmt,
    heartbeat watch, emcy watch (20-byte FD emergencies), sync, pdo show/map, dcf apply and the new commands. monitor --fd and decode
    now decode CAN FD frames: USDO requests and responses (--service usdo)
    and FD emergencies; before, they skipped CAN FD frames. A USDO abort is
    exit 11 with its SDO equivalent and usdoCode.
  • simulate: --lss (an LSS slave; without --node-id it starts
    unconfigured), --serial, --fd, --store FILE (store and restore,
    LSS store) and --program (program download objects with an in-memory
    program).
  • JSON: new result and record shapes in the schemas (additions only,
    schemaVersion 1.0); new error codes lss_refused, lss_conflict,
    no_node_id, program_failed, boot_failed, mpdo_inactive.

Verification:

  • In-process tests of every new command against go-canopen nodes on the
    virtual bus with the race detector: LSS slaves (unconfigured and
    configured, with and without a store), MPDO producer and consumer,
    store/restore and program download devices, the CiA 302 boot-up with
    and without the LSS step, CANopen FD nodes over USDO; JSON output
    validated against the schemas; whole-module coverage ≥ 90 %.
  • End to end on vcan0 (Linux 7.0, CAN FD MTU): two unconfigured
    simulate --lss processes found by lss fastscan and booted by boot --lss; a simulate --fd process operated over USDO (sdo read, nmt --wait, program download, scan) while monitor --fd decoded the
    USDO traffic.
  • Interop: the existing suite against CANopenNode, Lely CANopen and
    python canopen passes on the canopen-interop v0.2.0 images (pinned by
    digest; contract 1.1 only adds things) in CI on amd64 and arm64. The
    new commands have no interop scenarios yet.